From 47bc772f7bb200c8047e532bac3dd954f7cbe0c5 Mon Sep 17 00:00:00 2001 From: Scott Werner Date: Thu, 23 Jul 2026 17:58:24 -0400 Subject: [PATCH] refactor: organize crates into three layers --- .ai/prompts/code-review-deep-1.md | 2 +- .ai/prompts/code-review-deep-2.md | 4 +- .claude/skills/docs/references/mapping.md | 58 +++++++-------- .gitattributes | 2 +- .github/workflows/rust.yml | 10 ++- .github/workflows/typescript.yml | 4 +- .gitignore | 4 +- AGENTS.md | 6 +- Cargo.toml | 22 +++--- apps/fabro-web/app/routes/run-overview.tsx | 2 +- docs/internal/cli-workflow-coupling-audit.md | 40 +++++------ .../event-schema-competitive-analysis.md | 6 +- .../fabro-event-schema-v2-concrete-shape.md | 18 ++--- docs/internal/mcp-server-qa-test-plan.md | 2 +- docs/internal/migrations-strategy.md | 2 +- ...an-events-as-source-of-truth-follow-ups.md | 56 +++++++-------- docs/internal/run-directory-keys.md | 4 +- .../slow-test-opportunities-2026-04-07.md | 46 ++++++------ docs/internal/testing-strategy.md | 6 +- docs/public/api-reference/client-sdks.mdx | 2 +- docs/public/examples/repl-handoff.mdx | 2 +- lib/{crates => apps}/fabro-cli/Cargo.toml | 70 +++++++++---------- lib/{crates => apps}/fabro-cli/build.rs | 0 lib/{crates => apps}/fabro-cli/src/args.rs | 0 .../fabro-cli/src/command_context.rs | 0 .../fabro-cli/src/commands/artifact/cp.rs | 0 .../fabro-cli/src/commands/artifact/list.rs | 0 .../fabro-cli/src/commands/artifact/mod.rs | 0 .../fabro-cli/src/commands/auth/login.rs | 0 .../fabro-cli/src/commands/auth/logout.rs | 0 .../fabro-cli/src/commands/auth/mod.rs | 0 .../fabro-cli/src/commands/auth/status.rs | 0 .../fabro-cli/src/commands/cli_reference.rs | 0 .../fabro-cli/src/commands/config/mod.rs | 0 .../fabro-cli/src/commands/doctor.rs | 0 .../fabro-cli/src/commands/dump.rs | 0 .../fabro-cli/src/commands/exec.rs | 0 .../fabro-cli/src/commands/graph.rs | 0 .../fabro-cli/src/commands/install.rs | 0 .../fabro-cli/src/commands/mcp/mod.rs | 0 .../fabro-cli/src/commands/mod.rs | 0 .../fabro-cli/src/commands/model.rs | 0 .../fabro-cli/src/commands/parent/link.rs | 0 .../fabro-cli/src/commands/parent/mod.rs | 0 .../fabro-cli/src/commands/parent/unlink.rs | 0 .../fabro-cli/src/commands/parse.rs | 0 .../fabro-cli/src/commands/pr/close.rs | 0 .../fabro-cli/src/commands/pr/create.rs | 0 .../fabro-cli/src/commands/pr/link.rs | 0 .../fabro-cli/src/commands/pr/merge.rs | 0 .../fabro-cli/src/commands/pr/mod.rs | 0 .../fabro-cli/src/commands/pr/unlink.rs | 0 .../fabro-cli/src/commands/pr/view.rs | 0 .../fabro-cli/src/commands/preflight.rs | 0 .../fabro-cli/src/commands/provider/login.rs | 0 .../fabro-cli/src/commands/provider/mod.rs | 0 .../fabro-cli/src/commands/render_graph.rs | 0 .../fabro-cli/src/commands/repo/deinit.rs | 0 .../fabro-cli/src/commands/repo/init.rs | 0 .../fabro-cli/src/commands/repo/mod.rs | 0 .../fabro-cli/src/commands/run/ask.rs | 0 .../fabro-cli/src/commands/run/attach.rs | 0 .../fabro-cli/src/commands/run/checkpoints.rs | 0 .../fabro-cli/src/commands/run/command.rs | 0 .../fabro-cli/src/commands/run/cp.rs | 0 .../fabro-cli/src/commands/run/create.rs | 0 .../fabro-cli/src/commands/run/diff.rs | 0 .../fabro-cli/src/commands/run/events.rs | 0 .../fabro-cli/src/commands/run/fork.rs | 0 .../fabro-cli/src/commands/run/logs.rs | 0 .../fabro-cli/src/commands/run/mod.rs | 0 .../fabro-cli/src/commands/run/output.rs | 0 .../fabro-cli/src/commands/run/overrides.rs | 0 .../fabro-cli/src/commands/run/preview.rs | 0 .../fabro-cli/src/commands/run/resume.rs | 0 .../fabro-cli/src/commands/run/rewind.rs | 0 .../src/commands/run/run_progress/event.rs | 0 .../commands/run/run_progress/info_display.rs | 0 .../src/commands/run/run_progress/mod.rs | 0 .../src/commands/run/run_progress/renderer.rs | 0 .../run/run_progress/setup_display.rs | 0 .../run/run_progress/stage_display.rs | 0 .../src/commands/run/run_progress/styles.rs | 0 .../fabro-cli/src/commands/run/runner.rs | 0 .../fabro-cli/src/commands/run/ssh.rs | 0 .../fabro-cli/src/commands/run/start.rs | 0 .../fabro-cli/src/commands/run/steer.rs | 0 .../fabro-cli/src/commands/run/wait.rs | 0 .../fabro-cli/src/commands/runs/approval.rs | 0 .../fabro-cli/src/commands/runs/archive.rs | 0 .../fabro-cli/src/commands/runs/inspect.rs | 0 .../fabro-cli/src/commands/runs/list.rs | 0 .../fabro-cli/src/commands/runs/mod.rs | 0 .../fabro-cli/src/commands/runs/rm.rs | 0 .../fabro-cli/src/commands/sandbox/mod.rs | 0 .../fabro-cli/src/commands/secret/list.rs | 0 .../fabro-cli/src/commands/secret/mod.rs | 0 .../fabro-cli/src/commands/secret/rm.rs | 0 .../fabro-cli/src/commands/secret/set.rs | 0 .../src/commands/server/foreground.rs | 0 .../fabro-cli/src/commands/server/mod.rs | 0 .../fabro-cli/src/commands/server/start.rs | 0 .../fabro-cli/src/commands/server/status.rs | 0 .../fabro-cli/src/commands/server/stop.rs | 0 .../fabro-cli/src/commands/system/df.rs | 0 .../fabro-cli/src/commands/system/events.rs | 0 .../fabro-cli/src/commands/system/info.rs | 0 .../fabro-cli/src/commands/system/mod.rs | 0 .../fabro-cli/src/commands/system/prune.rs | 0 .../fabro-cli/src/commands/system/repair.rs | 0 .../fabro-cli/src/commands/uninstall.rs | 0 .../fabro-cli/src/commands/upgrade.rs | 0 .../fabro-cli/src/commands/validate.rs | 0 .../fabro-cli/src/commands/variable/get.rs | 0 .../fabro-cli/src/commands/variable/list.rs | 0 .../fabro-cli/src/commands/variable/mod.rs | 0 .../fabro-cli/src/commands/variable/rm.rs | 0 .../fabro-cli/src/commands/variable/set.rs | 0 .../fabro-cli/src/commands/version.rs | 0 .../fabro-cli/src/commands/workflow/create.rs | 0 .../fabro-cli/src/commands/workflow/list.rs | 0 .../fabro-cli/src/commands/workflow/mod.rs | 0 lib/{crates => apps}/fabro-cli/src/gh.rs | 0 lib/{crates => apps}/fabro-cli/src/landing.rs | 0 .../fabro-cli/src/local_server.rs | 0 lib/{crates => apps}/fabro-cli/src/logging.rs | 0 lib/{crates => apps}/fabro-cli/src/main.rs | 0 .../fabro-cli/src/manifest_args.rs | 0 .../fabro-cli/src/server_client.rs | 0 .../fabro-cli/src/server_runs.rs | 0 .../fabro-cli/src/shared/github.rs | 0 .../fabro-cli/src/shared/mod.rs | 0 .../fabro-cli/src/shared/provider_auth.rs | 0 .../fabro-cli/src/shared/repo.rs | 0 .../fabro-cli/src/shared/utilities.rs | 0 .../fabro-cli/src/sleep_inhibitor/dummy.rs | 0 .../src/sleep_inhibitor/iokit_bindings.rs | 0 .../fabro-cli/src/sleep_inhibitor/linux.rs | 0 .../fabro-cli/src/sleep_inhibitor/macos.rs | 0 .../fabro-cli/src/sleep_inhibitor/mod.rs | 0 .../fabro-cli/src/user_config.rs | 0 .../fabro-cli/tests/build_git_metadata.rs | 0 .../fabro-cli/tests/it/cmd/approve.rs | 0 .../fabro-cli/tests/it/cmd/archive.rs | 0 .../fabro-cli/tests/it/cmd/artifact_cp.rs | 0 .../fabro-cli/tests/it/cmd/artifact_list.rs | 0 .../fabro-cli/tests/it/cmd/attach.rs | 0 .../fabro-cli/tests/it/cmd/auth.rs | 0 .../fabro-cli/tests/it/cmd/cli_reference.rs | 0 .../fabro-cli/tests/it/cmd/config.rs | 0 .../fabro-cli/tests/it/cmd/create.rs | 0 .../fabro-cli/tests/it/cmd/deny.rs | 0 .../fabro-cli/tests/it/cmd/diff.rs | 0 .../fabro-cli/tests/it/cmd/discord.rs | 0 .../fabro-cli/tests/it/cmd/docs.rs | 0 .../fabro-cli/tests/it/cmd/doctor.rs | 0 .../fabro-cli/tests/it/cmd/dump.rs | 0 .../fabro-cli/tests/it/cmd/events.rs | 0 .../fabro-cli/tests/it/cmd/exec.rs | 0 .../fabro-cli/tests/it/cmd/fabro.rs | 0 .../fabro-cli/tests/it/cmd/fork.rs | 0 .../fabro-cli/tests/it/cmd/graph.rs | 0 .../fabro-cli/tests/it/cmd/inspect.rs | 0 .../fabro-cli/tests/it/cmd/install.rs | 0 .../fabro-cli/tests/it/cmd/json_global.rs | 0 .../fabro-cli/tests/it/cmd/logs.rs | 0 .../fabro-cli/tests/it/cmd/mcp.rs | 0 .../fabro-cli/tests/it/cmd/mod.rs | 0 .../fabro-cli/tests/it/cmd/model.rs | 0 .../fabro-cli/tests/it/cmd/model_list.rs | 0 .../fabro-cli/tests/it/cmd/model_test.rs | 0 .../fabro-cli/tests/it/cmd/parent.rs | 0 .../fabro-cli/tests/it/cmd/parse.rs | 0 .../fabro-cli/tests/it/cmd/pr.rs | 0 .../fabro-cli/tests/it/cmd/pr_close.rs | 0 .../fabro-cli/tests/it/cmd/pr_create.rs | 0 .../fabro-cli/tests/it/cmd/pr_link.rs | 0 .../fabro-cli/tests/it/cmd/pr_merge.rs | 0 .../fabro-cli/tests/it/cmd/pr_unlink.rs | 0 .../fabro-cli/tests/it/cmd/pr_view.rs | 0 .../fabro-cli/tests/it/cmd/preflight.rs | 0 .../fabro-cli/tests/it/cmd/provider.rs | 0 .../fabro-cli/tests/it/cmd/provider_login.rs | 0 .../fabro-cli/tests/it/cmd/ps.rs | 0 .../fabro-cli/tests/it/cmd/render_graph.rs | 0 .../fabro-cli/tests/it/cmd/repo.rs | 0 .../fabro-cli/tests/it/cmd/repo_deinit.rs | 0 .../fabro-cli/tests/it/cmd/repo_init.rs | 0 .../fabro-cli/tests/it/cmd/resume.rs | 0 .../fabro-cli/tests/it/cmd/rewind.rs | 0 .../fabro-cli/tests/it/cmd/rm.rs | 0 .../fabro-cli/tests/it/cmd/run.rs | 0 .../fabro-cli/tests/it/cmd/runner.rs | 0 .../fabro-cli/tests/it/cmd/sandbox_cp.rs | 0 .../fabro-cli/tests/it/cmd/sandbox_preview.rs | 0 .../fabro-cli/tests/it/cmd/sandbox_ssh.rs | 0 .../fabro-cli/tests/it/cmd/secret.rs | 0 .../fabro-cli/tests/it/cmd/secret_list.rs | 0 .../fabro-cli/tests/it/cmd/secret_rm.rs | 0 .../fabro-cli/tests/it/cmd/secret_set.rs | 0 .../fabro-cli/tests/it/cmd/send_analytics.rs | 0 .../fabro-cli/tests/it/cmd/send_panic.rs | 0 .../fabro-cli/tests/it/cmd/server_start.rs | 0 .../fabro-cli/tests/it/cmd/server_status.rs | 0 .../fabro-cli/tests/it/cmd/server_stop.rs | 0 .../fabro-cli/tests/it/cmd/start.rs | 0 .../fabro-cli/tests/it/cmd/support.rs | 0 .../fabro-cli/tests/it/cmd/system.rs | 0 .../fabro-cli/tests/it/cmd/system_df.rs | 0 .../fabro-cli/tests/it/cmd/system_events.rs | 0 .../fabro-cli/tests/it/cmd/system_info.rs | 0 .../fabro-cli/tests/it/cmd/system_prune.rs | 0 .../fabro-cli/tests/it/cmd/system_repair.rs | 0 .../fabro-cli/tests/it/cmd/test_panic.rs | 0 .../fabro-cli/tests/it/cmd/top_level.rs | 0 .../fabro-cli/tests/it/cmd/unarchive.rs | 0 .../fabro-cli/tests/it/cmd/uninstall.rs | 0 .../fabro-cli/tests/it/cmd/upgrade.rs | 0 .../fabro-cli/tests/it/cmd/validate.rs | 0 .../fabro-cli/tests/it/cmd/variable.rs | 0 .../fabro-cli/tests/it/cmd/variable_get.rs | 0 .../fabro-cli/tests/it/cmd/variable_list.rs | 0 .../fabro-cli/tests/it/cmd/variable_rm.rs | 0 .../fabro-cli/tests/it/cmd/variable_set.rs | 0 .../fabro-cli/tests/it/cmd/version.rs | 0 .../fabro-cli/tests/it/cmd/wait.rs | 0 .../fabro-cli/tests/it/cmd/worker_auth.rs | 0 .../fabro-cli/tests/it/cmd/workflow.rs | 0 .../fabro-cli/tests/it/cmd/workflow_create.rs | 0 .../fabro-cli/tests/it/cmd/workflow_list.rs | 0 .../fabro-cli/tests/it/main.rs | 0 .../fabro-cli/tests/it/scenario/archive.rs | 0 .../fabro-cli/tests/it/scenario/artifacts.rs | 0 .../fabro-cli/tests/it/scenario/auth.rs | 0 .../fabro-cli/tests/it/scenario/exec.rs | 0 .../fabro-cli/tests/it/scenario/lifecycle.rs | 0 .../fabro-cli/tests/it/scenario/mod.rs | 0 .../tests/it/scenario/server_lifecycle.rs | 0 .../fabro-cli/tests/it/scenario/smoke.rs | 0 .../tests/it/support/auth_harness.rs | 0 .../fabro-cli/tests/it/support/auth_tokens.rs | 0 .../fabro-cli/tests/it/support/mod.rs | 0 .../fabro-cli/tests/it/workflow/acp.rs | 0 .../tests/it/workflow/agent_linear.rs | 0 .../fabro-cli/tests/it/workflow/artifacts.rs | 0 .../tests/it/workflow/command_agent_mixed.rs | 0 .../tests/it/workflow/command_pipeline.rs | 0 .../tests/it/workflow/command_routing.rs | 0 .../it/workflow/conditional_branching.rs | 0 .../tests/it/workflow/dry_run_examples.rs | 0 .../it/workflow/fixtures/agent_linear.fabro | 0 .../fixtures/command_agent_mixed.fabro | 0 .../workflow/fixtures/command_pipeline.fabro | 0 .../workflow/fixtures/command_routing.fabro | 0 .../fixtures/conditional_branching.fabro | 0 .../it/workflow/fixtures/full_stack.fabro | 0 .../it/workflow/fixtures/human_gate.fabro | 0 .../fabro-cli/tests/it/workflow/full_stack.rs | 0 .../fabro-cli/tests/it/workflow/hooks.rs | 0 .../fabro-cli/tests/it/workflow/human_gate.rs | 0 .../fabro-cli/tests/it/workflow/mod.rs | 0 .../tests/manifest_path_round_trip.rs | 0 .../fabro-mcp-server/Cargo.toml | 16 ++--- .../fabro-mcp-server/src/config.rs | 0 .../fabro-mcp-server/src/lib.rs | 0 .../fabro-mcp-server/src/manifest_builder.rs | 0 .../fabro-mcp-server/src/server.rs | 0 lib/{crates => apps}/fabro-server/Cargo.toml | 62 ++++++++-------- lib/{crates => apps}/fabro-server/build.rs | 0 .../2026051801_legacy_vault_entries.rs | 0 ...01_optional_server_env_secrets_to_vault.rs | 0 .../fabro-server/src/auth/browser_shell.rs | 0 .../fabro-server/src/auth/cli_flow.rs | 0 .../fabro-server/src/auth/github_endpoints.rs | 0 .../fabro-server/src/auth/jwt.rs | 0 .../fabro-server/src/auth/keys.rs | 0 .../fabro-server/src/auth/mod.rs | 0 .../fabro-server/src/auth/translate.rs | 0 .../src/automation_materializer.rs | 0 .../fabro-server/src/canonical_host.rs | 0 .../fabro-server/src/canonical_origin.rs | 0 lib/{crates => apps}/fabro-server/src/csp.rs | 0 .../fabro-server/src/demo/mod.rs | 0 .../fabro-server/src/diagnostics.rs | 0 .../fabro-server/src/error.rs | 0 .../fabro-server/src/git_checkout.rs | 0 .../fabro-server/src/github_webhooks.rs | 0 .../fabro-server/src/install.rs | 0 .../fabro-server/src/interp.rs | 0 .../fabro-server/src/jwt_auth.rs | 0 lib/{crates => apps}/fabro-server/src/lib.rs | 0 .../fabro-server/src/manifest_validation.rs | 0 .../fabro-server/src/migrations.rs | 0 .../fabro-server/src/principal_middleware.rs | 0 .../fabro-server/src/request_id.rs | 0 .../fabro-server/src/run_files.rs | 0 .../fabro-server/src/run_files_security.rs | 0 .../fabro-server/src/run_manifest.rs | 0 .../fabro-server/src/run_selector.rs | 0 .../fabro-server/src/run_title_generation.rs | 0 .../fabro-server/src/run_tool_manifest.rs | 0 .../fabro-server/src/security_headers.rs | 0 .../fabro-server/src/serve.rs | 0 .../fabro-server/src/server.rs | 0 .../src/server/automation_scheduler.rs | 0 .../src/server/handler/artifacts.rs | 0 .../src/server/handler/automations.rs | 0 .../src/server/handler/billing.rs | 0 .../src/server/handler/completions.rs | 0 .../src/server/handler/environments.rs | 0 .../fabro-server/src/server/handler/events.rs | 0 .../fabro-server/src/server/handler/graph.rs | 0 .../src/server/handler/lifecycle.rs | 0 .../src/server/handler/llm_sse.rs | 0 .../src/server/handler/mcp_servers.rs | 0 .../fabro-server/src/server/handler/mod.rs | 0 .../fabro-server/src/server/handler/models.rs | 0 .../fabro-server/src/server/handler/pair.rs | 0 .../src/server/handler/playground.rs | 0 .../handler/prompts/playground_system.md | 0 .../src/server/handler/pull_requests.rs | 0 .../fabro-server/src/server/handler/runs.rs | 0 .../src/server/handler/sandbox.rs | 0 .../src/server/handler/sandboxes.rs | 0 .../src/server/handler/secrets.rs | 0 .../src/server/handler/sessions.rs | 0 .../fabro-server/src/server/handler/steer.rs | 0 .../fabro-server/src/server/handler/system.rs | 0 .../src/server/handler/variables.rs | 0 .../src/server/handler/worker_control.rs | 0 .../src/server/resource_sampler.rs | 0 .../src/server/session_runtime.rs | 0 .../fabro-server/src/server/tests.rs | 0 .../fabro-server/src/server_secrets.rs | 0 .../fabro-server/src/spawn_env.rs | 0 .../fabro-server/src/startup.rs | 0 .../fabro-server/src/static_files.rs | 2 +- .../fabro-server/src/test_support.rs | 0 .../fabro-server/src/web_auth.rs | 0 .../fabro-server/src/worker_control/bus.rs | 0 .../fabro-server/src/worker_control/local.rs | 0 .../fabro-server/src/worker_control/mod.rs | 0 .../fabro-server/src/worker_runtime.rs | 0 .../fabro-server/src/worker_token.rs | 0 .../tests/fixtures/spa/images/favicon.svg | 0 .../tests/fixtures/spa/index.html | 0 .../tests/it/api/auth_sessions.rs | 0 .../fabro-server/tests/it/api/automations.rs | 0 .../tests/it/api/cli_auth_token.rs | 0 .../fabro-server/tests/it/api/compression.rs | 0 .../fabro-server/tests/it/api/docs.rs | 0 .../fabro-server/tests/it/api/environments.rs | 0 .../fabro-server/tests/it/api/events.rs | 0 .../fabro-server/tests/it/api/install.rs | 0 .../tests/it/api/install_openai_compatible.rs | 0 .../fabro-server/tests/it/api/mcp_servers.rs | 0 .../fabro-server/tests/it/api/mod.rs | 0 .../fabro-server/tests/it/api/routing.rs | 0 .../fabro-server/tests/it/api/run_files.rs | 0 .../fabro-server/tests/it/api/runs.rs | 0 .../fabro-server/tests/it/api/sandbox_vnc.rs | 0 .../fabro-server/tests/it/api/sessions.rs | 0 .../fabro-server/tests/it/api/settings.rs | 0 .../fabro-server/tests/it/api/system.rs | 0 .../fabro-server/tests/it/api/tcp.rs | 0 .../fabro-server/tests/it/api/variables.rs | 0 .../fabro-server/tests/it/event_pagination.rs | 0 .../fabro-server/tests/it/helpers.rs | 2 +- .../fabro-server/tests/it/main.rs | 0 .../tests/it/openapi_conformance.rs | 0 .../fabro-server/tests/it/pagination.rs | 0 .../fabro-server/tests/it/scenario/archive.rs | 0 .../fabro-server/tests/it/scenario/dry_run.rs | 0 .../tests/it/scenario/lifecycle.rs | 0 .../fabro-server/tests/it/scenario/mod.rs | 0 .../tests/it/scenario/run_completion.rs | 0 .../fabro-server/tests/it/scenario/sse.rs | 0 .../fabro-server/tests/it/scenario/usage.rs | 0 lib/{crates => apps}/fabro-spa/Cargo.toml | 0 .../fabro-spa/assets/.gitkeep | 0 lib/{crates => apps}/fabro-spa/src/lib.rs | 0 .../fabro-acp/Cargo.toml | 4 +- .../fabro-acp/src/command.rs | 0 .../fabro-acp/src/error.rs | 0 .../fabro-acp/src/lib.rs | 0 .../fabro-acp/src/session.rs | 0 .../fabro-acp/src/test_support.rs | 0 .../fabro-acp/src/transport.rs | 0 .../fabro-acp/tests/session.rs | 0 .../fabro-agent/Cargo.toml | 14 ++-- .../fabro-agent/README.md | 0 .../fabro-agent/src/agent_profile.rs | 0 .../fabro-agent/src/apply_patch.lark | 0 .../fabro-agent/src/apply_patch.rs | 0 .../fabro-agent/src/cli.rs | 0 .../fabro-agent/src/compaction.rs | 0 .../fabro-agent/src/config.rs | 0 .../fabro-agent/src/context_window.rs | 0 .../fabro-agent/src/docker_sandbox.rs | 0 .../fabro-agent/src/error.rs | 0 .../fabro-agent/src/event.rs | 0 .../fabro-agent/src/file_tracker.rs | 0 .../fabro-agent/src/history.rs | 0 .../fabro-agent/src/lib.rs | 0 .../fabro-agent/src/local_sandbox.rs | 0 .../fabro-agent/src/loop_detection.rs | 0 .../fabro-agent/src/mcp_integration.rs | 0 .../fabro-agent/src/memory.rs | 0 .../fabro-agent/src/profiles/anthropic.rs | 0 .../fabro-agent/src/profiles/gemini.rs | 0 .../fabro-agent/src/profiles/mod.rs | 0 .../fabro-agent/src/profiles/openai.rs | 0 .../fabro-agent/src/question_tools.rs | 0 .../src/read_before_write_sandbox.rs | 0 .../fabro-agent/src/sandbox.rs | 0 .../fabro-agent/src/session.rs | 0 .../fabro-agent/src/skills.rs | 0 .../fabro-agent/src/subagent.rs | 0 .../fabro-agent/src/task_reminder.rs | 0 .../fabro-agent/src/test_support.rs | 0 .../fabro-agent/src/todo_runtime.rs | 0 .../fabro-agent/src/todo_tools.rs | 0 .../fabro-agent/src/tool_execution.rs | 0 .../fabro-agent/src/tool_permissions.rs | 0 .../fabro-agent/src/tool_registry.rs | 0 .../fabro-agent/src/tools.rs | 0 .../fabro-agent/src/truncation.rs | 0 .../fabro-agent/src/types.rs | 0 .../fabro-agent/tests/it/compaction.rs | 0 .../fabro-agent/tests/it/guardrails.rs | 0 .../fabro-agent/tests/it/main.rs | 0 .../fabro-agent/tests/it/parity_matrix.rs | 0 .../fabro-automation/Cargo.toml | 2 +- .../2026071101_file_definitions_to_sqlite.rs | 0 .../fabro-automation/src/error.rs | 0 .../fabro-automation/src/id.rs | 0 .../fabro-automation/src/lib.rs | 0 .../fabro-automation/src/migrations.rs | 0 .../fabro-automation/src/model.rs | 0 .../fabro-automation/src/store.rs | 0 .../fabro-automation/tests/store.rs | 0 .../fabro-checkpoint/Cargo.toml | 4 +- .../fabro-checkpoint/src/author.rs | 0 .../fabro-checkpoint/src/branch.rs | 0 .../fabro-checkpoint/src/error.rs | 0 .../fabro-checkpoint/src/git.rs | 0 .../fabro-checkpoint/src/lib.rs | 0 .../fabro-checkpoint/src/trailer.rs | 0 .../fabro-dump/Cargo.toml | 4 +- .../fabro-dump/src/lib.rs | 0 .../fabro-environment/Cargo.toml | 6 +- .../fabro-environment/src/error.rs | 0 .../fabro-environment/src/id.rs | 0 .../fabro-environment/src/lib.rs | 0 .../fabro-environment/src/model.rs | 0 .../fabro-environment/src/store.rs | 0 .../fabro-environment/tests/store.rs | 0 .../fabro-github/Cargo.toml | 4 +- .../fabro-github/src/lib.rs | 0 .../fabro-github/src/testdata/rsa_private.pem | 0 .../fabro-github/tests/integration.rs | 0 .../fabro-graphviz/Cargo.toml | 2 +- .../fabro-graphviz/src/condition.rs | 0 .../fabro-graphviz/src/error.rs | 0 .../fabro-graphviz/src/fidelity.rs | 0 .../fabro-graphviz/src/graph/mod.rs | 0 .../fabro-graphviz/src/graph/types.rs | 0 .../fabro-graphviz/src/lib.rs | 0 .../fabro-graphviz/src/parser/ast.rs | 0 .../fabro-graphviz/src/parser/grammar.rs | 0 .../fabro-graphviz/src/parser/lexer.rs | 0 .../fabro-graphviz/src/parser/mod.rs | 0 .../fabro-graphviz/src/parser/semantic.rs | 0 .../fabro-graphviz/src/render.rs | 0 .../fabro-graphviz/src/stylesheet.rs | 0 .../fabro-hooks/Cargo.toml | 8 +-- .../fabro-hooks/src/bridge.rs | 0 .../fabro-hooks/src/config.rs | 0 .../fabro-hooks/src/executor.rs | 0 .../fabro-hooks/src/lib.rs | 0 .../fabro-hooks/src/runner.rs | 0 .../fabro-hooks/src/types.rs | 0 .../fabro-hooks/tests/host_command_hooks.rs | 0 .../fabro-install/Cargo.toml | 10 +-- .../fabro-install/src/lib.rs | 0 .../fabro-interview/Cargo.toml | 4 +- .../fabro-interview/src/auto_approve.rs | 0 .../fabro-interview/src/callback.rs | 0 .../fabro-interview/src/console.rs | 0 .../fabro-interview/src/control.rs | 0 .../fabro-interview/src/control_protocol.rs | 0 .../fabro-interview/src/lib.rs | 0 .../fabro-interview/src/queue.rs | 0 .../fabro-interview/src/recording.rs | 0 .../fabro-interview/src/replay.rs | 0 .../fabro-llm/Cargo.toml | 10 +-- .../fabro-llm/README.md | 0 .../fabro-llm/src/adapter_registry.rs | 0 .../fabro-llm/src/attachments.rs | 0 .../fabro-llm/src/client.rs | 0 .../src/codec/anthropic_messages/decode.rs | 0 .../src/codec/anthropic_messages/encode.rs | 0 .../src/codec/anthropic_messages/mod.rs | 0 .../src/codec/anthropic_messages/stream.rs | 0 .../src/codec/anthropic_messages/wire.rs | 0 .../src/codec/bedrock_converse/decode.rs | 0 .../src/codec/bedrock_converse/encode.rs | 0 .../src/codec/bedrock_converse/mod.rs | 0 .../src/codec/bedrock_converse/stream.rs | 0 .../src/codec/gemini_generate/decode.rs | 0 .../src/codec/gemini_generate/encode.rs | 0 .../src/codec/gemini_generate/mod.rs | 0 .../src/codec/gemini_generate/stream.rs | 0 .../src/codec/gemini_generate/wire.rs | 0 .../fabro-llm/src/codec/mod.rs | 0 .../src/codec/openai_compatible/mod.rs | 0 .../src/codec/openai_compatible/request.rs | 0 .../src/codec/openai_compatible/response.rs | 0 .../src/codec/openai_compatible/stream.rs | 0 .../src/codec/openai_compatible/translate.rs | 0 .../src/codec/openai_compatible/wire.rs | 0 .../src/codec/openai_responses/decode.rs | 0 .../src/codec/openai_responses/encode.rs | 0 .../src/codec/openai_responses/mod.rs | 0 .../src/codec/openai_responses/stream.rs | 0 .../src/codec/openai_responses/wire.rs | 0 .../fabro-llm/src/cost.rs | 0 .../fabro-llm/src/error.rs | 0 .../fabro-llm/src/generate.rs | 0 .../fabro-llm/src/lib.rs | 0 .../fabro-llm/src/middleware.rs | 0 .../fabro-llm/src/model_test.rs | 0 .../fabro-llm/src/provider.rs | 0 .../fabro-llm/src/providers/anthropic.rs | 0 .../src/providers/bedrock/eventstream.rs | 0 .../fabro-llm/src/providers/bedrock/mod.rs | 0 .../fabro-llm/src/providers/bedrock/sigv4.rs | 0 .../fabro-llm/src/providers/common.rs | 0 .../fabro-llm/src/providers/fabro_server.rs | 0 .../fabro-llm/src/providers/gemini.rs | 0 .../fabro-llm/src/providers/mod.rs | 0 .../fabro-llm/src/providers/openai.rs | 0 .../src/providers/openai_compatible.rs | 0 .../fabro-llm/src/retry.rs | 0 .../fabro-llm/src/token_count.rs | 0 .../fabro-llm/src/tools.rs | 0 .../fabro-llm/src/transport.rs | 0 .../fabro-llm/src/types.rs | 0 .../fabro-llm/tests/integration.rs | 0 .../fabro-llm/tests/it/main.rs | 0 .../fabro-llm/tests/it/support.rs | 0 .../fabro-llm/tests/it/wire/anthropic.rs | 0 .../fabro-llm/tests/it/wire/gemini.rs | 0 .../fabro-llm/tests/it/wire/mod.rs | 0 .../tests/it/wire/openai_compatible.rs | 0 .../tests/it/wire/openai_responses.rs | 0 ...e__anthropic__count_tokens_wire_shape.snap | 2 +- ...c__custom_named_stream_error_identity.snap | 2 +- ...thropic__custom_named_stream_identity.snap | 2 +- ..._anthropic__custom_named_stream_route.snap | 2 +- ...hropic__decode_max_tokens_stop_reason.snap | 2 +- ...decode_thinking_and_redacted_thinking.snap | 2 +- ...nthropic__decode_tool_use_stop_reason.snap | 2 +- ...e__anthropic__encode_audio_attachment.snap | 2 +- ...ode_bad_file_path_attachments_dropped.snap | 2 +- ..._anthropic__encode_inline_attachments.snap | 2 +- ...t__wire__anthropic__encode_multi_turn.snap | 2 +- ...pic__encode_prompt_cache_with_catalog.snap | 2 +- ..._provider_options_anthropic_namespace.snap | 2 +- ..._reasoning_effort_with_levels_catalog.snap | 2 +- ...c__encode_response_format_json_object.snap | 2 +- ...c__encode_response_format_json_schema.snap | 2 +- ...re__anthropic__encode_sampling_params.snap | 2 +- ...anthropic__encode_thinking_round_trip.snap | 2 +- ...e__anthropic__encode_tool_choice_auto.snap | 2 +- ...__anthropic__encode_tool_choice_named.snap | 2 +- ...e__anthropic__encode_tool_choice_none.snap | 2 +- ...nthropic__encode_tool_choice_required.snap | 2 +- ...re__anthropic__encode_tool_round_trip.snap | 2 +- ...re__anthropic__encode_url_attachments.snap | 2 +- ...hropic__stream_error_event_mid_stream.snap | 2 +- ...hropic__stream_text_happy_path_events.snap | 2 +- ...ropic__stream_text_happy_path_request.snap | 2 +- ..._stream_thinking_with_signature_delta.snap | 2 +- ...e__anthropic__stream_tool_call_deltas.snap | 2 +- ..._without_message_stop_emits_no_finish.snap | 2 +- ...e__anthropic__system_and_tools_decode.snap | 2 +- ...e__anthropic__system_and_tools_encode.snap | 2 +- ...wire__gemini__count_tokens_wire_shape.snap | 2 +- ...ini__custom_named_http_error_identity.snap | 2 +- ..._gemini__custom_named_stream_identity.snap | 2 +- ..._function_call_with_thought_signature.snap | 2 +- ...mini__decode_max_tokens_finish_reason.snap | 5 ++ ...__gemini__decode_safety_finish_reason.snap | 5 ++ ...t__wire__gemini__decode_thought_parts.snap | 2 +- ...wire__gemini__decode_usage_arithmetic.snap | 2 +- ...wire__gemini__encode_audio_attachment.snap | 2 +- ...ode_bad_file_path_attachments_dropped.snap | 2 +- ...re__gemini__encode_inline_attachments.snap | 2 +- .../it__wire__gemini__encode_multi_turn.snap | 2 +- ..._options_can_override_safety_settings.snap | 2 +- ...ode_provider_options_gemini_namespace.snap | 2 +- ..._reasoning_effort_with_levels_catalog.snap | 2 +- ...i__encode_response_format_json_object.snap | 2 +- ...i__encode_response_format_json_schema.snap | 2 +- ..._wire__gemini__encode_sampling_params.snap | 2 +- ...e__gemini__encode_thinking_round_trip.snap | 2 +- ...wire__gemini__encode_tool_choice_auto.snap | 2 +- ...ire__gemini__encode_tool_choice_named.snap | 2 +- ...wire__gemini__encode_tool_choice_none.snap | 2 +- ...__gemini__encode_tool_choice_required.snap | 2 +- ..._wire__gemini__encode_tool_round_trip.snap | 2 +- ..._wire__gemini__encode_url_attachments.snap | 2 +- ...thesizes_finish_without_finish_reason.snap | 2 +- ...t__wire__gemini__stream_function_call.snap | 2 +- ...gemini__stream_text_happy_path_events.snap | 2 +- ...emini__stream_text_happy_path_request.snap | 2 +- ...t__wire__gemini__stream_thought_parts.snap | 2 +- ...wire__gemini__system_and_tools_decode.snap | 2 +- ...wire__gemini__system_and_tools_encode.snap | 2 +- ..._decode_reasoning_content_as_thinking.snap | 2 +- ...code_tool_calls_with_string_arguments.snap | 2 +- ...usage_openrouter_cost_and_cache_write.snap | 2 +- ...le__decode_usage_parses_token_details.snap | 2 +- ...i_compatible__encode_audio_attachment.snap | 2 +- ...ble__encode_bad_file_path_attachments.snap | 2 +- ...compatible__encode_inline_attachments.snap | 2 +- ..._openai_compatible__encode_multi_turn.snap | 2 +- ...rovider_options_keyed_by_adapter_name.snap | 2 +- ...vider_options_other_namespace_ignored.snap | 2 +- ...e__encode_response_format_json_object.snap | 2 +- ...e__encode_response_format_json_schema.snap | 2 +- ...ai_compatible__encode_sampling_params.snap | 2 +- ...nking_round_trip_as_reasoning_content.snap | 2 +- ...i_compatible__encode_tool_choice_auto.snap | 2 +- ..._compatible__encode_tool_choice_named.snap | 2 +- ...i_compatible__encode_tool_choice_none.snap | 2 +- ...mpatible__encode_tool_choice_required.snap | 2 +- ...ai_compatible__encode_tool_round_trip.snap | 2 +- ...ai_compatible__encode_url_attachments.snap | 2 +- ...i_compatible__stream_reasoning_deltas.snap | 2 +- ...atible__stream_text_happy_path_events.snap | 2 +- ...tible__stream_text_happy_path_request.snap | 2 +- ...i_compatible__stream_tool_call_deltas.snap | 2 +- ...patible__stream_usage_openrouter_cost.snap | 2 +- ...t_done_or_content_synthesizes_nothing.snap | 5 ++ ...nthesizes_finish_when_content_started.snap | 2 +- ...i_compatible__system_and_tools_decode.snap | 2 +- ...i_compatible__system_and_tools_encode.snap | 2 +- ...ai_responses__count_tokens_wire_shape.snap | 2 +- ...om_named_stream_failed_event_identity.snap | 2 +- ...code_incomplete_status_maps_to_length.snap | 2 +- ...ode_reasoning_and_function_call_items.snap | 2 +- ..._usage_subtracts_cached_and_reasoning.snap | 2 +- ...ai_responses__encode_audio_attachment.snap | 2 +- ...ode_bad_file_path_attachments_dropped.snap | 2 +- ...ode_forces_streaming_and_omits_params.snap | 2 +- ...onses__encode_dual_id_tool_round_trip.snap | 2 +- ..._responses__encode_inline_attachments.snap | 2 +- ...__openai_responses__encode_multi_turn.snap | 2 +- ...onses__encode_opaque_items_round_trip.snap | 2 +- ...ode_provider_options_openai_namespace.snap | 2 +- ..._reasoning_effort_with_levels_catalog.snap | 2 +- ...s__encode_response_format_json_object.snap | 2 +- ...s__encode_response_format_json_schema.snap | 2 +- ...nai_responses__encode_sampling_params.snap | 2 +- ...responses__encode_thinking_round_trip.snap | 2 +- ...ai_responses__encode_tool_choice_auto.snap | 2 +- ...i_responses__encode_tool_choice_named.snap | 2 +- ...ai_responses__encode_tool_choice_none.snap | 2 +- ...esponses__encode_tool_choice_required.snap | 2 +- ...nai_responses__encode_tool_round_trip.snap | 2 +- ...nai_responses__encode_url_attachments.snap | 2 +- ...es__stream_failed_event_maps_to_error.snap | 2 +- ...ses__stream_incomplete_maps_to_length.snap | 2 +- ...nses__stream_reasoning_summary_deltas.snap | 2 +- ...ponses__stream_text_happy_path_events.snap | 2 +- ...onses__stream_text_happy_path_request.snap | 2 +- ...ai_responses__stream_tool_call_deltas.snap | 2 +- ...ai_responses__system_and_tools_decode.snap | 2 +- ...ai_responses__system_and_tools_encode.snap | 2 +- .../fabro-manifest/Cargo.toml | 8 +-- .../fabro-manifest/src/lib.rs | 0 .../fabro-mcp-store/Cargo.toml | 4 +- .../fabro-mcp-store/src/error.rs | 0 .../fabro-mcp-store/src/lib.rs | 0 .../fabro-mcp-store/src/model.rs | 0 .../fabro-mcp-store/src/store.rs | 0 .../fabro-mcp-store/tests/store.rs | 0 .../fabro-mcp/Cargo.toml | 4 +- .../fabro-mcp/src/client.rs | 0 .../fabro-mcp/src/client_handler.rs | 0 .../fabro-mcp/src/config.rs | 0 .../fabro-mcp/src/connection_manager.rs | 0 .../fabro-mcp/src/http_transport.rs | 0 .../fabro-mcp/src/lib.rs | 0 .../fabro-mcp/src/sse_client.rs | 0 .../fabro-mcp/tests/stdio_integration.rs | 0 .../fabro-mcp/tests/test_mcp_server.py | 0 .../fabro-sandbox/Cargo.toml | 8 +-- .../fabro-sandbox/src/clone_source.rs | 0 .../fabro-sandbox/src/config.rs | 0 .../fabro-sandbox/src/daytona/mod.rs | 0 .../fabro-sandbox/src/details.rs | 0 .../fabro-sandbox/src/docker.rs | 0 .../fabro-sandbox/src/error.rs | 0 .../fabro-sandbox/src/from_environment.rs | 0 .../fabro-sandbox/src/glob_match.rs | 0 .../fabro-sandbox/src/lib.rs | 0 .../fabro-sandbox/src/local.rs | 0 .../fabro-sandbox/src/managed_labels.rs | 0 .../fabro-sandbox/src/provider.rs | 0 .../fabro-sandbox/src/provider/daytona.rs | 0 .../fabro-sandbox/src/provider/docker.rs | 0 .../fabro-sandbox/src/read_guard.rs | 0 .../fabro-sandbox/src/reconnect.rs | 0 .../fabro-sandbox/src/redact.rs | 0 .../fabro-sandbox/src/sandbox.rs | 0 .../fabro-sandbox/src/sandbox_spec.rs | 0 .../fabro-sandbox/src/terminal.rs | 0 .../fabro-sandbox/src/test_support.rs | 0 .../fabro-sandbox/src/worktree.rs | 0 .../tests/daytona_streaming_live.rs | 0 .../fabro-sandbox/tests/docker_streaming.rs | 0 .../fabro-sandbox/tests/error.rs | 0 .../fabro-slack/Cargo.toml | 2 +- .../fabro-slack/src/blocks.rs | 0 .../fabro-slack/src/client.rs | 0 .../fabro-slack/src/config.rs | 0 .../fabro-slack/src/connection.rs | 0 .../fabro-slack/src/dispatch.rs | 0 .../fabro-slack/src/interaction.rs | 0 .../fabro-slack/src/lib.rs | 0 .../fabro-slack/src/payload.rs | 0 .../fabro-slack/src/socket.rs | 0 .../fabro-slack/src/threads.rs | 0 .../fabro-store/Cargo.toml | 8 +-- .../fabro-store/src/artifact_store.rs | 0 .../fabro-store/src/error.rs | 0 .../fabro-store/src/keyed_mutex.rs | 0 .../fabro-store/src/keys.rs | 0 .../fabro-store/src/lib.rs | 0 .../fabro-store/src/record/codec.rs | 0 .../fabro-store/src/record/mod.rs | 0 .../fabro-store/src/record/record_id.rs | 0 .../fabro-store/src/record/repository.rs | 0 .../fabro-store/src/record/transaction.rs | 0 .../fabro-store/src/run_sessions.rs | 0 .../fabro-store/src/run_state.rs | 0 .../fabro-store/src/run_summary_store.rs | 0 .../src/serializable_projection.rs | 0 .../fabro-store/src/slate/auth_codes.rs | 0 .../fabro-store/src/slate/auth_tokens.rs | 0 .../fabro-store/src/slate/blob_store.rs | 0 .../fabro-store/src/slate/mod.rs | 0 .../fabro-store/src/slate/projection_cache.rs | 0 .../src/slate/run_catalog_index.rs | 0 .../fabro-store/src/slate/run_store.rs | 0 .../fabro-store/src/test_util.rs | 0 .../fabro-store/src/types.rs | 0 .../tests/serializable_projection.rs | 0 .../fabro-tool/Cargo.toml | 10 +-- .../fabro-tool/src/common.rs | 0 .../fabro-tool/src/create.rs | 0 .../fabro-tool/src/events.rs | 0 .../fabro-tool/src/fabro_client.rs | 0 .../fabro-tool/src/gather.rs | 0 .../fabro-tool/src/get.rs | 0 .../fabro-tool/src/interact.rs | 0 .../fabro-tool/src/lib.rs | 0 .../fabro-tool/src/manifest.rs | 0 .../fabro-tool/src/pair.rs | 0 .../fabro-tool/src/search.rs | 0 .../fabro-tracker/Cargo.toml | 0 .../src/fixtures/github-app-test-key.pem | 0 .../fabro-tracker/src/github.rs | 0 .../fabro-tracker/src/lib.rs | 0 .../fabro-tracker/src/linear.rs | 0 .../fabro-validate/Cargo.toml | 4 +- .../fabro-validate/src/lib.rs | 0 .../src/rules/all_conditional_edges.rs | 0 .../fabro-validate/src/rules/backend_valid.rs | 0 .../src/rules/condition_syntax.rs | 0 .../src/rules/direction_valid.rs | 0 .../src/rules/edge_target_exists.rs | 0 .../src/rules/exit_no_outgoing.rs | 0 .../src/rules/fidelity_valid.rs | 0 .../src/rules/freeform_edge_count.rs | 0 .../src/rules/goal_gate_has_retry.rs | 0 .../fabro-validate/src/rules/import_error.rs | 0 .../src/rules/inert_attribute.rs | 0 .../fabro-validate/src/rules/mod.rs | 0 .../fabro-validate/src/rules/model_support.rs | 0 .../src/rules/node_model_known.rs | 0 .../src/rules/orphan_custom_outcome.rs | 0 .../src/rules/parallel_branch.rs | 0 .../rules/parallel_branch_inert_attribute.rs | 0 .../src/rules/prompt_on_llm_nodes.rs | 0 .../rules/random_selection_no_conditions.rs | 0 .../fabro-validate/src/rules/reachability.rs | 0 .../src/rules/reserved_keyword_node_id.rs | 0 .../src/rules/retry_target_exists.rs | 0 .../src/rules/script_absolute_cd.rs | 0 .../src/rules/selection_valid.rs | 0 .../src/rules/start_no_incoming.rs | 0 .../fabro-validate/src/rules/start_node.rs | 0 .../src/rules/stylesheet_model_known.rs | 0 .../src/rules/stylesheet_syntax.rs | 0 .../fabro-validate/src/rules/terminal_node.rs | 0 .../fabro-validate/src/rules/test_support.rs | 0 .../rules/thread_id_requires_fidelity_full.rs | 0 .../fabro-validate/src/rules/type_known.rs | 0 .../src/rules/unresolved_file_ref.rs | 0 .../fabro-variable/Cargo.toml | 4 +- .../fabro-variable/src/lib.rs | 0 .../fabro-variable/tests/store.rs | 0 .../fabro-workflow/Cargo.toml | 22 +++--- .../fabro-workflow/README.md | 0 .../fabro-workflow/src/artifact.rs | 0 .../fabro-workflow/src/artifact_snapshot.rs | 0 .../fabro-workflow/src/artifact_upload.rs | 0 .../fabro-workflow/src/billing_rollup.rs | 0 .../fabro-workflow/src/command_log.rs | 0 .../fabro-workflow/src/condition.rs | 0 .../fabro-workflow/src/context.rs | 0 .../fabro-workflow/src/error.rs | 0 .../fabro-workflow/src/event.rs | 0 .../fabro-workflow/src/event/convert.rs | 0 .../fabro-workflow/src/event/emitter.rs | 0 .../fabro-workflow/src/event/events.rs | 0 .../fabro-workflow/src/event/names.rs | 0 .../fabro-workflow/src/event/redaction.rs | 0 .../fabro-workflow/src/event/sink.rs | 0 .../fabro-workflow/src/event/stored_fields.rs | 0 .../fabro-workflow/src/event/test_support.rs | 0 .../fabro-workflow/src/file_resolver.rs | 0 .../fabro-workflow/src/git.rs | 0 .../fabro-workflow/src/github_token_source.rs | 0 .../fabro-workflow/src/graph.rs | 0 .../fabro-workflow/src/graph/routing.rs | 0 .../fabro-workflow/src/handler/agent.rs | 0 .../fabro-workflow/src/handler/command.rs | 0 .../fabro-workflow/src/handler/conditional.rs | 0 .../fabro-workflow/src/handler/exit.rs | 0 .../fabro-workflow/src/handler/fan_in.rs | 0 .../fabro-workflow/src/handler/human.rs | 0 .../fabro-workflow/src/handler/llm/acp.rs | 0 .../src/handler/llm/activation_lease.rs | 0 .../fabro-workflow/src/handler/llm/api.rs | 0 .../src/handler/llm/changed_files.rs | 0 .../fabro-workflow/src/handler/llm/mod.rs | 0 .../src/handler/llm/preamble.rs | 0 .../fabro-workflow/src/handler/llm/router.rs | 0 .../fabro-workflow/src/handler/llm/routing.rs | 0 .../src/handler/manager_loop.rs | 0 .../fabro-workflow/src/handler/mod.rs | 0 .../fabro-workflow/src/handler/parallel.rs | 0 .../fabro-workflow/src/handler/prompt.rs | 0 .../fabro-workflow/src/handler/start.rs | 0 .../src/handler/structured_output.rs | 0 .../fabro-workflow/src/handler/wait.rs | 0 .../fabro-workflow/src/hook_context.rs | 0 .../fabro-workflow/src/interview_runtime.rs | 0 .../fabro-workflow/src/lib.rs | 0 .../fabro-workflow/src/lifecycle/artifact.rs | 0 .../src/lifecycle/auto_status.rs | 0 .../src/lifecycle/circuit_breaker.rs | 0 .../fabro-workflow/src/lifecycle/event.rs | 0 .../fabro-workflow/src/lifecycle/fidelity.rs | 0 .../fabro-workflow/src/lifecycle/git.rs | 0 .../fabro-workflow/src/lifecycle/hook.rs | 0 .../fabro-workflow/src/lifecycle/mod.rs | 0 .../fabro-workflow/src/node_handler.rs | 0 .../fabro-workflow/src/operations/archive.rs | 0 .../fabro-workflow/src/operations/create.rs | 0 .../fabro-workflow/src/operations/fork.rs | 0 .../fabro-workflow/src/operations/mod.rs | 0 .../fabro-workflow/src/operations/resume.rs | 0 .../fabro-workflow/src/operations/retry.rs | 0 .../fabro-workflow/src/operations/rewind.rs | 0 .../src/operations/run_store.rs | 0 .../fabro-workflow/src/operations/source.rs | 0 .../fabro-workflow/src/operations/start.rs | 0 .../fabro-workflow/src/operations/timeline.rs | 0 .../fabro-workflow/src/operations/validate.rs | 0 .../fabro-workflow/src/outcome.rs | 0 .../fabro-workflow/src/pipeline/execute.rs | 0 .../src/pipeline/execute/tests.rs | 0 .../fabro-workflow/src/pipeline/finalize.rs | 0 .../fabro-workflow/src/pipeline/initialize.rs | 0 .../fabro-workflow/src/pipeline/mod.rs | 0 .../fabro-workflow/src/pipeline/parse.rs | 0 .../fabro-workflow/src/pipeline/persist.rs | 0 .../src/pipeline/prompts/pr_body.md | 0 .../src/pipeline/pull_request.rs | 0 .../fabro-workflow/src/pipeline/transform.rs | 0 .../fabro-workflow/src/pipeline/types.rs | 0 .../fabro-workflow/src/pipeline/validate.rs | 0 .../fabro-workflow/src/pull_request.rs | 0 .../fabro-workflow/src/records/checkpoint.rs | 0 .../fabro-workflow/src/records/conclusion.rs | 0 .../fabro-workflow/src/records/mod.rs | 0 .../fabro-workflow/src/records/run.rs | 0 .../fabro-workflow/src/records/start.rs | 0 .../fabro-workflow/src/retry.rs | 0 .../fabro-workflow/src/run_control.rs | 0 .../fabro-workflow/src/run_dir.rs | 0 .../fabro-workflow/src/run_lookup.rs | 0 .../fabro-workflow/src/run_materialization.rs | 0 .../fabro-workflow/src/run_metadata.rs | 0 .../fabro-workflow/src/run_options.rs | 0 .../fabro-workflow/src/run_status.rs | 0 .../fabro-workflow/src/runtime_store.rs | 0 .../fabro-workflow/src/sandbox_git.rs | 0 .../fabro-workflow/src/sandbox_git_runtime.rs | 0 .../fabro-workflow/src/services.rs | 0 .../fabro-workflow/src/stage_scope.rs | 0 .../fabro-workflow/src/static_reference.rs | 0 .../fabro-workflow/src/steering_hub.rs | 0 .../fabro-workflow/src/test_support.rs | 0 .../src/transforms/file_inlining.rs | 0 .../fabro-workflow/src/transforms/import.rs | 0 .../src/transforms/importable_field.rs | 0 .../fabro-workflow/src/transforms/mod.rs | 0 .../src/transforms/model_resolution.rs | 0 .../fabro-workflow/src/transforms/preamble.rs | 0 .../src/transforms/stylesheet.rs | 0 .../src/transforms/stylesheet_application.rs | 0 .../src/transforms/variable_expansion.rs | 0 .../fabro-workflow/src/workflow_bundle.rs | 0 .../tests/it/attractor_compat.rs | 0 .../fabro-workflow/tests/it/cp_integration.rs | 0 .../tests/it/daytona_integration.rs | 0 .../tests/it/git_integration.rs | 0 .../fabro-workflow/tests/it/integration.rs | 0 .../fabro-workflow/tests/it/main.rs | 0 .../fabro-workflow/tests/materialize_run.rs | 0 ...mini__decode_max_tokens_finish_reason.snap | 5 -- ...__gemini__decode_safety_finish_reason.snap | 5 -- ...t_done_or_content_synthesizes_nothing.snap | 5 -- .../build-support/Cargo.toml | 0 .../build-support/git_metadata.rs | 0 .../fabro-api/Cargo.toml | 2 +- lib/{crates => foundation}/fabro-api/build.rs | 2 +- .../fabro-api/src/lib.rs | 0 ...gent_session_activated_props_round_trip.rs | 0 .../fabro-api/tests/automation_round_trip.rs | 0 .../tests/billed_token_counts_round_trip.rs | 0 .../tests/command_termination_round_trip.rs | 0 .../tests/completion_message_round_trip.rs | 0 .../fabro-api/tests/cost_source_round_trip.rs | 0 .../fabro-api/tests/diff_stats_round_trip.rs | 0 .../tests/diff_summary_round_trip.rs | 0 .../fabro-api/tests/environment_round_trip.rs | 0 .../tests/event_envelope_round_trip.rs | 0 .../fabro-api/tests/git_context_round_trip.rs | 0 .../tests/interview_option_round_trip.rs | 0 .../interview_question_record_round_trip.rs | 0 .../fabro-api/tests/mcp_server_round_trip.rs | 0 .../tests/mcp_transport_round_trip.rs | 0 .../fabro-api/tests/model_costs_round_trip.rs | 0 .../tests/model_features_round_trip.rs | 0 .../tests/model_limits_round_trip.rs | 0 .../fabro-api/tests/model_round_trip.rs | 0 .../tests/model_test_mode_round_trip.rs | 0 .../fabro-api/tests/pair_round_trip.rs | 0 .../pending_interview_record_round_trip.rs | 0 .../tests/pre_run_push_outcome_round_trip.rs | 0 .../fabro-api/tests/principal_round_trip.rs | 0 .../fabro-api/tests/provider_id_round_trip.rs | 0 .../fabro-api/tests/provider_round_trip.rs | 0 .../tests/pull_request_round_trip.rs | 0 .../tests/question_type_round_trip.rs | 0 .../tests/run_billing_stage_round_trip.rs | 0 .../fabro-api/tests/run_event_round_trip.rs | 0 .../fabro-api/tests/run_failure_round_trip.rs | 0 .../tests/run_integrations_round_trip.rs | 0 .../tests/run_projection_round_trip.rs | 0 .../fabro-api/tests/run_sandbox_round_trip.rs | 0 .../fabro-api/tests/run_summary_round_trip.rs | 0 .../tests/sandbox_details_round_trip.rs | 0 .../tests/sandbox_inventory_round_trip.rs | 0 .../tests/sandbox_services_round_trip.rs | 0 .../tests/secret_metadata_round_trip.rs | 0 .../fabro-api/tests/secret_type_round_trip.rs | 0 .../tests/server_settings_round_trip.rs | 0 .../tests/session_contract_round_trip.rs | 0 .../tests/stage_completion_round_trip.rs | 0 .../tests/stage_handler_round_trip.rs | 0 .../tests/stage_model_usage_round_trip.rs | 0 .../tests/stage_outcome_round_trip.rs | 0 .../tests/stage_projection_round_trip.rs | 0 .../fabro-api/tests/stage_state_round_trip.rs | 0 .../fabro-api/tests/status_round_trip.rs | 0 .../tests/submit_answer_request_round_trip.rs | 0 .../tests/system_integrations_round_trip.rs | 0 .../fabro-api/tests/variable_round_trip.rs | 0 .../tests/workflow_settings_round_trip.rs | 0 .../fabro-auth/Cargo.toml | 0 .../fabro-auth/src/context.rs | 0 .../fabro-auth/src/credential.rs | 0 .../fabro-auth/src/credential_source.rs | 0 .../fabro-auth/src/env_source.rs | 0 .../fabro-auth/src/extra_headers_source.rs | 0 .../fabro-auth/src/lib.rs | 0 .../fabro-auth/src/refresh.rs | 0 .../fabro-auth/src/resolve.rs | 0 .../fabro-auth/src/sql_vault_source.rs | 0 .../fabro-auth/src/strategies/api_key.rs | 0 .../fabro-auth/src/strategies/codex_device.rs | 0 .../fabro-auth/src/strategies/mod.rs | 0 .../fabro-auth/src/strategy.rs | 0 .../fabro-auth/src/vault_ext.rs | 0 .../fabro-auth/src/vault_source.rs | 0 .../fabro-client/Cargo.toml | 0 .../fabro-client/src/auth_store.rs | 0 .../fabro-client/src/client.rs | 0 .../fabro-client/src/credential.rs | 0 .../fabro-client/src/error.rs | 0 .../fabro-client/src/lib.rs | 0 .../fabro-client/src/session.rs | 0 .../fabro-client/src/sse.rs | 0 .../fabro-client/src/target.rs | 0 .../fabro-config/Cargo.toml | 0 ...26050101_legacy_sandbox_to_environments.rs | 0 ...1_settings_environments_to_server_files.rs | 0 .../fabro-config/src/bind.rs | 0 .../fabro-config/src/builders.rs | 0 .../fabro-config/src/daemon.rs | 0 .../fabro-config/src/defaults.rs | 0 .../fabro-config/src/defaults.toml | 0 .../fabro-config/src/envfile.rs | 0 .../fabro-config/src/error.rs | 0 .../fabro-config/src/home.rs | 0 .../fabro-config/src/input_overrides.rs | 0 .../fabro-config/src/layers/cli.rs | 0 .../fabro-config/src/layers/combine.rs | 0 .../fabro-config/src/layers/environment.rs | 0 .../fabro-config/src/layers/llm.rs | 0 .../fabro-config/src/layers/log_filter.rs | 0 .../fabro-config/src/layers/maps.rs | 0 .../fabro-config/src/layers/mod.rs | 0 .../fabro-config/src/layers/project.rs | 0 .../fabro-config/src/layers/run.rs | 0 .../fabro-config/src/layers/server.rs | 0 .../fabro-config/src/layers/settings.rs | 0 .../fabro-config/src/layers/splice_array.rs | 0 .../fabro-config/src/layers/workflow.rs | 0 .../fabro-config/src/lib.rs | 0 .../fabro-config/src/load.rs | 0 .../fabro-config/src/logging.rs | 0 .../fabro-config/src/migrations.rs | 0 .../fabro-config/src/parse.rs | 0 .../fabro-config/src/project.rs | 0 .../fabro-config/src/resolve/cli.rs | 0 .../fabro-config/src/resolve/environment.rs | 0 .../fabro-config/src/resolve/error.rs | 0 .../fabro-config/src/resolve/mod.rs | 0 .../fabro-config/src/resolve/project.rs | 0 .../fabro-config/src/resolve/run.rs | 0 .../fabro-config/src/resolve/server.rs | 0 .../fabro-config/src/resolve/workflow.rs | 0 .../fabro-config/src/run.rs | 0 .../fabro-config/src/storage.rs | 0 .../fabro-config/src/tests/combine.rs | 0 .../fabro-config/src/tests/defaults.rs | 0 .../fabro-config/src/tests/log_filter.rs | 0 .../fabro-config/src/tests/mod.rs | 0 .../fabro-config/src/tests/resolve_cli.rs | 0 .../fabro-config/src/tests/resolve_project.rs | 0 .../fabro-config/src/tests/resolve_root.rs | 0 .../fabro-config/src/tests/resolve_run.rs | 0 .../fabro-config/src/tests/resolve_server.rs | 0 .../src/tests/resolve_workflow.rs | 0 .../fabro-config/src/user.rs | 0 .../fabro-core/Cargo.toml | 0 .../fabro-core/src/context.rs | 0 .../fabro-core/src/error.rs | 0 .../fabro-core/src/executor.rs | 0 .../fabro-core/src/graph.rs | 0 .../fabro-core/src/handler.rs | 0 .../fabro-core/src/lib.rs | 0 .../fabro-core/src/lifecycle.rs | 0 .../fabro-core/src/outcome.rs | 0 .../fabro-core/src/retry.rs | 0 .../fabro-core/src/stall.rs | 0 .../fabro-core/src/state.rs | 0 .../fabro-core/src/test_fixtures.rs | 0 .../fabro-db/Cargo.toml | 0 .../migrations/2026063001_variables.sql | 0 .../migrations/2026063002_environments.sql | 0 .../migrations/2026071101_secrets.sql | 0 .../migrations/2026071102_mcp_servers.sql | 0 .../migrations/2026071103_automations.sql | 0 .../fabro-db/migrations/2026071104_runs.sql | 0 .../fabro-db/src/lib.rs | 0 .../fabro-db/tests/sqlite.rs | 0 .../fabro-dev/Cargo.toml | 0 .../fabro-dev/src/commands/bench_tests.rs | 0 .../fabro-dev/src/commands/build.rs | 0 .../fabro-dev/src/commands/docker_build.rs | 0 .../fabro-dev/src/commands/docs.rs | 0 .../src/commands/docs_cli_reference.rs | 0 .../src/commands/docs_options_reference.rs | 0 .../fabro-dev/src/commands/mod.rs | 0 .../fabro-dev/src/commands/release.rs | 0 .../fabro-dev/src/commands/spa.rs | 0 .../fabro-dev/src/commands/spa_check.rs | 4 +- .../fabro-dev/src/commands/spa_refresh.rs | 12 ++-- .../fabro-dev/src/lib.rs | 0 .../fabro-dev/src/main.rs | 0 .../fabro-dev/tests/it/docker_build.rs | 0 .../fabro-dev/tests/it/docker_entrypoint.rs | 0 .../fabro-dev/tests/it/docs.rs | 0 .../fabro-dev/tests/it/main.rs | 2 +- .../fabro-dev/tests/it/policy.rs | 24 +++---- .../fabro-dev/tests/it/release.rs | 2 +- .../fabro-dev/tests/it/spa.rs | 12 ++-- .../fabro-http/Cargo.toml | 0 .../fabro-http/src/lib.rs | 0 .../fabro-macros/Cargo.toml | 0 .../fabro-macros/src/lib.rs | 0 .../fabro-macros/src/options_metadata.rs | 0 .../fabro-macros/tests/options_metadata.rs | 0 .../fabro-model/Cargo.toml | 0 .../fabro-model/src/adapter.rs | 0 .../fabro-model/src/billing.rs | 0 .../fabro-model/src/bootstrap_catalog.rs | 0 .../fabro-model/src/catalog.rs | 0 .../src/catalog/providers/anthropic.toml | 0 .../src/catalog/providers/bedrock-openai.toml | 0 .../src/catalog/providers/bedrock.toml | 0 .../src/catalog/providers/gemini.toml | 0 .../src/catalog/providers/inception.toml | 0 .../src/catalog/providers/kimi.toml | 0 .../src/catalog/providers/litellm.toml | 0 .../src/catalog/providers/minimax.toml | 0 .../src/catalog/providers/ollama.toml | 0 .../src/catalog/providers/openai.toml | 0 .../src/catalog/providers/openrouter.toml | 0 .../src/catalog/providers/poolside.toml | 0 .../src/catalog/providers/venice.toml | 0 .../src/catalog/providers/zai.toml | 0 .../fabro-model/src/codec.rs | 0 .../fabro-model/src/ids.rs | 0 .../fabro-model/src/lib.rs | 0 .../fabro-model/src/model_ref.rs | 0 .../fabro-model/src/model_test.rs | 0 .../fabro-model/src/provider.rs | 0 .../fabro-model/src/reasoning.rs | 0 .../fabro-model/src/types.rs | 0 .../fabro-oauth/Cargo.toml | 0 .../fabro-oauth/examples/login.rs | 0 .../fabro-oauth/src/lib.rs | 0 .../fabro-options-metadata/Cargo.toml | 0 .../fabro-options-metadata/src/lib.rs | 0 .../fabro-proc/Cargo.toml | 0 .../fabro-proc/build.rs | 0 .../fabro-proc/c/capture_argv.c | 0 .../fabro-proc/src/flock.rs | 0 .../fabro-proc/src/lib.rs | 0 .../fabro-proc/src/pre_exec.rs | 0 .../fabro-proc/src/signal.rs | 0 .../fabro-proc/src/title.rs | 0 .../fabro-redact/Cargo.toml | 0 .../fabro-redact/build.rs | 0 .../fabro-redact/data/gitleaks.toml | 0 .../fabro-redact/src/entropy.rs | 0 .../fabro-redact/src/gitleaks.rs | 0 .../fabro-redact/src/jsonl.rs | 0 .../fabro-redact/src/lib.rs | 0 .../fabro-redact/src/safe_url.rs | 0 .../fabro-static/Cargo.toml | 0 .../fabro-static/src/env_vars.rs | 0 .../fabro-static/src/lib.rs | 0 .../fabro-static/src/secret_registry.rs | 0 .../fabro-telemetry/Cargo.toml | 0 .../fabro-telemetry/src/anonymous_id.rs | 0 .../fabro-telemetry/src/buffer.rs | 0 .../fabro-telemetry/src/context.rs | 0 .../fabro-telemetry/src/event.rs | 0 .../fabro-telemetry/src/git.rs | 0 .../fabro-telemetry/src/lib.rs | 0 .../fabro-telemetry/src/panic.rs | 0 .../fabro-telemetry/src/sanitize.rs | 0 .../fabro-telemetry/src/sender.rs | 0 .../fabro-telemetry/src/spawn.rs | 0 .../fabro-template/Cargo.toml | 0 .../fabro-template/src/dependency.rs | 0 .../fabro-template/src/lib.rs | 0 .../fabro-template/src/store.rs | 0 .../fabro-test/Cargo.toml | 2 +- .../fabro-test/src/http_assert.rs | 0 .../fabro-test/src/lib.rs | 0 .../fabro-types/Cargo.toml | 0 .../fabro-types/src/artifact.rs | 0 .../fabro-types/src/auth.rs | 0 .../fabro-types/src/billing.rs | 0 .../fabro-types/src/blob_ref.rs | 0 .../fabro-types/src/checkpoint.rs | 0 .../fabro-types/src/command_output.rs | 0 .../fabro-types/src/conclusion.rs | 0 .../fabro-types/src/dense.rs | 0 .../fabro-types/src/diff.rs | 0 .../fabro-types/src/event_envelope.rs | 0 .../fabro-types/src/failure_signature.rs | 0 .../fabro-types/src/graph.rs | 0 .../fabro-types/src/id.rs | 0 .../fabro-types/src/interview.rs | 0 .../fabro-types/src/lib.rs | 0 .../fabro-types/src/llm_backend.rs | 0 .../fabro-types/src/manifest_path.rs | 0 .../fabro-types/src/mcp_store.rs | 0 .../fabro-types/src/outcome.rs | 0 .../fabro-types/src/pair.rs | 0 .../fabro-types/src/principal.rs | 0 .../fabro-types/src/pull_request.rs | 0 .../fabro-types/src/repository.rs | 0 .../fabro-types/src/run.rs | 0 .../fabro-types/src/run_blob_id.rs | 0 .../fabro-types/src/run_event/agent.rs | 0 .../fabro-types/src/run_event/infra.rs | 0 .../fabro-types/src/run_event/misc.rs | 0 .../fabro-types/src/run_event/mod.rs | 0 .../fabro-types/src/run_event/run.rs | 0 .../fabro-types/src/run_event/session.rs | 0 .../fabro-types/src/run_event/stage.rs | 0 .../fabro-types/src/run_event/todo.rs | 0 .../fabro-types/src/run_failure.rs | 0 .../fabro-types/src/run_id.rs | 0 .../fabro-types/src/run_projection.rs | 0 .../fabro-types/src/run_sandbox.rs | 0 .../fabro-types/src/run_summary.rs | 0 .../fabro-types/src/run_title.rs | 0 .../fabro-types/src/sandbox_details.rs | 0 .../fabro-types/src/sandbox_inventory.rs | 0 .../fabro-types/src/sandbox_provider.rs | 0 .../fabro-types/src/sandbox_services.rs | 0 .../fabro-types/src/secret.rs | 0 .../fabro-types/src/session.rs | 0 .../fabro-types/src/settings/cli.rs | 0 .../fabro-types/src/settings/duration.rs | 0 .../fabro-types/src/settings/interp.rs | 0 .../fabro-types/src/settings/mod.rs | 0 .../fabro-types/src/settings/model_ref.rs | 0 .../fabro-types/src/settings/project.rs | 0 .../fabro-types/src/settings/public_url.rs | 0 .../fabro-types/src/settings/run.rs | 0 .../fabro-types/src/settings/server.rs | 0 .../fabro-types/src/settings/size.rs | 0 .../fabro-types/src/settings/workflow.rs | 0 .../fabro-types/src/stage_completion.rs | 0 .../fabro-types/src/stage_handler.rs | 0 .../fabro-types/src/stage_id.rs | 0 .../fabro-types/src/start.rs | 0 .../fabro-types/src/status.rs | 0 .../fabro-types/src/steering.rs | 0 .../fabro-types/src/system_integrations.rs | 0 .../fabro-types/src/test_support.rs | 0 .../fabro-types/src/timing.rs | 0 .../fabro-types/src/todo.rs | 0 .../fabro-types/src/transcript.rs | 0 .../fabro-types/src/variable.rs | 0 .../fabro-types/tests/run_event_serde.rs | 0 .../fabro-types/tests/run_failure_serde.rs | 0 .../fabro-types/tests/run_spec_methods.rs | 0 .../fabro-types/tests/run_spec_serde.rs | 0 .../tests/sandbox_inventory_serde.rs | 0 .../fabro-types/tests/sandbox_model_serde.rs | 0 .../fabro-types/tests/stage_handler.rs | 0 .../fabro-util/Cargo.toml | 0 .../fabro-util/src/backoff.rs | 0 .../fabro-util/src/browser.rs | 0 .../fabro-util/src/check_report.rs | 0 .../fabro-util/src/dev_token.rs | 0 .../fabro-util/src/env.rs | 0 .../fabro-util/src/error.rs | 0 .../fabro-util/src/exit.rs | 0 .../fabro-util/src/home.rs | 0 .../fabro-util/src/json.rs | 0 .../fabro-util/src/lib.rs | 0 .../fabro-util/src/path.rs | 0 .../fabro-util/src/printer.rs | 0 .../fabro-util/src/run_log.rs | 0 .../fabro-util/src/session_secret.rs | 0 .../fabro-util/src/shell.rs | 0 .../fabro-util/src/terminal.rs | 0 .../fabro-util/src/text.rs | 0 .../fabro-util/src/time.rs | 0 .../fabro-util/src/version.rs | 0 .../fabro-util/src/warnings.rs | 0 .../fabro-util/tests/dev_token.rs | 0 .../fabro-util/tests/error_chain.rs | 0 .../fabro-vault/Cargo.toml | 0 .../fabro-vault/src/lib.rs | 0 .../fabro-vault/src/store.rs | 0 .../fabro-vault/tests/store.rs | 0 1297 files changed, 471 insertions(+), 461 deletions(-) rename lib/{crates => apps}/fabro-cli/Cargo.toml (55%) rename lib/{crates => apps}/fabro-cli/build.rs (100%) rename lib/{crates => apps}/fabro-cli/src/args.rs (100%) rename lib/{crates => apps}/fabro-cli/src/command_context.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/artifact/cp.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/artifact/list.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/artifact/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/auth/login.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/auth/logout.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/auth/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/auth/status.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/cli_reference.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/config/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/doctor.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/dump.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/exec.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/graph.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/install.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/mcp/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/model.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/parent/link.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/parent/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/parent/unlink.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/parse.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/close.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/create.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/link.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/merge.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/unlink.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/pr/view.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/preflight.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/provider/login.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/provider/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/render_graph.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/repo/deinit.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/repo/init.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/repo/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/ask.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/attach.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/checkpoints.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/command.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/cp.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/create.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/diff.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/events.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/fork.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/logs.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/output.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/overrides.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/preview.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/resume.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/rewind.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/event.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/info_display.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/renderer.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/setup_display.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/stage_display.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/run_progress/styles.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/runner.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/ssh.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/start.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/steer.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/run/wait.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/runs/approval.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/runs/archive.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/runs/inspect.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/runs/list.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/runs/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/runs/rm.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/sandbox/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/secret/list.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/secret/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/secret/rm.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/secret/set.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/server/foreground.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/server/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/server/start.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/server/status.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/server/stop.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/system/df.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/system/events.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/system/info.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/system/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/system/prune.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/system/repair.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/uninstall.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/upgrade.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/validate.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/variable/get.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/variable/list.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/variable/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/variable/rm.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/variable/set.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/version.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/workflow/create.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/workflow/list.rs (100%) rename lib/{crates => apps}/fabro-cli/src/commands/workflow/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/gh.rs (100%) rename lib/{crates => apps}/fabro-cli/src/landing.rs (100%) rename lib/{crates => apps}/fabro-cli/src/local_server.rs (100%) rename lib/{crates => apps}/fabro-cli/src/logging.rs (100%) rename lib/{crates => apps}/fabro-cli/src/main.rs (100%) rename lib/{crates => apps}/fabro-cli/src/manifest_args.rs (100%) rename lib/{crates => apps}/fabro-cli/src/server_client.rs (100%) rename lib/{crates => apps}/fabro-cli/src/server_runs.rs (100%) rename lib/{crates => apps}/fabro-cli/src/shared/github.rs (100%) rename lib/{crates => apps}/fabro-cli/src/shared/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/shared/provider_auth.rs (100%) rename lib/{crates => apps}/fabro-cli/src/shared/repo.rs (100%) rename lib/{crates => apps}/fabro-cli/src/shared/utilities.rs (100%) rename lib/{crates => apps}/fabro-cli/src/sleep_inhibitor/dummy.rs (100%) rename lib/{crates => apps}/fabro-cli/src/sleep_inhibitor/iokit_bindings.rs (100%) rename lib/{crates => apps}/fabro-cli/src/sleep_inhibitor/linux.rs (100%) rename lib/{crates => apps}/fabro-cli/src/sleep_inhibitor/macos.rs (100%) rename lib/{crates => apps}/fabro-cli/src/sleep_inhibitor/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/src/user_config.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/build_git_metadata.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/approve.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/archive.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/artifact_cp.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/artifact_list.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/attach.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/auth.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/cli_reference.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/config.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/create.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/deny.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/diff.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/discord.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/docs.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/doctor.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/dump.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/events.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/exec.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/fabro.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/fork.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/graph.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/inspect.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/install.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/json_global.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/logs.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/mcp.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/model.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/model_list.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/model_test.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/parent.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/parse.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr_close.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr_create.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr_link.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr_merge.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr_unlink.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/pr_view.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/preflight.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/provider.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/provider_login.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/ps.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/render_graph.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/repo.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/repo_deinit.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/repo_init.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/resume.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/rewind.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/rm.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/run.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/runner.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/sandbox_cp.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/sandbox_preview.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/sandbox_ssh.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/secret.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/secret_list.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/secret_rm.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/secret_set.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/send_analytics.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/send_panic.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/server_start.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/server_status.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/server_stop.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/start.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/support.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/system.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/system_df.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/system_events.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/system_info.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/system_prune.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/system_repair.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/test_panic.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/top_level.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/unarchive.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/uninstall.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/upgrade.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/validate.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/variable.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/variable_get.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/variable_list.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/variable_rm.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/variable_set.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/version.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/wait.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/worker_auth.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/workflow.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/workflow_create.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/cmd/workflow_list.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/main.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/archive.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/artifacts.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/auth.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/exec.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/lifecycle.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/server_lifecycle.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/scenario/smoke.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/support/auth_harness.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/support/auth_tokens.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/support/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/acp.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/agent_linear.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/artifacts.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/command_agent_mixed.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/command_pipeline.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/command_routing.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/conditional_branching.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/dry_run_examples.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/agent_linear.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/command_agent_mixed.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/command_pipeline.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/command_routing.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/conditional_branching.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/full_stack.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/fixtures/human_gate.fabro (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/full_stack.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/hooks.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/human_gate.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/it/workflow/mod.rs (100%) rename lib/{crates => apps}/fabro-cli/tests/manifest_path_round_trip.rs (100%) rename lib/{crates => apps}/fabro-mcp-server/Cargo.toml (59%) rename lib/{crates => apps}/fabro-mcp-server/src/config.rs (100%) rename lib/{crates => apps}/fabro-mcp-server/src/lib.rs (100%) rename lib/{crates => apps}/fabro-mcp-server/src/manifest_builder.rs (100%) rename lib/{crates => apps}/fabro-mcp-server/src/server.rs (100%) rename lib/{crates => apps}/fabro-server/Cargo.toml (56%) rename lib/{crates => apps}/fabro-server/build.rs (100%) rename lib/{crates => apps}/fabro-server/migrations/2026051801_legacy_vault_entries.rs (100%) rename lib/{crates => apps}/fabro-server/migrations/2026052501_optional_server_env_secrets_to_vault.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/browser_shell.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/cli_flow.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/github_endpoints.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/jwt.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/keys.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/mod.rs (100%) rename lib/{crates => apps}/fabro-server/src/auth/translate.rs (100%) rename lib/{crates => apps}/fabro-server/src/automation_materializer.rs (100%) rename lib/{crates => apps}/fabro-server/src/canonical_host.rs (100%) rename lib/{crates => apps}/fabro-server/src/canonical_origin.rs (100%) rename lib/{crates => apps}/fabro-server/src/csp.rs (100%) rename lib/{crates => apps}/fabro-server/src/demo/mod.rs (100%) rename lib/{crates => apps}/fabro-server/src/diagnostics.rs (100%) rename lib/{crates => apps}/fabro-server/src/error.rs (100%) rename lib/{crates => apps}/fabro-server/src/git_checkout.rs (100%) rename lib/{crates => apps}/fabro-server/src/github_webhooks.rs (100%) rename lib/{crates => apps}/fabro-server/src/install.rs (100%) rename lib/{crates => apps}/fabro-server/src/interp.rs (100%) rename lib/{crates => apps}/fabro-server/src/jwt_auth.rs (100%) rename lib/{crates => apps}/fabro-server/src/lib.rs (100%) rename lib/{crates => apps}/fabro-server/src/manifest_validation.rs (100%) rename lib/{crates => apps}/fabro-server/src/migrations.rs (100%) rename lib/{crates => apps}/fabro-server/src/principal_middleware.rs (100%) rename lib/{crates => apps}/fabro-server/src/request_id.rs (100%) rename lib/{crates => apps}/fabro-server/src/run_files.rs (100%) rename lib/{crates => apps}/fabro-server/src/run_files_security.rs (100%) rename lib/{crates => apps}/fabro-server/src/run_manifest.rs (100%) rename lib/{crates => apps}/fabro-server/src/run_selector.rs (100%) rename lib/{crates => apps}/fabro-server/src/run_title_generation.rs (100%) rename lib/{crates => apps}/fabro-server/src/run_tool_manifest.rs (100%) rename lib/{crates => apps}/fabro-server/src/security_headers.rs (100%) rename lib/{crates => apps}/fabro-server/src/serve.rs (100%) rename lib/{crates => apps}/fabro-server/src/server.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/automation_scheduler.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/artifacts.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/automations.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/billing.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/completions.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/environments.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/events.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/graph.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/lifecycle.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/llm_sse.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/mcp_servers.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/mod.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/models.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/pair.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/playground.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/prompts/playground_system.md (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/pull_requests.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/runs.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/sandbox.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/sandboxes.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/secrets.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/sessions.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/steer.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/system.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/variables.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/handler/worker_control.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/resource_sampler.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/session_runtime.rs (100%) rename lib/{crates => apps}/fabro-server/src/server/tests.rs (100%) rename lib/{crates => apps}/fabro-server/src/server_secrets.rs (100%) rename lib/{crates => apps}/fabro-server/src/spawn_env.rs (100%) rename lib/{crates => apps}/fabro-server/src/startup.rs (100%) rename lib/{crates => apps}/fabro-server/src/static_files.rs (99%) rename lib/{crates => apps}/fabro-server/src/test_support.rs (100%) rename lib/{crates => apps}/fabro-server/src/web_auth.rs (100%) rename lib/{crates => apps}/fabro-server/src/worker_control/bus.rs (100%) rename lib/{crates => apps}/fabro-server/src/worker_control/local.rs (100%) rename lib/{crates => apps}/fabro-server/src/worker_control/mod.rs (100%) rename lib/{crates => apps}/fabro-server/src/worker_runtime.rs (100%) rename lib/{crates => apps}/fabro-server/src/worker_token.rs (100%) rename lib/{crates => apps}/fabro-server/tests/fixtures/spa/images/favicon.svg (100%) rename lib/{crates => apps}/fabro-server/tests/fixtures/spa/index.html (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/auth_sessions.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/automations.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/cli_auth_token.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/compression.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/docs.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/environments.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/events.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/install.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/install_openai_compatible.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/mcp_servers.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/mod.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/routing.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/run_files.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/runs.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/sandbox_vnc.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/sessions.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/settings.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/system.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/tcp.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/api/variables.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/event_pagination.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/helpers.rs (99%) rename lib/{crates => apps}/fabro-server/tests/it/main.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/openapi_conformance.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/pagination.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/archive.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/dry_run.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/lifecycle.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/mod.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/run_completion.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/sse.rs (100%) rename lib/{crates => apps}/fabro-server/tests/it/scenario/usage.rs (100%) rename lib/{crates => apps}/fabro-spa/Cargo.toml (100%) rename lib/{crates => apps}/fabro-spa/assets/.gitkeep (100%) rename lib/{crates => apps}/fabro-spa/src/lib.rs (100%) rename lib/{crates => components}/fabro-acp/Cargo.toml (88%) rename lib/{crates => components}/fabro-acp/src/command.rs (100%) rename lib/{crates => components}/fabro-acp/src/error.rs (100%) rename lib/{crates => components}/fabro-acp/src/lib.rs (100%) rename lib/{crates => components}/fabro-acp/src/session.rs (100%) rename lib/{crates => components}/fabro-acp/src/test_support.rs (100%) rename lib/{crates => components}/fabro-acp/src/transport.rs (100%) rename lib/{crates => components}/fabro-acp/tests/session.rs (100%) rename lib/{crates => components}/fabro-agent/Cargo.toml (76%) rename lib/{crates => components}/fabro-agent/README.md (100%) rename lib/{crates => components}/fabro-agent/src/agent_profile.rs (100%) rename lib/{crates => components}/fabro-agent/src/apply_patch.lark (100%) rename lib/{crates => components}/fabro-agent/src/apply_patch.rs (100%) rename lib/{crates => components}/fabro-agent/src/cli.rs (100%) rename lib/{crates => components}/fabro-agent/src/compaction.rs (100%) rename lib/{crates => components}/fabro-agent/src/config.rs (100%) rename lib/{crates => components}/fabro-agent/src/context_window.rs (100%) rename lib/{crates => components}/fabro-agent/src/docker_sandbox.rs (100%) rename lib/{crates => components}/fabro-agent/src/error.rs (100%) rename lib/{crates => components}/fabro-agent/src/event.rs (100%) rename lib/{crates => components}/fabro-agent/src/file_tracker.rs (100%) rename lib/{crates => components}/fabro-agent/src/history.rs (100%) rename lib/{crates => components}/fabro-agent/src/lib.rs (100%) rename lib/{crates => components}/fabro-agent/src/local_sandbox.rs (100%) rename lib/{crates => components}/fabro-agent/src/loop_detection.rs (100%) rename lib/{crates => components}/fabro-agent/src/mcp_integration.rs (100%) rename lib/{crates => components}/fabro-agent/src/memory.rs (100%) rename lib/{crates => components}/fabro-agent/src/profiles/anthropic.rs (100%) rename lib/{crates => components}/fabro-agent/src/profiles/gemini.rs (100%) rename lib/{crates => components}/fabro-agent/src/profiles/mod.rs (100%) rename lib/{crates => components}/fabro-agent/src/profiles/openai.rs (100%) rename lib/{crates => components}/fabro-agent/src/question_tools.rs (100%) rename lib/{crates => components}/fabro-agent/src/read_before_write_sandbox.rs (100%) rename lib/{crates => components}/fabro-agent/src/sandbox.rs (100%) rename lib/{crates => components}/fabro-agent/src/session.rs (100%) rename lib/{crates => components}/fabro-agent/src/skills.rs (100%) rename lib/{crates => components}/fabro-agent/src/subagent.rs (100%) rename lib/{crates => components}/fabro-agent/src/task_reminder.rs (100%) rename lib/{crates => components}/fabro-agent/src/test_support.rs (100%) rename lib/{crates => components}/fabro-agent/src/todo_runtime.rs (100%) rename lib/{crates => components}/fabro-agent/src/todo_tools.rs (100%) rename lib/{crates => components}/fabro-agent/src/tool_execution.rs (100%) rename lib/{crates => components}/fabro-agent/src/tool_permissions.rs (100%) rename lib/{crates => components}/fabro-agent/src/tool_registry.rs (100%) rename lib/{crates => components}/fabro-agent/src/tools.rs (100%) rename lib/{crates => components}/fabro-agent/src/truncation.rs (100%) rename lib/{crates => components}/fabro-agent/src/types.rs (100%) rename lib/{crates => components}/fabro-agent/tests/it/compaction.rs (100%) rename lib/{crates => components}/fabro-agent/tests/it/guardrails.rs (100%) rename lib/{crates => components}/fabro-agent/tests/it/main.rs (100%) rename lib/{crates => components}/fabro-agent/tests/it/parity_matrix.rs (100%) rename lib/{crates => components}/fabro-automation/Cargo.toml (92%) rename lib/{crates => components}/fabro-automation/migrations/2026071101_file_definitions_to_sqlite.rs (100%) rename lib/{crates => components}/fabro-automation/src/error.rs (100%) rename lib/{crates => components}/fabro-automation/src/id.rs (100%) rename lib/{crates => components}/fabro-automation/src/lib.rs (100%) rename lib/{crates => components}/fabro-automation/src/migrations.rs (100%) rename lib/{crates => components}/fabro-automation/src/model.rs (100%) rename lib/{crates => components}/fabro-automation/src/store.rs (100%) rename lib/{crates => components}/fabro-automation/tests/store.rs (100%) rename lib/{crates => components}/fabro-checkpoint/Cargo.toml (82%) rename lib/{crates => components}/fabro-checkpoint/src/author.rs (100%) rename lib/{crates => components}/fabro-checkpoint/src/branch.rs (100%) rename lib/{crates => components}/fabro-checkpoint/src/error.rs (100%) rename lib/{crates => components}/fabro-checkpoint/src/git.rs (100%) rename lib/{crates => components}/fabro-checkpoint/src/lib.rs (100%) rename lib/{crates => components}/fabro-checkpoint/src/trailer.rs (100%) rename lib/{crates => components}/fabro-dump/Cargo.toml (75%) rename lib/{crates => components}/fabro-dump/src/lib.rs (100%) rename lib/{crates => components}/fabro-environment/Cargo.toml (80%) rename lib/{crates => components}/fabro-environment/src/error.rs (100%) rename lib/{crates => components}/fabro-environment/src/id.rs (100%) rename lib/{crates => components}/fabro-environment/src/lib.rs (100%) rename lib/{crates => components}/fabro-environment/src/model.rs (100%) rename lib/{crates => components}/fabro-environment/src/store.rs (100%) rename lib/{crates => components}/fabro-environment/tests/store.rs (100%) rename lib/{crates => components}/fabro-github/Cargo.toml (86%) rename lib/{crates => components}/fabro-github/src/lib.rs (100%) rename lib/{crates => components}/fabro-github/src/testdata/rsa_private.pem (100%) rename lib/{crates => components}/fabro-github/tests/integration.rs (100%) rename lib/{crates => components}/fabro-graphviz/Cargo.toml (89%) rename lib/{crates => components}/fabro-graphviz/src/condition.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/error.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/fidelity.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/graph/mod.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/graph/types.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/lib.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/parser/ast.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/parser/grammar.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/parser/lexer.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/parser/mod.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/parser/semantic.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/render.rs (100%) rename lib/{crates => components}/fabro-graphviz/src/stylesheet.rs (100%) rename lib/{crates => components}/fabro-hooks/Cargo.toml (75%) rename lib/{crates => components}/fabro-hooks/src/bridge.rs (100%) rename lib/{crates => components}/fabro-hooks/src/config.rs (100%) rename lib/{crates => components}/fabro-hooks/src/executor.rs (100%) rename lib/{crates => components}/fabro-hooks/src/lib.rs (100%) rename lib/{crates => components}/fabro-hooks/src/runner.rs (100%) rename lib/{crates => components}/fabro-hooks/src/types.rs (100%) rename lib/{crates => components}/fabro-hooks/tests/host_command_hooks.rs (100%) rename lib/{crates => components}/fabro-install/Cargo.toml (61%) rename lib/{crates => components}/fabro-install/src/lib.rs (100%) rename lib/{crates => components}/fabro-interview/Cargo.toml (82%) rename lib/{crates => components}/fabro-interview/src/auto_approve.rs (100%) rename lib/{crates => components}/fabro-interview/src/callback.rs (100%) rename lib/{crates => components}/fabro-interview/src/console.rs (100%) rename lib/{crates => components}/fabro-interview/src/control.rs (100%) rename lib/{crates => components}/fabro-interview/src/control_protocol.rs (100%) rename lib/{crates => components}/fabro-interview/src/lib.rs (100%) rename lib/{crates => components}/fabro-interview/src/queue.rs (100%) rename lib/{crates => components}/fabro-interview/src/recording.rs (100%) rename lib/{crates => components}/fabro-interview/src/replay.rs (100%) rename lib/{crates => components}/fabro-llm/Cargo.toml (82%) rename lib/{crates => components}/fabro-llm/README.md (100%) rename lib/{crates => components}/fabro-llm/src/adapter_registry.rs (100%) rename lib/{crates => components}/fabro-llm/src/attachments.rs (100%) rename lib/{crates => components}/fabro-llm/src/client.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/anthropic_messages/decode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/anthropic_messages/encode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/anthropic_messages/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/anthropic_messages/stream.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/anthropic_messages/wire.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/bedrock_converse/decode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/bedrock_converse/encode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/bedrock_converse/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/bedrock_converse/stream.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/gemini_generate/decode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/gemini_generate/encode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/gemini_generate/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/gemini_generate/stream.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/gemini_generate/wire.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_compatible/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_compatible/request.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_compatible/response.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_compatible/stream.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_compatible/translate.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_compatible/wire.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_responses/decode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_responses/encode.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_responses/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_responses/stream.rs (100%) rename lib/{crates => components}/fabro-llm/src/codec/openai_responses/wire.rs (100%) rename lib/{crates => components}/fabro-llm/src/cost.rs (100%) rename lib/{crates => components}/fabro-llm/src/error.rs (100%) rename lib/{crates => components}/fabro-llm/src/generate.rs (100%) rename lib/{crates => components}/fabro-llm/src/lib.rs (100%) rename lib/{crates => components}/fabro-llm/src/middleware.rs (100%) rename lib/{crates => components}/fabro-llm/src/model_test.rs (100%) rename lib/{crates => components}/fabro-llm/src/provider.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/anthropic.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/bedrock/eventstream.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/bedrock/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/bedrock/sigv4.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/common.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/fabro_server.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/gemini.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/mod.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/openai.rs (100%) rename lib/{crates => components}/fabro-llm/src/providers/openai_compatible.rs (100%) rename lib/{crates => components}/fabro-llm/src/retry.rs (100%) rename lib/{crates => components}/fabro-llm/src/token_count.rs (100%) rename lib/{crates => components}/fabro-llm/src/tools.rs (100%) rename lib/{crates => components}/fabro-llm/src/transport.rs (100%) rename lib/{crates => components}/fabro-llm/src/types.rs (100%) rename lib/{crates => components}/fabro-llm/tests/integration.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/main.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/support.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/wire/anthropic.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/wire/gemini.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/wire/mod.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/wire/openai_compatible.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/wire/openai_responses.rs (100%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap (76%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap (86%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap (82%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap (82%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap (85%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap (84%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap (86%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap (81%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap (76%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap (82%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap (81%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap (71%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap (96%) create mode 100644 lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap create mode 100644 lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap (89%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap (86%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap (80%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap (87%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap (85%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap (87%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap (90%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap (88%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap (97%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap (75%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap (78%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap (78%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap (85%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap (73%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap (69%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap (75%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap (87%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap (76%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap (84%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap (78%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap (72%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap (93%) create mode 100644 lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap (74%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap (87%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap (88%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap (90%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap (92%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap (83%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap (85%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap (85%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap (90%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap (87%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap (91%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap (93%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap (96%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap (90%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap (73%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap (94%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap (84%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap (97%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap (95%) rename lib/{crates => components}/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap (94%) rename lib/{crates => components}/fabro-manifest/Cargo.toml (68%) rename lib/{crates => components}/fabro-manifest/src/lib.rs (100%) rename lib/{crates => components}/fabro-mcp-store/Cargo.toml (84%) rename lib/{crates => components}/fabro-mcp-store/src/error.rs (100%) rename lib/{crates => components}/fabro-mcp-store/src/lib.rs (100%) rename lib/{crates => components}/fabro-mcp-store/src/model.rs (100%) rename lib/{crates => components}/fabro-mcp-store/src/store.rs (100%) rename lib/{crates => components}/fabro-mcp-store/tests/store.rs (100%) rename lib/{crates => components}/fabro-mcp/Cargo.toml (87%) rename lib/{crates => components}/fabro-mcp/src/client.rs (100%) rename lib/{crates => components}/fabro-mcp/src/client_handler.rs (100%) rename lib/{crates => components}/fabro-mcp/src/config.rs (100%) rename lib/{crates => components}/fabro-mcp/src/connection_manager.rs (100%) rename lib/{crates => components}/fabro-mcp/src/http_transport.rs (100%) rename lib/{crates => components}/fabro-mcp/src/lib.rs (100%) rename lib/{crates => components}/fabro-mcp/src/sse_client.rs (100%) rename lib/{crates => components}/fabro-mcp/tests/stdio_integration.rs (100%) rename lib/{crates => components}/fabro-mcp/tests/test_mcp_server.py (100%) rename lib/{crates => components}/fabro-sandbox/Cargo.toml (89%) rename lib/{crates => components}/fabro-sandbox/src/clone_source.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/config.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/daytona/mod.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/details.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/docker.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/error.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/from_environment.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/glob_match.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/lib.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/local.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/managed_labels.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/provider.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/provider/daytona.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/provider/docker.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/read_guard.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/reconnect.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/redact.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/sandbox.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/sandbox_spec.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/terminal.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/test_support.rs (100%) rename lib/{crates => components}/fabro-sandbox/src/worktree.rs (100%) rename lib/{crates => components}/fabro-sandbox/tests/daytona_streaming_live.rs (100%) rename lib/{crates => components}/fabro-sandbox/tests/docker_streaming.rs (100%) rename lib/{crates => components}/fabro-sandbox/tests/error.rs (100%) rename lib/{crates => components}/fabro-slack/Cargo.toml (93%) rename lib/{crates => components}/fabro-slack/src/blocks.rs (100%) rename lib/{crates => components}/fabro-slack/src/client.rs (100%) rename lib/{crates => components}/fabro-slack/src/config.rs (100%) rename lib/{crates => components}/fabro-slack/src/connection.rs (100%) rename lib/{crates => components}/fabro-slack/src/dispatch.rs (100%) rename lib/{crates => components}/fabro-slack/src/interaction.rs (100%) rename lib/{crates => components}/fabro-slack/src/lib.rs (100%) rename lib/{crates => components}/fabro-slack/src/payload.rs (100%) rename lib/{crates => components}/fabro-slack/src/socket.rs (100%) rename lib/{crates => components}/fabro-slack/src/threads.rs (100%) rename lib/{crates => components}/fabro-store/Cargo.toml (77%) rename lib/{crates => components}/fabro-store/src/artifact_store.rs (100%) rename lib/{crates => components}/fabro-store/src/error.rs (100%) rename lib/{crates => components}/fabro-store/src/keyed_mutex.rs (100%) rename lib/{crates => components}/fabro-store/src/keys.rs (100%) rename lib/{crates => components}/fabro-store/src/lib.rs (100%) rename lib/{crates => components}/fabro-store/src/record/codec.rs (100%) rename lib/{crates => components}/fabro-store/src/record/mod.rs (100%) rename lib/{crates => components}/fabro-store/src/record/record_id.rs (100%) rename lib/{crates => components}/fabro-store/src/record/repository.rs (100%) rename lib/{crates => components}/fabro-store/src/record/transaction.rs (100%) rename lib/{crates => components}/fabro-store/src/run_sessions.rs (100%) rename lib/{crates => components}/fabro-store/src/run_state.rs (100%) rename lib/{crates => components}/fabro-store/src/run_summary_store.rs (100%) rename lib/{crates => components}/fabro-store/src/serializable_projection.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/auth_codes.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/auth_tokens.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/blob_store.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/mod.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/projection_cache.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/run_catalog_index.rs (100%) rename lib/{crates => components}/fabro-store/src/slate/run_store.rs (100%) rename lib/{crates => components}/fabro-store/src/test_util.rs (100%) rename lib/{crates => components}/fabro-store/src/types.rs (100%) rename lib/{crates => components}/fabro-store/tests/serializable_projection.rs (100%) rename lib/{crates => components}/fabro-tool/Cargo.toml (64%) rename lib/{crates => components}/fabro-tool/src/common.rs (100%) rename lib/{crates => components}/fabro-tool/src/create.rs (100%) rename lib/{crates => components}/fabro-tool/src/events.rs (100%) rename lib/{crates => components}/fabro-tool/src/fabro_client.rs (100%) rename lib/{crates => components}/fabro-tool/src/gather.rs (100%) rename lib/{crates => components}/fabro-tool/src/get.rs (100%) rename lib/{crates => components}/fabro-tool/src/interact.rs (100%) rename lib/{crates => components}/fabro-tool/src/lib.rs (100%) rename lib/{crates => components}/fabro-tool/src/manifest.rs (100%) rename lib/{crates => components}/fabro-tool/src/pair.rs (100%) rename lib/{crates => components}/fabro-tool/src/search.rs (100%) rename lib/{crates => components}/fabro-tracker/Cargo.toml (100%) rename lib/{crates => components}/fabro-tracker/src/fixtures/github-app-test-key.pem (100%) rename lib/{crates => components}/fabro-tracker/src/github.rs (100%) rename lib/{crates => components}/fabro-tracker/src/lib.rs (100%) rename lib/{crates => components}/fabro-tracker/src/linear.rs (100%) rename lib/{crates => components}/fabro-validate/Cargo.toml (81%) rename lib/{crates => components}/fabro-validate/src/lib.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/all_conditional_edges.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/backend_valid.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/condition_syntax.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/direction_valid.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/edge_target_exists.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/exit_no_outgoing.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/fidelity_valid.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/freeform_edge_count.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/goal_gate_has_retry.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/import_error.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/inert_attribute.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/mod.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/model_support.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/node_model_known.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/orphan_custom_outcome.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/parallel_branch.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/parallel_branch_inert_attribute.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/prompt_on_llm_nodes.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/random_selection_no_conditions.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/reachability.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/reserved_keyword_node_id.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/retry_target_exists.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/script_absolute_cd.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/selection_valid.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/start_no_incoming.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/start_node.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/stylesheet_model_known.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/stylesheet_syntax.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/terminal_node.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/test_support.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/thread_id_requires_fidelity_full.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/type_known.rs (100%) rename lib/{crates => components}/fabro-validate/src/rules/unresolved_file_ref.rs (100%) rename lib/{crates => components}/fabro-variable/Cargo.toml (82%) rename lib/{crates => components}/fabro-variable/src/lib.rs (100%) rename lib/{crates => components}/fabro-variable/tests/store.rs (100%) rename lib/{crates => components}/fabro-workflow/Cargo.toml (78%) rename lib/{crates => components}/fabro-workflow/README.md (100%) rename lib/{crates => components}/fabro-workflow/src/artifact.rs (100%) rename lib/{crates => components}/fabro-workflow/src/artifact_snapshot.rs (100%) rename lib/{crates => components}/fabro-workflow/src/artifact_upload.rs (100%) rename lib/{crates => components}/fabro-workflow/src/billing_rollup.rs (100%) rename lib/{crates => components}/fabro-workflow/src/command_log.rs (100%) rename lib/{crates => components}/fabro-workflow/src/condition.rs (100%) rename lib/{crates => components}/fabro-workflow/src/context.rs (100%) rename lib/{crates => components}/fabro-workflow/src/error.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/convert.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/emitter.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/events.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/names.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/redaction.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/sink.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/stored_fields.rs (100%) rename lib/{crates => components}/fabro-workflow/src/event/test_support.rs (100%) rename lib/{crates => components}/fabro-workflow/src/file_resolver.rs (100%) rename lib/{crates => components}/fabro-workflow/src/git.rs (100%) rename lib/{crates => components}/fabro-workflow/src/github_token_source.rs (100%) rename lib/{crates => components}/fabro-workflow/src/graph.rs (100%) rename lib/{crates => components}/fabro-workflow/src/graph/routing.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/agent.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/command.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/conditional.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/exit.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/fan_in.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/human.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/acp.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/activation_lease.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/api.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/changed_files.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/preamble.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/router.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/llm/routing.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/manager_loop.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/parallel.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/prompt.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/start.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/structured_output.rs (100%) rename lib/{crates => components}/fabro-workflow/src/handler/wait.rs (100%) rename lib/{crates => components}/fabro-workflow/src/hook_context.rs (100%) rename lib/{crates => components}/fabro-workflow/src/interview_runtime.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lib.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/artifact.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/auto_status.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/circuit_breaker.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/event.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/fidelity.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/git.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/hook.rs (100%) rename lib/{crates => components}/fabro-workflow/src/lifecycle/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/node_handler.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/archive.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/create.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/fork.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/resume.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/retry.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/rewind.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/run_store.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/source.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/start.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/timeline.rs (100%) rename lib/{crates => components}/fabro-workflow/src/operations/validate.rs (100%) rename lib/{crates => components}/fabro-workflow/src/outcome.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/execute.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/execute/tests.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/finalize.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/initialize.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/parse.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/persist.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/prompts/pr_body.md (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/pull_request.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/transform.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/types.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pipeline/validate.rs (100%) rename lib/{crates => components}/fabro-workflow/src/pull_request.rs (100%) rename lib/{crates => components}/fabro-workflow/src/records/checkpoint.rs (100%) rename lib/{crates => components}/fabro-workflow/src/records/conclusion.rs (100%) rename lib/{crates => components}/fabro-workflow/src/records/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/records/run.rs (100%) rename lib/{crates => components}/fabro-workflow/src/records/start.rs (100%) rename lib/{crates => components}/fabro-workflow/src/retry.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_control.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_dir.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_lookup.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_materialization.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_metadata.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_options.rs (100%) rename lib/{crates => components}/fabro-workflow/src/run_status.rs (100%) rename lib/{crates => components}/fabro-workflow/src/runtime_store.rs (100%) rename lib/{crates => components}/fabro-workflow/src/sandbox_git.rs (100%) rename lib/{crates => components}/fabro-workflow/src/sandbox_git_runtime.rs (100%) rename lib/{crates => components}/fabro-workflow/src/services.rs (100%) rename lib/{crates => components}/fabro-workflow/src/stage_scope.rs (100%) rename lib/{crates => components}/fabro-workflow/src/static_reference.rs (100%) rename lib/{crates => components}/fabro-workflow/src/steering_hub.rs (100%) rename lib/{crates => components}/fabro-workflow/src/test_support.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/file_inlining.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/import.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/importable_field.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/mod.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/model_resolution.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/preamble.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/stylesheet.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/stylesheet_application.rs (100%) rename lib/{crates => components}/fabro-workflow/src/transforms/variable_expansion.rs (100%) rename lib/{crates => components}/fabro-workflow/src/workflow_bundle.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/it/attractor_compat.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/it/cp_integration.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/it/daytona_integration.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/it/git_integration.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/it/integration.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/it/main.rs (100%) rename lib/{crates => components}/fabro-workflow/tests/materialize_run.rs (100%) delete mode 100644 lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap delete mode 100644 lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap delete mode 100644 lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap rename lib/{crates => foundation}/build-support/Cargo.toml (100%) rename lib/{crates => foundation}/build-support/git_metadata.rs (100%) rename lib/{crates => foundation}/fabro-api/Cargo.toml (93%) rename lib/{crates => foundation}/fabro-api/build.rs (99%) rename lib/{crates => foundation}/fabro-api/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/agent_session_activated_props_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/automation_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/billed_token_counts_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/command_termination_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/completion_message_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/cost_source_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/diff_stats_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/diff_summary_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/environment_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/event_envelope_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/git_context_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/interview_option_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/interview_question_record_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/mcp_server_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/mcp_transport_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/model_costs_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/model_features_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/model_limits_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/model_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/model_test_mode_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/pair_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/pending_interview_record_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/pre_run_push_outcome_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/principal_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/provider_id_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/provider_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/pull_request_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/question_type_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_billing_stage_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_event_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_failure_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_integrations_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_projection_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_sandbox_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/run_summary_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/sandbox_details_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/sandbox_inventory_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/sandbox_services_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/secret_metadata_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/secret_type_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/server_settings_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/session_contract_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/stage_completion_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/stage_handler_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/stage_model_usage_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/stage_outcome_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/stage_projection_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/stage_state_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/status_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/submit_answer_request_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/system_integrations_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/variable_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-api/tests/workflow_settings_round_trip.rs (100%) rename lib/{crates => foundation}/fabro-auth/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-auth/src/context.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/credential.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/credential_source.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/env_source.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/extra_headers_source.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/refresh.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/resolve.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/sql_vault_source.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/strategies/api_key.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/strategies/codex_device.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/strategies/mod.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/strategy.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/vault_ext.rs (100%) rename lib/{crates => foundation}/fabro-auth/src/vault_source.rs (100%) rename lib/{crates => foundation}/fabro-client/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-client/src/auth_store.rs (100%) rename lib/{crates => foundation}/fabro-client/src/client.rs (100%) rename lib/{crates => foundation}/fabro-client/src/credential.rs (100%) rename lib/{crates => foundation}/fabro-client/src/error.rs (100%) rename lib/{crates => foundation}/fabro-client/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-client/src/session.rs (100%) rename lib/{crates => foundation}/fabro-client/src/sse.rs (100%) rename lib/{crates => foundation}/fabro-client/src/target.rs (100%) rename lib/{crates => foundation}/fabro-config/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-config/migrations/2026050101_legacy_sandbox_to_environments.rs (100%) rename lib/{crates => foundation}/fabro-config/migrations/2026052801_settings_environments_to_server_files.rs (100%) rename lib/{crates => foundation}/fabro-config/src/bind.rs (100%) rename lib/{crates => foundation}/fabro-config/src/builders.rs (100%) rename lib/{crates => foundation}/fabro-config/src/daemon.rs (100%) rename lib/{crates => foundation}/fabro-config/src/defaults.rs (100%) rename lib/{crates => foundation}/fabro-config/src/defaults.toml (100%) rename lib/{crates => foundation}/fabro-config/src/envfile.rs (100%) rename lib/{crates => foundation}/fabro-config/src/error.rs (100%) rename lib/{crates => foundation}/fabro-config/src/home.rs (100%) rename lib/{crates => foundation}/fabro-config/src/input_overrides.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/cli.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/combine.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/environment.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/llm.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/log_filter.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/maps.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/mod.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/project.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/run.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/server.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/settings.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/splice_array.rs (100%) rename lib/{crates => foundation}/fabro-config/src/layers/workflow.rs (100%) rename lib/{crates => foundation}/fabro-config/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-config/src/load.rs (100%) rename lib/{crates => foundation}/fabro-config/src/logging.rs (100%) rename lib/{crates => foundation}/fabro-config/src/migrations.rs (100%) rename lib/{crates => foundation}/fabro-config/src/parse.rs (100%) rename lib/{crates => foundation}/fabro-config/src/project.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/cli.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/environment.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/error.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/mod.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/project.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/run.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/server.rs (100%) rename lib/{crates => foundation}/fabro-config/src/resolve/workflow.rs (100%) rename lib/{crates => foundation}/fabro-config/src/run.rs (100%) rename lib/{crates => foundation}/fabro-config/src/storage.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/combine.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/defaults.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/log_filter.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/mod.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/resolve_cli.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/resolve_project.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/resolve_root.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/resolve_run.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/resolve_server.rs (100%) rename lib/{crates => foundation}/fabro-config/src/tests/resolve_workflow.rs (100%) rename lib/{crates => foundation}/fabro-config/src/user.rs (100%) rename lib/{crates => foundation}/fabro-core/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-core/src/context.rs (100%) rename lib/{crates => foundation}/fabro-core/src/error.rs (100%) rename lib/{crates => foundation}/fabro-core/src/executor.rs (100%) rename lib/{crates => foundation}/fabro-core/src/graph.rs (100%) rename lib/{crates => foundation}/fabro-core/src/handler.rs (100%) rename lib/{crates => foundation}/fabro-core/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-core/src/lifecycle.rs (100%) rename lib/{crates => foundation}/fabro-core/src/outcome.rs (100%) rename lib/{crates => foundation}/fabro-core/src/retry.rs (100%) rename lib/{crates => foundation}/fabro-core/src/stall.rs (100%) rename lib/{crates => foundation}/fabro-core/src/state.rs (100%) rename lib/{crates => foundation}/fabro-core/src/test_fixtures.rs (100%) rename lib/{crates => foundation}/fabro-db/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-db/migrations/2026063001_variables.sql (100%) rename lib/{crates => foundation}/fabro-db/migrations/2026063002_environments.sql (100%) rename lib/{crates => foundation}/fabro-db/migrations/2026071101_secrets.sql (100%) rename lib/{crates => foundation}/fabro-db/migrations/2026071102_mcp_servers.sql (100%) rename lib/{crates => foundation}/fabro-db/migrations/2026071103_automations.sql (100%) rename lib/{crates => foundation}/fabro-db/migrations/2026071104_runs.sql (100%) rename lib/{crates => foundation}/fabro-db/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-db/tests/sqlite.rs (100%) rename lib/{crates => foundation}/fabro-dev/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/bench_tests.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/build.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/docker_build.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/docs.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/docs_cli_reference.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/docs_options_reference.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/mod.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/release.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/spa.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/commands/spa_check.rs (97%) rename lib/{crates => foundation}/fabro-dev/src/commands/spa_refresh.rs (97%) rename lib/{crates => foundation}/fabro-dev/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-dev/src/main.rs (100%) rename lib/{crates => foundation}/fabro-dev/tests/it/docker_build.rs (100%) rename lib/{crates => foundation}/fabro-dev/tests/it/docker_entrypoint.rs (100%) rename lib/{crates => foundation}/fabro-dev/tests/it/docs.rs (100%) rename lib/{crates => foundation}/fabro-dev/tests/it/main.rs (98%) rename lib/{crates => foundation}/fabro-dev/tests/it/policy.rs (93%) rename lib/{crates => foundation}/fabro-dev/tests/it/release.rs (98%) rename lib/{crates => foundation}/fabro-dev/tests/it/spa.rs (93%) rename lib/{crates => foundation}/fabro-http/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-http/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-macros/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-macros/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-macros/src/options_metadata.rs (100%) rename lib/{crates => foundation}/fabro-macros/tests/options_metadata.rs (100%) rename lib/{crates => foundation}/fabro-model/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-model/src/adapter.rs (100%) rename lib/{crates => foundation}/fabro-model/src/billing.rs (100%) rename lib/{crates => foundation}/fabro-model/src/bootstrap_catalog.rs (100%) rename lib/{crates => foundation}/fabro-model/src/catalog.rs (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/anthropic.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/bedrock-openai.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/bedrock.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/gemini.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/inception.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/kimi.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/litellm.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/minimax.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/ollama.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/openai.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/openrouter.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/poolside.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/venice.toml (100%) rename lib/{crates => foundation}/fabro-model/src/catalog/providers/zai.toml (100%) rename lib/{crates => foundation}/fabro-model/src/codec.rs (100%) rename lib/{crates => foundation}/fabro-model/src/ids.rs (100%) rename lib/{crates => foundation}/fabro-model/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-model/src/model_ref.rs (100%) rename lib/{crates => foundation}/fabro-model/src/model_test.rs (100%) rename lib/{crates => foundation}/fabro-model/src/provider.rs (100%) rename lib/{crates => foundation}/fabro-model/src/reasoning.rs (100%) rename lib/{crates => foundation}/fabro-model/src/types.rs (100%) rename lib/{crates => foundation}/fabro-oauth/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-oauth/examples/login.rs (100%) rename lib/{crates => foundation}/fabro-oauth/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-options-metadata/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-options-metadata/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-proc/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-proc/build.rs (100%) rename lib/{crates => foundation}/fabro-proc/c/capture_argv.c (100%) rename lib/{crates => foundation}/fabro-proc/src/flock.rs (100%) rename lib/{crates => foundation}/fabro-proc/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-proc/src/pre_exec.rs (100%) rename lib/{crates => foundation}/fabro-proc/src/signal.rs (100%) rename lib/{crates => foundation}/fabro-proc/src/title.rs (100%) rename lib/{crates => foundation}/fabro-redact/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-redact/build.rs (100%) rename lib/{crates => foundation}/fabro-redact/data/gitleaks.toml (100%) rename lib/{crates => foundation}/fabro-redact/src/entropy.rs (100%) rename lib/{crates => foundation}/fabro-redact/src/gitleaks.rs (100%) rename lib/{crates => foundation}/fabro-redact/src/jsonl.rs (100%) rename lib/{crates => foundation}/fabro-redact/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-redact/src/safe_url.rs (100%) rename lib/{crates => foundation}/fabro-static/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-static/src/env_vars.rs (100%) rename lib/{crates => foundation}/fabro-static/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-static/src/secret_registry.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-telemetry/src/anonymous_id.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/buffer.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/context.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/event.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/git.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/panic.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/sanitize.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/sender.rs (100%) rename lib/{crates => foundation}/fabro-telemetry/src/spawn.rs (100%) rename lib/{crates => foundation}/fabro-template/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-template/src/dependency.rs (100%) rename lib/{crates => foundation}/fabro-template/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-template/src/store.rs (100%) rename lib/{crates => foundation}/fabro-test/Cargo.toml (93%) rename lib/{crates => foundation}/fabro-test/src/http_assert.rs (100%) rename lib/{crates => foundation}/fabro-test/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-types/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-types/src/artifact.rs (100%) rename lib/{crates => foundation}/fabro-types/src/auth.rs (100%) rename lib/{crates => foundation}/fabro-types/src/billing.rs (100%) rename lib/{crates => foundation}/fabro-types/src/blob_ref.rs (100%) rename lib/{crates => foundation}/fabro-types/src/checkpoint.rs (100%) rename lib/{crates => foundation}/fabro-types/src/command_output.rs (100%) rename lib/{crates => foundation}/fabro-types/src/conclusion.rs (100%) rename lib/{crates => foundation}/fabro-types/src/dense.rs (100%) rename lib/{crates => foundation}/fabro-types/src/diff.rs (100%) rename lib/{crates => foundation}/fabro-types/src/event_envelope.rs (100%) rename lib/{crates => foundation}/fabro-types/src/failure_signature.rs (100%) rename lib/{crates => foundation}/fabro-types/src/graph.rs (100%) rename lib/{crates => foundation}/fabro-types/src/id.rs (100%) rename lib/{crates => foundation}/fabro-types/src/interview.rs (100%) rename lib/{crates => foundation}/fabro-types/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-types/src/llm_backend.rs (100%) rename lib/{crates => foundation}/fabro-types/src/manifest_path.rs (100%) rename lib/{crates => foundation}/fabro-types/src/mcp_store.rs (100%) rename lib/{crates => foundation}/fabro-types/src/outcome.rs (100%) rename lib/{crates => foundation}/fabro-types/src/pair.rs (100%) rename lib/{crates => foundation}/fabro-types/src/principal.rs (100%) rename lib/{crates => foundation}/fabro-types/src/pull_request.rs (100%) rename lib/{crates => foundation}/fabro-types/src/repository.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_blob_id.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/agent.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/infra.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/misc.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/mod.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/run.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/session.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/stage.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_event/todo.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_failure.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_id.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_projection.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_sandbox.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_summary.rs (100%) rename lib/{crates => foundation}/fabro-types/src/run_title.rs (100%) rename lib/{crates => foundation}/fabro-types/src/sandbox_details.rs (100%) rename lib/{crates => foundation}/fabro-types/src/sandbox_inventory.rs (100%) rename lib/{crates => foundation}/fabro-types/src/sandbox_provider.rs (100%) rename lib/{crates => foundation}/fabro-types/src/sandbox_services.rs (100%) rename lib/{crates => foundation}/fabro-types/src/secret.rs (100%) rename lib/{crates => foundation}/fabro-types/src/session.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/cli.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/duration.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/interp.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/mod.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/model_ref.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/project.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/public_url.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/run.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/server.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/size.rs (100%) rename lib/{crates => foundation}/fabro-types/src/settings/workflow.rs (100%) rename lib/{crates => foundation}/fabro-types/src/stage_completion.rs (100%) rename lib/{crates => foundation}/fabro-types/src/stage_handler.rs (100%) rename lib/{crates => foundation}/fabro-types/src/stage_id.rs (100%) rename lib/{crates => foundation}/fabro-types/src/start.rs (100%) rename lib/{crates => foundation}/fabro-types/src/status.rs (100%) rename lib/{crates => foundation}/fabro-types/src/steering.rs (100%) rename lib/{crates => foundation}/fabro-types/src/system_integrations.rs (100%) rename lib/{crates => foundation}/fabro-types/src/test_support.rs (100%) rename lib/{crates => foundation}/fabro-types/src/timing.rs (100%) rename lib/{crates => foundation}/fabro-types/src/todo.rs (100%) rename lib/{crates => foundation}/fabro-types/src/transcript.rs (100%) rename lib/{crates => foundation}/fabro-types/src/variable.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/run_event_serde.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/run_failure_serde.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/run_spec_methods.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/run_spec_serde.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/sandbox_inventory_serde.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/sandbox_model_serde.rs (100%) rename lib/{crates => foundation}/fabro-types/tests/stage_handler.rs (100%) rename lib/{crates => foundation}/fabro-util/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-util/src/backoff.rs (100%) rename lib/{crates => foundation}/fabro-util/src/browser.rs (100%) rename lib/{crates => foundation}/fabro-util/src/check_report.rs (100%) rename lib/{crates => foundation}/fabro-util/src/dev_token.rs (100%) rename lib/{crates => foundation}/fabro-util/src/env.rs (100%) rename lib/{crates => foundation}/fabro-util/src/error.rs (100%) rename lib/{crates => foundation}/fabro-util/src/exit.rs (100%) rename lib/{crates => foundation}/fabro-util/src/home.rs (100%) rename lib/{crates => foundation}/fabro-util/src/json.rs (100%) rename lib/{crates => foundation}/fabro-util/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-util/src/path.rs (100%) rename lib/{crates => foundation}/fabro-util/src/printer.rs (100%) rename lib/{crates => foundation}/fabro-util/src/run_log.rs (100%) rename lib/{crates => foundation}/fabro-util/src/session_secret.rs (100%) rename lib/{crates => foundation}/fabro-util/src/shell.rs (100%) rename lib/{crates => foundation}/fabro-util/src/terminal.rs (100%) rename lib/{crates => foundation}/fabro-util/src/text.rs (100%) rename lib/{crates => foundation}/fabro-util/src/time.rs (100%) rename lib/{crates => foundation}/fabro-util/src/version.rs (100%) rename lib/{crates => foundation}/fabro-util/src/warnings.rs (100%) rename lib/{crates => foundation}/fabro-util/tests/dev_token.rs (100%) rename lib/{crates => foundation}/fabro-util/tests/error_chain.rs (100%) rename lib/{crates => foundation}/fabro-vault/Cargo.toml (100%) rename lib/{crates => foundation}/fabro-vault/src/lib.rs (100%) rename lib/{crates => foundation}/fabro-vault/src/store.rs (100%) rename lib/{crates => foundation}/fabro-vault/tests/store.rs (100%) diff --git a/.ai/prompts/code-review-deep-1.md b/.ai/prompts/code-review-deep-1.md index 1d837cfe7..c15a499b6 100644 --- a/.ai/prompts/code-review-deep-1.md +++ b/.ai/prompts/code-review-deep-1.md @@ -17,7 +17,7 @@ Output a report with all the bugs using this format: title of bug brief description of bug - lib/crates/fabro-cli/src/commands/resume.rs + lib/apps/fabro-cli/src/commands/resume.rs 115 115 diff --git a/.ai/prompts/code-review-deep-2.md b/.ai/prompts/code-review-deep-2.md index 6bc81586b..aa7000436 100644 --- a/.ai/prompts/code-review-deep-2.md +++ b/.ai/prompts/code-review-deep-2.md @@ -19,7 +19,7 @@ Output a report with all the bugs using this format: important OR nit yes OR no - lib/crates/fabro-cli/src/commands/resume.rs + lib/apps/fabro-cli/src/commands/resume.rs 115 115 @@ -51,7 +51,7 @@ Here is a real-world example: important no - lib/crates/fabro-cli/src/commands/resume.rs + lib/apps/fabro-cli/src/commands/resume.rs 208 208 diff --git a/.claude/skills/docs/references/mapping.md b/.claude/skills/docs/references/mapping.md index 0a7c9e329..0d6a0d3cf 100644 --- a/.claude/skills/docs/references/mapping.md +++ b/.claude/skills/docs/references/mapping.md @@ -4,32 +4,32 @@ Which source files affect which doc pages. Use this as guidance — also apply j | Source | Docs | |--------|------| -| `lib/crates/fabro-cli/src/main.rs`, `lib/crates/fabro-workflow/src/cli/mod.rs`, `lib/crates/fabro-workflow/src/cli/run.rs` | `docs/public/reference/cli.mdx` | -| `lib/crates/fabro-cli/src/cli_config.rs` | `docs/public/reference/cli-configuration.mdx` | -| `lib/crates/fabro-llm/src/cli.rs` | `docs/public/reference/cli.mdx` | -| `lib/crates/fabro-api/src/serve.rs` | `docs/public/reference/cli.mdx` | -| `lib/crates/fabro-workflow/src/parser/*.rs` | `docs/public/reference/dot-language.mdx` | -| `lib/crates/fabro-workflow/src/condition.rs` | `docs/public/reference/dot-language.mdx` | -| `lib/crates/fabro-workflow/src/cli/validate.rs` | `docs/public/reference/dot-language.mdx` | -| `lib/crates/fabro-workflow/src/stylesheet.rs` | `docs/public/workflows/stylesheets.mdx` | -| `lib/crates/fabro-workflow/src/transform.rs` | `docs/public/workflows/variables.mdx` | -| `lib/crates/fabro-workflow/src/handler/*.rs` | `docs/public/workflows/stages-and-nodes.mdx`, `docs/public/reference/dot-language.mdx` | -| `lib/crates/fabro-workflow/src/handler/human.rs` | `docs/public/workflows/human-in-the-loop.mdx` | -| `lib/crates/fabro-workflow/src/cli/run_config.rs` | `docs/public/execution/run-configuration.mdx` | -| `lib/crates/fabro-workflow/src/engine.rs` | `docs/public/core-concepts/how-arc-works.mdx` | -| `lib/crates/fabro-workflow/src/context/*.rs` | `docs/public/execution/context.mdx` | -| `lib/crates/fabro-workflow/src/checkpoint.rs` | `docs/public/execution/checkpoints.mdx` | -| `lib/crates/fabro-workflow/src/retro.rs`, `lib/crates/fabro-workflow/src/retro_agent.rs` | `docs/public/execution/retros.mdx` | -| `lib/crates/fabro-workflow/src/interviewer/*.rs` | `docs/public/execution/interviews.mdx` | -| `lib/crates/fabro-workflow/src/hook/*.rs` | `docs/public/agents/hooks.mdx` | -| `lib/crates/fabro-workflow/src/daytona_sandbox.rs` | `docs/public/integrations/daytona.mdx`, `docs/public/execution/environments.mdx` | -| `lib/crates/fabro-agent/src/tools.rs`, `lib/crates/fabro-agent/src/tool_registry.rs`, `lib/crates/fabro-agent/src/tool_execution.rs` | `docs/public/agents/tools.mdx` | -| `lib/crates/fabro-agent/src/v4a_patch.rs` | `docs/public/agents/tools.mdx` | -| `lib/crates/fabro-agent/src/cli.rs` | `docs/public/agents/permissions.mdx` | -| `lib/crates/fabro-agent/src/subagent.rs` | `docs/public/agents/subagents.mdx` | -| `lib/crates/fabro-agent/src/mcp_integration.rs` | `docs/public/agents/mcp.mdx` | -| `lib/crates/fabro-llm/src/catalog.rs`, `lib/crates/fabro-llm/src/providers/*.rs` | `docs/public/core-concepts/models.mdx` | -| `lib/crates/fabro-slack/src/*.rs` | `docs/public/integrations/slack.mdx` | -| `lib/crates/fabro-mcp/src/*.rs` | `docs/public/agents/mcp.mdx` | -| `lib/crates/fabro-api/src/*.rs` | `docs/public/api-reference/overview.mdx`, `docs/public/api-reference/demo-mode.mdx` | -| `lib/crates/fabro-api/src/server_config.rs` | `docs/public/administration/server-configuration.mdx` | +| `lib/apps/fabro-cli/src/main.rs`, `lib/components/fabro-workflow/src/cli/mod.rs`, `lib/components/fabro-workflow/src/cli/run.rs` | `docs/public/reference/cli.mdx` | +| `lib/apps/fabro-cli/src/cli_config.rs` | `docs/public/reference/cli-configuration.mdx` | +| `lib/components/fabro-llm/src/cli.rs` | `docs/public/reference/cli.mdx` | +| `lib/foundation/fabro-api/src/serve.rs` | `docs/public/reference/cli.mdx` | +| `lib/components/fabro-workflow/src/parser/*.rs` | `docs/public/reference/dot-language.mdx` | +| `lib/components/fabro-workflow/src/condition.rs` | `docs/public/reference/dot-language.mdx` | +| `lib/components/fabro-workflow/src/cli/validate.rs` | `docs/public/reference/dot-language.mdx` | +| `lib/components/fabro-workflow/src/stylesheet.rs` | `docs/public/workflows/stylesheets.mdx` | +| `lib/components/fabro-workflow/src/transform.rs` | `docs/public/workflows/variables.mdx` | +| `lib/components/fabro-workflow/src/handler/*.rs` | `docs/public/workflows/stages-and-nodes.mdx`, `docs/public/reference/dot-language.mdx` | +| `lib/components/fabro-workflow/src/handler/human.rs` | `docs/public/workflows/human-in-the-loop.mdx` | +| `lib/components/fabro-workflow/src/cli/run_config.rs` | `docs/public/execution/run-configuration.mdx` | +| `lib/components/fabro-workflow/src/engine.rs` | `docs/public/core-concepts/how-arc-works.mdx` | +| `lib/components/fabro-workflow/src/context/*.rs` | `docs/public/execution/context.mdx` | +| `lib/components/fabro-workflow/src/checkpoint.rs` | `docs/public/execution/checkpoints.mdx` | +| `lib/components/fabro-workflow/src/retro.rs`, `lib/components/fabro-workflow/src/retro_agent.rs` | `docs/public/execution/retros.mdx` | +| `lib/components/fabro-workflow/src/interviewer/*.rs` | `docs/public/execution/interviews.mdx` | +| `lib/components/fabro-workflow/src/hook/*.rs` | `docs/public/agents/hooks.mdx` | +| `lib/components/fabro-workflow/src/daytona_sandbox.rs` | `docs/public/integrations/daytona.mdx`, `docs/public/execution/environments.mdx` | +| `lib/components/fabro-agent/src/tools.rs`, `lib/components/fabro-agent/src/tool_registry.rs`, `lib/components/fabro-agent/src/tool_execution.rs` | `docs/public/agents/tools.mdx` | +| `lib/components/fabro-agent/src/v4a_patch.rs` | `docs/public/agents/tools.mdx` | +| `lib/components/fabro-agent/src/cli.rs` | `docs/public/agents/permissions.mdx` | +| `lib/components/fabro-agent/src/subagent.rs` | `docs/public/agents/subagents.mdx` | +| `lib/components/fabro-agent/src/mcp_integration.rs` | `docs/public/agents/mcp.mdx` | +| `lib/components/fabro-llm/src/catalog.rs`, `lib/components/fabro-llm/src/providers/*.rs` | `docs/public/core-concepts/models.mdx` | +| `lib/components/fabro-slack/src/*.rs` | `docs/public/integrations/slack.mdx` | +| `lib/components/fabro-mcp/src/*.rs` | `docs/public/agents/mcp.mdx` | +| `lib/foundation/fabro-api/src/*.rs` | `docs/public/api-reference/overview.mdx`, `docs/public/api-reference/demo-mode.mdx` | +| `lib/foundation/fabro-api/src/server_config.rs` | `docs/public/administration/server-configuration.mdx` | diff --git a/.gitattributes b/.gitattributes index 068cf7f02..96454cdd1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,2 @@ -lib/crates/fabro-spa/assets/** linguist-generated=true -diff +lib/apps/fabro-spa/assets/** linguist-generated=true -diff lib/packages/fabro-api-client/src/** linguist-generated=true diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 1580d81df..12ba1b9cc 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -4,7 +4,9 @@ on: push: branches: [main] paths: - - "lib/crates/**" + - "lib/apps/**" + - "lib/components/**" + - "lib/foundation/**" - "test/**" - "Cargo.toml" - "Cargo.lock" @@ -18,7 +20,9 @@ on: pull_request: branches: [main] paths: - - "lib/crates/**" + - "lib/apps/**" + - "lib/components/**" + - "lib/foundation/**" - "test/**" - "Cargo.toml" - "Cargo.lock" @@ -76,7 +80,7 @@ jobs: - name: Verify legacy auth identity removal run: | if git grep -nE 'AuthMode::Disabled|RunAuthMethod|RunSubjectProvenance|\bActorRef\b|\bActorKind\b|AuthenticatedSubject|AuthenticatedService|AuthorizeRunScoped|AuthorizeRunBlob|AuthorizeStageArtifact|AuthorizeCommandLog|auth_method\s*==\s*"disabled"' \ - -- lib/crates apps lib/packages docs/public/api-reference/fabro-api.yaml; then + -- lib/apps lib/components lib/foundation apps lib/packages docs/public/api-reference/fabro-api.yaml; then echo "::error::Legacy auth identities remain in the repository" exit 1 else diff --git a/.github/workflows/typescript.yml b/.github/workflows/typescript.yml index e2f63a047..064c38c3d 100644 --- a/.github/workflows/typescript.yml +++ b/.github/workflows/typescript.yml @@ -5,7 +5,7 @@ on: branches: [main] paths: - "apps/**" - - "lib/crates/fabro-spa/**" + - "lib/apps/fabro-spa/**" - "lib/packages/**" - "package.json" - "bun.lock" @@ -17,7 +17,7 @@ on: branches: [main] paths: - "apps/**" - - "lib/crates/fabro-spa/**" + - "lib/apps/fabro-spa/**" - "lib/packages/**" - "package.json" - "bun.lock" diff --git a/.gitignore b/.gitignore index 5c49b62a9..d9b235fc2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,8 @@ target node_modules apps/fabro-web/dist apps/fabro-web/.dist-builds/ -lib/crates/fabro-spa/assets/* -!lib/crates/fabro-spa/assets/.gitkeep +lib/apps/fabro-spa/assets/* +!lib/apps/fabro-spa/assets/.gitkeep tmp evals/swe-bench/repos/ evals/swe-bench/results/ diff --git a/AGENTS.md b/AGENTS.md index d77efe095..bdc9ab53f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,7 +56,7 @@ The OpenAPI spec at `docs/public/api-reference/fabro-api.yaml` is the source of 1. Edit `docs/public/api-reference/fabro-api.yaml` 2. `cargo build -p fabro-api` — build.rs regenerates Rust types and client via progenitor -3. Write/update handler in `lib/crates/fabro-server/src/server.rs`, add route to `build_router()` +3. Write/update handler in `lib/apps/fabro-server/src/server.rs`, add route to `build_router()` 4. `cargo nextest run -p fabro-server` — conformance test catches spec/router drift 5. `cd lib/packages/fabro-api-client && bun run generate` — regenerates TypeScript Axios client @@ -64,7 +64,7 @@ The OpenAPI spec at `docs/public/api-reference/fabro-api.yaml` is the source of - Treat OpenAPI as the source of truth for the wire contract, not as the automatic owner of Rust types. - Before adding or keeping a generated schema type, search the workspace for an existing hand-written Rust type with the same product meaning. -- If the schema and an existing Rust type have the same semantics and serde shape, reuse the existing type via `lib/crates/fabro-api/build.rs` `with_replacement(...)` instead of generating a parallel API type. +- If the schema and an existing Rust type have the same semantics and serde shape, reuse the existing type via `lib/foundation/fabro-api/build.rs` `with_replacement(...)` instead of generating a parallel API type. - If two types are close but not identical, prefer proposing changes that align them into one canonical type rather than accepting small drift. It is usually better to iterate the API now than to create permanently split Rust/API types. - Keep a separate API DTO only when the API is intentionally a projection, summary, or presentation-specific view of internal state. In that case, give it a distinct API-facing name instead of reusing the internal concept name. - Treat `ApiFoo` aliases and `foo_to_api` / `foo_from_api` adapters as a smell unless they represent a real semantic boundary. They should not exist only to bridge accidental duplicate types. @@ -107,7 +107,7 @@ Before merging changes that add or move shared test helpers, verify: Fabro is an AI-powered workflow orchestration platform. Workflows are defined as Graphviz graphs, where each node is a stage (agent, prompt, command, conditional, human, parallel, etc.) executed by the workflow engine. -### Rust crates (`lib/crates/`) +### Rust crates (`lib/apps/`, `lib/components/`, and `lib/foundation/`) - **fabro-cli** — CLI entry point. Commands: `run`, `exec`, `serve`, `validate`, `parse`, `cp`, `model`, `doctor`, `install`, `ps`, `system prune` - **fabro-workflow** — Core workflow engine. Parses Graphviz graphs, runs stages, manages checkpoints/resume, hooks, and human-in-the-loop interactions - **fabro-agent** — AI coding agent with tool use (Bash, Read, Write, Edit, Glob, Grep, WebFetch). `Sandbox` trait abstracts execution environments diff --git a/Cargo.toml b/Cargo.toml index 6cdec975b..e9f63c9d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,12 @@ [workspace] -members = ["lib/crates/*", "test/twin/openai", "test/twin/github"] -default-members = ["lib/crates/fabro-cli"] +members = [ + "lib/apps/*", + "lib/components/*", + "lib/foundation/*", + "test/twin/openai", + "test/twin/github", +] +default-members = ["lib/apps/fabro-cli"] resolver = "2" [workspace.package] @@ -84,7 +90,7 @@ hmac = "0.12" sha2 = "0.10" hex = "0.4" insta = "1" -fabro-test = { path = "lib/crates/fabro-test" } +fabro-test = { path = "lib/foundation/fabro-test" } twin-openai = { path = "test/twin/openai" } twin-github = { path = "test/twin/github" } tokio-tungstenite = { version = "0.26", features = ["rustls-tls-webpki-roots"] } @@ -100,11 +106,11 @@ rust-embed = "8" percent-encoding = "2" minijinja = "=2.19.0" miette = { version = "7.6", features = ["fancy"] } -fabro-http = { path = "lib/crates/fabro-http" } -fabro-environment = { path = "lib/crates/fabro-environment" } -fabro-options-metadata = { path = "lib/crates/fabro-options-metadata" } -fabro-redact = { path = "lib/crates/fabro-redact" } -fabro-static = { path = "lib/crates/fabro-static" } +fabro-http = { path = "lib/foundation/fabro-http" } +fabro-environment = { path = "lib/components/fabro-environment" } +fabro-options-metadata = { path = "lib/foundation/fabro-options-metadata" } +fabro-redact = { path = "lib/foundation/fabro-redact" } +fabro-static = { path = "lib/foundation/fabro-static" } graphviz-sys = { git = "https://github.com/fabro-sh/graphviz-sys" } ref-cast = "1" strum = { version = "0.28", features = ["derive"] } diff --git a/apps/fabro-web/app/routes/run-overview.tsx b/apps/fabro-web/app/routes/run-overview.tsx index 25262b748..0150d19ea 100644 --- a/apps/fabro-web/app/routes/run-overview.tsx +++ b/apps/fabro-web/app/routes/run-overview.tsx @@ -23,7 +23,7 @@ export const handle = { wide: true, fullHeight: true }; type Direction = "LR" | "TB"; -// Mirrors fabro-graphviz's RANKDIR_RE (lib/crates/fabro-graphviz/src/render.rs) — +// Mirrors fabro-graphviz's RANKDIR_RE (lib/components/fabro-graphviz/src/render.rs) — // keep the accepted `rankdir=` syntax in sync with that regex. const RANKDIR_RE = /rankdir\s*=\s*(\w+)/; diff --git a/docs/internal/cli-workflow-coupling-audit.md b/docs/internal/cli-workflow-coupling-audit.md index 7fdf953ba..198e658f3 100644 --- a/docs/internal/cli-workflow-coupling-audit.md +++ b/docs/internal/cli-workflow-coupling-audit.md @@ -2,7 +2,7 @@ ## Scope -- Production imports under `lib/crates/fabro-cli/src/**` that still reference `fabro_workflow::*` after the server-owned selector/export refactor. +- Production imports under `lib/apps/fabro-cli/src/**` that still reference `fabro_workflow::*` after the server-owned selector/export refactor. - Test-only imports are listed separately so the remaining architectural debt is explicit. ## Completed In This Change @@ -16,30 +16,30 @@ | Path | Direct dependency | Why it still exists | Required remediation track | | --- | --- | --- | --- | -| `lib/crates/fabro-cli/src/commands/pr/create.rs` | `StageOutcome`, `pull_request::maybe_open_pull_request` | CLI still reconstructs store state and runs PR creation logic from the workflow pipeline directly. | Replace with a server API, or extract PR orchestration into a non-engine shared service crate plus API. | -| `lib/crates/fabro-cli/src/commands/run/runner.rs` | `artifact_snapshot::CapturedArtifactInfo`, `artifact_upload::{ArtifactSink, StageArtifactUploader}`, `event::{Emitter, RunEventSink}`, `operations::{self, StartServices}`, `run_control::RunControlState`, `runtime_store::{RunStoreBackend, RunStoreHandle}` | Hidden worker subprocess path still lives inside the CLI crate and embeds the workflow engine directly. | Re-home worker/runtime code outside the user CLI surface, ideally into a dedicated worker crate or binary. | -| `lib/crates/fabro-cli/src/manifest_builder.rs` | `git::{GitSyncStatus, head_sha, sync_status}` | Manifest submission still relies on git helper logic that happens to live in `fabro_workflow`. | Extract git-sync inspection helpers into a non-workflow shared crate/module. | -| `lib/crates/fabro-cli/src/server_client.rs` | `artifact_snapshot::CapturedArtifactInfo` | The upload client reuses a workflow-owned artifact snapshot DTO. | Extract shared artifact snapshot DTOs into `fabro-store`, `fabro-types`, or a dedicated shared crate. | -| `lib/crates/fabro-cli/src/commands/runs/inspect.rs` | `run_status::RunStatus` | CLI output types still depend on engine-owned run status enums. | Extract shared status types into `fabro-types` or switch to API-generated/public store types. | -| `lib/crates/fabro-cli/src/commands/runs/list.rs` | `run_status::RunStatus` | List rendering still depends on engine-owned run status enums. | Extract shared status types into `fabro-types` or switch to API-generated/public store types. | -| `lib/crates/fabro-cli/src/commands/run/attach.rs` | `StageOutcome`, `run_status::RunStatus` | Attach/replay logic still formats engine-owned terminal status types directly. | Extract shared run/conclusion status types into `fabro-types`. | -| `lib/crates/fabro-cli/src/commands/run/output.rs` | `StageOutcome`, `records::Conclusion` | Human-readable completion output still consumes workflow-owned conclusion/status records. | Extract shared conclusion/status DTOs into `fabro-types` or `fabro-store`. | -| `lib/crates/fabro-cli/src/commands/run/wait.rs` | `records::Conclusion`, `run_status::RunStatus` | Wait output still depends on workflow-owned status/conclusion records. | Extract shared conclusion/status DTOs into `fabro-types` or `fabro-store`. | -| `lib/crates/fabro-cli/src/commands/run/run_progress/stage_display.rs` | `StageOutcome`, `format_cost` | Progress UI still depends on shared stage outcome and workflow-owned cost-formatting helper code. | Move formatting helpers into `fabro-util`. | -| `lib/crates/fabro-cli/src/commands/run/run_progress/info_display.rs` | `event::RunNoticeLevel` | Progress UI still formats workflow-owned notice levels directly. | Extract shared notice/event enums into `fabro-types`. | -| `lib/crates/fabro-cli/src/commands/run/run_progress/event.rs` | `event::RunNoticeLevel` | Progress event translation still depends on workflow-owned notice levels. | Extract shared notice/event enums into `fabro-types`. | +| `lib/apps/fabro-cli/src/commands/pr/create.rs` | `StageOutcome`, `pull_request::maybe_open_pull_request` | CLI still reconstructs store state and runs PR creation logic from the workflow pipeline directly. | Replace with a server API, or extract PR orchestration into a non-engine shared service crate plus API. | +| `lib/apps/fabro-cli/src/commands/run/runner.rs` | `artifact_snapshot::CapturedArtifactInfo`, `artifact_upload::{ArtifactSink, StageArtifactUploader}`, `event::{Emitter, RunEventSink}`, `operations::{self, StartServices}`, `run_control::RunControlState`, `runtime_store::{RunStoreBackend, RunStoreHandle}` | Hidden worker subprocess path still lives inside the CLI crate and embeds the workflow engine directly. | Re-home worker/runtime code outside the user CLI surface, ideally into a dedicated worker crate or binary. | +| `lib/apps/fabro-cli/src/manifest_builder.rs` | `git::{GitSyncStatus, head_sha, sync_status}` | Manifest submission still relies on git helper logic that happens to live in `fabro_workflow`. | Extract git-sync inspection helpers into a non-workflow shared crate/module. | +| `lib/apps/fabro-cli/src/server_client.rs` | `artifact_snapshot::CapturedArtifactInfo` | The upload client reuses a workflow-owned artifact snapshot DTO. | Extract shared artifact snapshot DTOs into `fabro-store`, `fabro-types`, or a dedicated shared crate. | +| `lib/apps/fabro-cli/src/commands/runs/inspect.rs` | `run_status::RunStatus` | CLI output types still depend on engine-owned run status enums. | Extract shared status types into `fabro-types` or switch to API-generated/public store types. | +| `lib/apps/fabro-cli/src/commands/runs/list.rs` | `run_status::RunStatus` | List rendering still depends on engine-owned run status enums. | Extract shared status types into `fabro-types` or switch to API-generated/public store types. | +| `lib/apps/fabro-cli/src/commands/run/attach.rs` | `StageOutcome`, `run_status::RunStatus` | Attach/replay logic still formats engine-owned terminal status types directly. | Extract shared run/conclusion status types into `fabro-types`. | +| `lib/apps/fabro-cli/src/commands/run/output.rs` | `StageOutcome`, `records::Conclusion` | Human-readable completion output still consumes workflow-owned conclusion/status records. | Extract shared conclusion/status DTOs into `fabro-types` or `fabro-store`. | +| `lib/apps/fabro-cli/src/commands/run/wait.rs` | `records::Conclusion`, `run_status::RunStatus` | Wait output still depends on workflow-owned status/conclusion records. | Extract shared conclusion/status DTOs into `fabro-types` or `fabro-store`. | +| `lib/apps/fabro-cli/src/commands/run/run_progress/stage_display.rs` | `StageOutcome`, `format_cost` | Progress UI still depends on shared stage outcome and workflow-owned cost-formatting helper code. | Move formatting helpers into `fabro-util`. | +| `lib/apps/fabro-cli/src/commands/run/run_progress/info_display.rs` | `event::RunNoticeLevel` | Progress UI still formats workflow-owned notice levels directly. | Extract shared notice/event enums into `fabro-types`. | +| `lib/apps/fabro-cli/src/commands/run/run_progress/event.rs` | `event::RunNoticeLevel` | Progress event translation still depends on workflow-owned notice levels. | Extract shared notice/event enums into `fabro-types`. | ## Test-Only Couplings | Path | Direct dependency | Why it still exists | Suggested handling | | --- | --- | --- | --- | -| `lib/crates/fabro-cli/src/commands/dump.rs` test module | `event::{Event, append_event}` | Unit tests synthesize workflow events directly. | Low priority; keep until a lighter-weight event fixture helper exists. | -| `lib/crates/fabro-cli/src/commands/run/wait.rs` test module | `StageOutcome`, `records::Conclusion`, `run_status::RunStatusRecord` | Output tests construct workflow-owned records directly. | Replace with shared fixture builders once conclusion DTOs move out. | -| `lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs` test module | `event::{Event, RunNoticeLevel, to_run_event, to_run_event_at}`, `outcome::billed_model_usage_from_llm` | Progress tests build engine events directly. | Replace with shared event fixture helpers after event DTO extraction. | -| `lib/crates/fabro-cli/src/commands/run/run_progress/event.rs` test module | `event::{Event, to_run_event}` | Event rendering tests depend on engine event constructors. | Replace with shared event fixture helpers after event DTO extraction. | -| `lib/crates/fabro-cli/src/commands/run/runner.rs` test module | `artifact_upload::StageArtifactUploader` | Worker tests still reach into workflow upload internals. | Keep with worker re-home work; not worth separating first. | -| `lib/crates/fabro-cli/tests/it/workflow/real_cli.rs` | `context::Context`, `event::Emitter`, `handler::agent::{CodergenBackend, CodergenResult}`, `handler::llm::cli::AgentCliBackend` | Integration test exercises the real workflow engine directly through CLI harnesses. | Accept as engine integration coverage or move under workflow-owned test support later. | -| `lib/crates/fabro-cli/tests/it/scenario/recovery.rs` | `operations::{RunTimeline, build_timeline}` | Scenario test inspects rewind timeline internals directly. | Replace after server-owned rewind/timeline APIs exist. | +| `lib/apps/fabro-cli/src/commands/dump.rs` test module | `event::{Event, append_event}` | Unit tests synthesize workflow events directly. | Low priority; keep until a lighter-weight event fixture helper exists. | +| `lib/apps/fabro-cli/src/commands/run/wait.rs` test module | `StageOutcome`, `records::Conclusion`, `run_status::RunStatusRecord` | Output tests construct workflow-owned records directly. | Replace with shared fixture builders once conclusion DTOs move out. | +| `lib/apps/fabro-cli/src/commands/run/run_progress/mod.rs` test module | `event::{Event, RunNoticeLevel, to_run_event, to_run_event_at}`, `outcome::billed_model_usage_from_llm` | Progress tests build engine events directly. | Replace with shared event fixture helpers after event DTO extraction. | +| `lib/apps/fabro-cli/src/commands/run/run_progress/event.rs` test module | `event::{Event, to_run_event}` | Event rendering tests depend on engine event constructors. | Replace with shared event fixture helpers after event DTO extraction. | +| `lib/apps/fabro-cli/src/commands/run/runner.rs` test module | `artifact_upload::StageArtifactUploader` | Worker tests still reach into workflow upload internals. | Keep with worker re-home work; not worth separating first. | +| `lib/apps/fabro-cli/tests/it/workflow/real_cli.rs` | `context::Context`, `event::Emitter`, `handler::agent::{CodergenBackend, CodergenResult}`, `handler::llm::cli::AgentCliBackend` | Integration test exercises the real workflow engine directly through CLI harnesses. | Accept as engine integration coverage or move under workflow-owned test support later. | +| `lib/apps/fabro-cli/tests/it/scenario/recovery.rs` | `operations::{RunTimeline, build_timeline}` | Scenario test inspects rewind timeline internals directly. | Replace after server-owned rewind/timeline APIs exist. | ## Follow-Up Order diff --git a/docs/internal/event-schema-competitive-analysis.md b/docs/internal/event-schema-competitive-analysis.md index 9763fdf30..60a1c02ab 100644 --- a/docs/internal/event-schema-competitive-analysis.md +++ b/docs/internal/event-schema-competitive-analysis.md @@ -48,9 +48,9 @@ That envelope is stronger than most comparator systems. It gives Fabro stable to Relevant current Fabro sources: - `docs-internal/events-strategy.md` -- `lib/crates/fabro-workflow/src/event.rs` -- `lib/crates/fabro-types/src/run_event/mod.rs` -- `lib/crates/fabro-agent/src/types.rs` +- `lib/components/fabro-workflow/src/event.rs` +- `lib/foundation/fabro-types/src/run_event/mod.rs` +- `lib/components/fabro-agent/src/types.rs` ## Comparison Matrix diff --git a/docs/internal/fabro-event-schema-v2-concrete-shape.md b/docs/internal/fabro-event-schema-v2-concrete-shape.md index 4d8541b90..77f4fe5da 100644 --- a/docs/internal/fabro-event-schema-v2-concrete-shape.md +++ b/docs/internal/fabro-event-schema-v2-concrete-shape.md @@ -269,21 +269,21 @@ The durable model remains simple: replay ordered events, no duplicate truth laye An engineer implementing this proposal should make only these structural changes unless a later section explicitly says otherwise. -1. Update [`RunEvent`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/mod.rs) to add: +1. Update [`RunEvent`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/mod.rs) to add: - `stage_id` - `parallel_group_id` - `parallel_branch_id` - `tool_call_id` - `actor` -2. Update `RunEvent::to_value()` and `RunEvent` parsing in [`run_event/mod.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/mod.rs) so the new envelope fields serialize and deserialize. -3. Extend `StoredEventFields` and `stored_event_fields()` in [`event.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-workflow/src/event.rs) to populate: +2. Update `RunEvent::to_value()` and `RunEvent` parsing in [`run_event/mod.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/mod.rs) so the new envelope fields serialize and deserialize. +3. Extend `StoredEventFields` and `stored_event_fields()` in [`event.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/components/fabro-workflow/src/event.rs) to populate: - `stage_id` - `parallel_group_id` - `parallel_branch_id` - `tool_call_id` on tool-lifecycle events - `actor` when there is a clear primary actor These values should come from the emitter's current execution context for stage and parallel scope, and from event-specific payloads for `tool_call_id`. -4. Leave [`EventEnvelope`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-store/src/types.rs) structurally unchanged: +4. Leave [`EventEnvelope`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/components/fabro-store/src/types.rs) structurally unchanged: - `seq: u32` - `payload: EventPayload` 5. Update API/SSE envelope serialization so wire JSON is flattened: @@ -304,11 +304,11 @@ An engineer implementing this proposal should make only these structural changes V2 should keep the current hand-coded domain split for prop structs: -- run props in [`run.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/run.rs) -- stage and checkpoint props in [`stage.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/stage.rs) -- agent props in [`agent.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/agent.rs) -- infra/setup props in [`infra.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/infra.rs) -- parallel/interview/git/misc props in [`misc.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/crates/fabro-types/src/run_event/misc.rs) +- run props in [`run.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/run.rs) +- stage and checkpoint props in [`stage.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/stage.rs) +- agent props in [`agent.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/agent.rs) +- infra/setup props in [`infra.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/infra.rs) +- parallel/interview/git/misc props in [`misc.rs`](/Users/bhelmkamp/p/fabro-sh/fabro/lib/foundation/fabro-types/src/run_event/misc.rs) That split is part of the design quality. V2 should keep adding hand-coded prop structs, not collapse everything into generic maps. diff --git a/docs/internal/mcp-server-qa-test-plan.md b/docs/internal/mcp-server-qa-test-plan.md index de2fcfc75..c5d7b8e74 100644 --- a/docs/internal/mcp-server-qa-test-plan.md +++ b/docs/internal/mcp-server-qa-test-plan.md @@ -1,6 +1,6 @@ # Fabro MCP Server — QA Test Plan -One-time manual QA pass for the 5 tools exposed by `fabro-mcp-server`. Source of truth: `lib/crates/fabro-mcp-server/src/run_tools/`. +One-time manual QA pass for the 5 tools exposed by `fabro-mcp-server`. Source of truth: `lib/apps/fabro-mcp-server/src/run_tools/`. This plan is **not** a template for adding automated test coverage — it exists to drive a single hands-on sweep against a real running server. Tick boxes as scenarios pass; add notes inline for failures or surprising behavior. Open bugs/PRs for issues found; do not port these scenarios into the Rust test suite. diff --git a/docs/internal/migrations-strategy.md b/docs/internal/migrations-strategy.md index 1aa73370f..318463a58 100644 --- a/docs/internal/migrations-strategy.md +++ b/docs/internal/migrations-strategy.md @@ -9,7 +9,7 @@ Migrations are product-facing compatibility code. Treat them like startup and st Each crate owns the migrations for the data it owns. ```text -lib/crates// +lib/// migrations/ YYYYMMDDSS_descriptive_name.rs src/migrations.rs diff --git a/docs/internal/plan-events-as-source-of-truth-follow-ups.md b/docs/internal/plan-events-as-source-of-truth-follow-ups.md index 650eca25d..1ca2b9fc2 100644 --- a/docs/internal/plan-events-as-source-of-truth-follow-ups.md +++ b/docs/internal/plan-events-as-source-of-truth-follow-ups.md @@ -170,14 +170,14 @@ Required payload fields: Emit from the same places that currently call `put_status`: -- `lib/crates/fabro-workflow/src/operations/create.rs` -- `lib/crates/fabro-workflow/src/operations/start.rs` -- `lib/crates/fabro-workflow/src/operations/resume.rs` -- `lib/crates/fabro-workflow/src/pipeline/finalize.rs` -- `lib/crates/fabro-workflow/src/lifecycle/disk.rs` +- `lib/components/fabro-workflow/src/operations/create.rs` +- `lib/components/fabro-workflow/src/operations/start.rs` +- `lib/components/fabro-workflow/src/operations/resume.rs` +- `lib/components/fabro-workflow/src/pipeline/finalize.rs` +- `lib/components/fabro-workflow/src/lifecycle/disk.rs` - CLI administrative flows that directly mutate status: - - `lib/crates/fabro-cli/src/commands/runs/rm.rs` - - `lib/crates/fabro-cli/src/commands/run/rewind.rs` + - `lib/apps/fabro-cli/src/commands/runs/rm.rs` + - `lib/apps/fabro-cli/src/commands/run/rewind.rs` ### 2. Enrich `checkpoint.completed` to carry a full checkpoint snapshot @@ -200,11 +200,11 @@ Add fields covering: Emitter seam: -- `lib/crates/fabro-workflow/src/lifecycle/event.rs` +- `lib/components/fabro-workflow/src/lifecycle/event.rs` Producer seam for the source checkpoint object: -- `lib/crates/fabro-workflow/src/lifecycle/disk.rs` +- `lib/components/fabro-workflow/src/lifecycle/disk.rs` Design rule: @@ -231,7 +231,7 @@ Add: Producer seam: -- `lib/crates/fabro-workflow/src/pipeline/pull_request.rs` +- `lib/components/fabro-workflow/src/pipeline/pull_request.rs` After this lands, `put_pull_request` should become removable during the later memoized-state cutover. @@ -245,7 +245,7 @@ Do not add a separate storage-shaped event. The final patch is run-level termina Enrich `run.completed`, using the patch already computed from: -- `lib/crates/fabro-workflow/src/lifecycle/git.rs` +- `lib/components/fabro-workflow/src/lifecycle/git.rs` Required payload: @@ -287,9 +287,9 @@ Required projected output: Likely seams: -- `lib/crates/fabro-workflow/src/handler/agent.rs` -- `lib/crates/fabro-workflow/src/handler/llm/api.rs` -- `lib/crates/fabro-workflow/src/pipeline/retro.rs` if retro uses the same forwarded agent session path +- `lib/components/fabro-workflow/src/handler/agent.rs` +- `lib/components/fabro-workflow/src/handler/llm/api.rs` +- `lib/components/fabro-workflow/src/pipeline/retro.rs` if retro uses the same forwarded agent session path - any CLI-backed LLM path if it still produces `provider_used.json` Do not keep the current “read JSON sidecar, then `put_node_provider_used`” pattern once this event exists. @@ -304,7 +304,7 @@ Use the existing terminal parallel event rather than adding a storage-shaped eve Add to `parallel.completed`, emitted from: -- `lib/crates/fabro-workflow/src/handler/parallel.rs` +- `lib/components/fabro-workflow/src/handler/parallel.rs` Required new payload: @@ -346,19 +346,19 @@ Likely files to touch: - `docs-internal/events.md` - `docs-internal/run-directory-keys.md` - `docs-internal/events-strategy.md` -- `lib/crates/fabro-workflow/src/event.rs` -- `lib/crates/fabro-workflow/src/lifecycle/event.rs` -- `lib/crates/fabro-workflow/src/lifecycle/disk.rs` -- `lib/crates/fabro-workflow/src/lifecycle/git.rs` -- `lib/crates/fabro-workflow/src/operations/create.rs` -- `lib/crates/fabro-workflow/src/operations/start.rs` -- `lib/crates/fabro-workflow/src/operations/resume.rs` -- `lib/crates/fabro-workflow/src/pipeline/finalize.rs` -- `lib/crates/fabro-workflow/src/pipeline/pull_request.rs` -- `lib/crates/fabro-workflow/src/handler/agent.rs` -- `lib/crates/fabro-workflow/src/handler/parallel.rs` -- `lib/crates/fabro-cli/src/commands/runs/rm.rs` -- `lib/crates/fabro-cli/src/commands/run/rewind.rs` +- `lib/components/fabro-workflow/src/event.rs` +- `lib/components/fabro-workflow/src/lifecycle/event.rs` +- `lib/components/fabro-workflow/src/lifecycle/disk.rs` +- `lib/components/fabro-workflow/src/lifecycle/git.rs` +- `lib/components/fabro-workflow/src/operations/create.rs` +- `lib/components/fabro-workflow/src/operations/start.rs` +- `lib/components/fabro-workflow/src/operations/resume.rs` +- `lib/components/fabro-workflow/src/pipeline/finalize.rs` +- `lib/components/fabro-workflow/src/pipeline/pull_request.rs` +- `lib/components/fabro-workflow/src/handler/agent.rs` +- `lib/components/fabro-workflow/src/handler/parallel.rs` +- `lib/apps/fabro-cli/src/commands/runs/rm.rs` +- `lib/apps/fabro-cli/src/commands/run/rewind.rs` - tests in `fabro-workflow`, `fabro-cli`, and `fabro-store` ## Phases diff --git a/docs/internal/run-directory-keys.md b/docs/internal/run-directory-keys.md index 91ceeb2a8..1b78fd560 100644 --- a/docs/internal/run-directory-keys.md +++ b/docs/internal/run-directory-keys.md @@ -5,8 +5,8 @@ This document maps the files that still live under a run scratch directory. Dura Scope: - Scratch root: `~/.fabro/scratch/YYYYMMDD-{run_id}/` - This covers local run files only -- Persistent store keys live in `lib/crates/fabro-store/src/keys.rs` -- Artifact object-store keys live in `lib/crates/fabro-store/src/artifact_store.rs` +- Persistent store keys live in `lib/components/fabro-store/src/keys.rs` +- Artifact object-store keys live in `lib/components/fabro-store/src/artifact_store.rs` There is no `_init.json` anymore. Run existence in the database is determined by stored run events, and local scratch directories are managed separately under `scratch/`. diff --git a/docs/internal/slow-test-opportunities-2026-04-07.md b/docs/internal/slow-test-opportunities-2026-04-07.md index 2fe511ff4..790a80c20 100644 --- a/docs/internal/slow-test-opportunities-2026-04-07.md +++ b/docs/internal/slow-test-opportunities-2026-04-07.md @@ -22,7 +22,7 @@ Method: ### [x] 1. Change two slow `exec` mock responses from retriable `500` to non-retriable `400` Files: -- `lib/crates/fabro-cli/tests/it/cmd/exec.rs` +- `lib/apps/fabro-cli/tests/it/cmd/exec.rs` Measured evidence: - `fabro-cli::it::cmd::exec::exec_cli_server_target_overrides_configured_server_target`: `6.858s` median @@ -32,7 +32,7 @@ Measured evidence: - mocked `400`: `0.053s` median Implementation status: -- Implemented in `lib/crates/fabro-cli/tests/it/cmd/exec.rs` +- Implemented in `lib/apps/fabro-cli/tests/it/cmd/exec.rs` - Verified with `ulimit -n 4096` via 5 targeted nextest runs per test - Post-change nextest exec-time medians: - `exec_server_target_uses_remote_transport_instead_of_local_api_key_resolution`: `1.580s` @@ -57,7 +57,7 @@ Cons: ### 2. Short-circuit delete-path worker grace for already-terminal runs Files: -- `lib/crates/fabro-server/src/server.rs` +- `lib/apps/fabro-server/src/server.rs` Measured evidence: - `fabro-cli::it::cmd::system_prune::system_prune_yes_deletes_matching_runs`: `10.477s` @@ -87,11 +87,11 @@ Cons: ### [x] 3. Collapse the five abnormally slow `help` integration tests into one smoke test or a lighter harness Files: -- `lib/crates/fabro-cli/tests/it/cmd/artifact.rs` -- `lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs` -- `lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs` -- `lib/crates/fabro-cli/tests/it/cmd/config.rs` -- `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- `lib/apps/fabro-cli/tests/it/cmd/artifact.rs` +- `lib/apps/fabro-cli/tests/it/cmd/artifact_list.rs` +- `lib/apps/fabro-cli/tests/it/cmd/artifact_cp.rs` +- `lib/apps/fabro-cli/tests/it/cmd/config.rs` +- `lib/apps/fabro-cli/tests/it/cmd/attach.rs` Measured evidence: - Slow `help` tests: @@ -131,8 +131,8 @@ Cons: ### [x] 4. Replace `doctor_no_color_when_no_color_set` with a render-path assertion Files: -- `lib/crates/fabro-cli/tests/it/cmd/doctor.rs` -- `lib/crates/fabro-util/src/check_report.rs` +- `lib/apps/fabro-cli/tests/it/cmd/doctor.rs` +- `lib/foundation/fabro-util/src/check_report.rs` Measured evidence: - `fabro-cli::it::cmd::doctor::doctor_no_color_when_no_color_set`: `5.131s` @@ -144,7 +144,7 @@ Estimated impact: Implementation status: - Implemented by deleting `fabro-cli::it::cmd::doctor::doctor_no_color_when_no_color_set` -- Added a unit-level render assertion in `lib/crates/fabro-cli/src/commands/doctor.rs`: +- Added a unit-level render assertion in `lib/apps/fabro-cli/src/commands/doctor.rs`: - `render_report_text_without_color_has_no_ansi` - Verified with `ulimit -n 4096; cargo nextest run -p fabro-cli render_report_text_without_color_has_no_ansi --status-level fail --final-status-level fail --show-progress none` - Verification result: `1 passed` @@ -166,8 +166,8 @@ Cons: ### [x] 5. Fix local Unix-socket autostart so it doesn't burn the full 5s readiness wait Files: -- `lib/crates/fabro-cli/src/server_client.rs` -- `lib/crates/fabro-cli/tests/it/cmd/server_start.rs` +- `lib/apps/fabro-cli/src/server_client.rs` +- `lib/apps/fabro-cli/tests/it/cmd/server_start.rs` Measured evidence: - Pre-fix 5-run timing for `fabro-cli::it::cmd::server_start::concurrent_autostart_converges_on_one_shared_daemon_and_cleans_up`: @@ -197,7 +197,7 @@ Implementation status: - Implemented by splitting the Unix-socket connection path into: - a single immediate health probe before autostart - the existing retrying readiness wait after autostart -- Kept the original integration test coverage in `lib/crates/fabro-cli/tests/it/cmd/server_start.rs` +- Kept the original integration test coverage in `lib/apps/fabro-cli/tests/it/cmd/server_start.rs` - Verified with `ulimit -n 4096; cargo nextest run -p fabro-cli concurrent_autostart_converges_on_one_shared_daemon_and_cleans_up --status-level fail --final-status-level fail --show-progress none` - Verification result: `1 passed` - Post-change 5-run timing for `fabro-cli::it::cmd::server_start::concurrent_autostart_converges_on_one_shared_daemon_and_cleans_up`: @@ -217,7 +217,7 @@ Implementation status: ### [x] 6. Collapse three lightweight `attach` smoke tests into one scenario-style test Files: -- `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- `lib/apps/fabro-cli/tests/it/cmd/attach.rs` Measured evidence: - `attach_requires_run_arg`: `1.595s` @@ -230,7 +230,7 @@ Estimated impact: - Conservative recoverable time: about `3.15s` Implementation status: -- Implemented by removing the 3 command-owned smoke tests from `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- Implemented by removing the 3 command-owned smoke tests from `lib/apps/fabro-cli/tests/it/cmd/attach.rs` - Added `fabro-cli::it::scenario::smoke::attach_smoke_covers_arg_validation_and_remote_server_behaviors` - Verified with `ulimit -n 4096; cargo nextest run -p fabro-cli attach_smoke_covers_arg_validation_and_remote_server_behaviors --status-level fail --final-status-level fail --show-progress none` - Verification result: `1 passed` @@ -256,7 +256,7 @@ Cons: ### [x] 7. Collapse the three `completion` tests Files: -- `lib/crates/fabro-cli/tests/it/cmd/completion.rs` +- `lib/apps/fabro-cli/tests/it/cmd/completion.rs` Measured evidence: - `completion::generates_zsh_completions`: `1.567s` @@ -295,7 +295,7 @@ Cons: ### [x] 8. Remove or merge the duplicate attach replay test Files: -- `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- `lib/apps/fabro-cli/tests/it/cmd/attach.rs` Measured evidence: - `attach_replays_completed_detached_run`: `2.696s` @@ -303,7 +303,7 @@ Measured evidence: - The two tests are currently identical in code and assertions Implementation status: -- Implemented by removing the duplicate test from `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- Implemented by removing the duplicate test from `lib/apps/fabro-cli/tests/it/cmd/attach.rs` - Verified with `ulimit -n 4096; cargo nextest run -p fabro-cli attach_replays_completed_detached_run --status-level fail --final-status-level fail --show-progress none` - Verification result: `1 passed` @@ -325,7 +325,7 @@ Cons: ### [x] 9. Make `attach_before_completion_streams_to_finished_state` event-driven instead of sleep-driven Files: -- `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- `lib/apps/fabro-cli/tests/it/cmd/attach.rs` Measured evidence: - `attach_before_completion_streams_to_finished_state`: `3.043s` @@ -333,7 +333,7 @@ Measured evidence: - `write_gated_workflow()` adds another fixed `sleep 0.2` Implementation status: -- Implemented by replacing the fixed 1-second gate-release sleep with a real attach-output signal in `lib/crates/fabro-cli/tests/it/cmd/attach.rs` +- Implemented by replacing the fixed 1-second gate-release sleep with a real attach-output signal in `lib/apps/fabro-cli/tests/it/cmd/attach.rs` - The test now spawns `fabro attach`, waits for replayed stderr output (`✓ start`), then releases the workflow gate - Verified with `ulimit -n 4096; cargo nextest run -p fabro-cli attach_before_completion_streams_to_finished_state --status-level fail --final-status-level fail --show-progress none` - Verification result: `1 passed` @@ -361,14 +361,14 @@ Cons: ### [x] 10. Remove or parameterize the fixed `sleep 0.2` in `write_gated_workflow()` Files: -- `lib/crates/fabro-cli/tests/it/cmd/support.rs` +- `lib/apps/fabro-cli/tests/it/cmd/support.rs` Measured evidence: - `write_gated_workflow()` hardcodes `sleep 0.2` - The helper is used in 6 cmd tests Implementation status: -- Implemented by deleting the fixed `sleep 0.2` from `write_gated_workflow()` in `lib/crates/fabro-cli/tests/it/cmd/support.rs` +- Implemented by deleting the fixed `sleep 0.2` from `write_gated_workflow()` in `lib/apps/fabro-cli/tests/it/cmd/support.rs` - Verified with `ulimit -n 4096; cargo nextest run -p fabro-cli -E 'test(attach_before_completion_streams_to_finished_state) | test(ctrl_c_cancels_active_run_via_server) | test(rm_force_terminates_active_run_worker) | test(start_rejects_already_active_or_completed_run) | test(start_runs_under_server_ownership_without_launcher_record)' --status-level fail --final-status-level fail --show-progress none` - Verification result: `5 passed` - Targeted 5-pass benchmark with `ulimit -n 4096` over the 5 tests that currently use the helper: diff --git a/docs/internal/testing-strategy.md b/docs/internal/testing-strategy.md index 5ec1534f5..b5fa9488a 100644 --- a/docs/internal/testing-strategy.md +++ b/docs/internal/testing-strategy.md @@ -37,7 +37,7 @@ This is the right place for: If the setup requires direct writes to internal run files or runtime directories, prefer this layer over `fabro-cli/tests/it`. -### `lib/crates/fabro-cli/tests/it/cmd/*.rs` +### `lib/apps/fabro-cli/tests/it/cmd/*.rs` `cmd/*` tests are command-owned tests. @@ -64,7 +64,7 @@ Bad command-test assertions: - behavior primarily owned by another command - runtime internals that only exist because the test planted them by hand -### `lib/crates/fabro-cli/tests/it/workflow/*.rs` +### `lib/apps/fabro-cli/tests/it/workflow/*.rs` `workflow/*` tests are black-box workflow-behavior tests. @@ -79,7 +79,7 @@ Examples: These tests should focus on the workflow's observed behavior, not on CLI help text or command argument validation. -### `lib/crates/fabro-cli/tests/it/scenario/*.rs` +### `lib/apps/fabro-cli/tests/it/scenario/*.rs` `scenario/*` tests are cross-command lifecycle tests. diff --git a/docs/public/api-reference/client-sdks.mdx b/docs/public/api-reference/client-sdks.mdx index e0fcb4a94..b46291669 100644 --- a/docs/public/api-reference/client-sdks.mdx +++ b/docs/public/api-reference/client-sdks.mdx @@ -43,7 +43,7 @@ The `fabro-api` crate generates Rust structs, enums, and a `reqwest`-based HTTP A `build.rs` script reads `docs/public/api-reference/fabro-api.yaml`, patches it from OpenAPI 3.1 to 3.0 for progenitor compatibility, and generates both types and a client. The generated code is written to `OUT_DIR` and included via: ```rust -// lib/crates/fabro-api/src/lib.rs +// lib/foundation/fabro-api/src/lib.rs include!(concat!(env!("OUT_DIR"), "/codegen.rs")); ``` diff --git a/docs/public/examples/repl-handoff.mdx b/docs/public/examples/repl-handoff.mdx index a89942013..bf05c425e 100644 --- a/docs/public/examples/repl-handoff.mdx +++ b/docs/public/examples/repl-handoff.mdx @@ -73,7 +73,7 @@ Use Claude Code's plan mode to collaborate on an implementation plan. Go back an > /plan Add retry logic to the webhook delivery system Planning... -1. Add RetryPolicy struct to lib/crates/fabro-webhooks/src/policy.rs +1. Add RetryPolicy struct to lib/components/fabro-webhooks/src/policy.rs 2. Implement exponential backoff with jitter 3. Add max_retries field to WebhookConfig 4. Write tests for retry timing, max attempts, and jitter bounds diff --git a/lib/crates/fabro-cli/Cargo.toml b/lib/apps/fabro-cli/Cargo.toml similarity index 55% rename from lib/crates/fabro-cli/Cargo.toml rename to lib/apps/fabro-cli/Cargo.toml index 4c84def39..44c9982bc 100644 --- a/lib/crates/fabro-cli/Cargo.toml +++ b/lib/apps/fabro-cli/Cargo.toml @@ -18,40 +18,40 @@ sleep_inhibitor = ["dep:core-foundation"] workspace = true [dependencies] -fabro-auth = { path = "../fabro-auth" } -fabro-config = { path = "../fabro-config" } -fabro-environment = { path = "../fabro-environment" } -fabro-llm = { path = "../fabro-llm" } -fabro-model = { path = "../fabro-model" } -fabro-oauth = { path = "../fabro-oauth" } -fabro-github = { path = "../fabro-github" } -fabro-agent = { path = "../fabro-agent" } -fabro-dump = { path = "../fabro-dump" } -fabro-hooks = { path = "../fabro-hooks" } -fabro-install = { path = "../fabro-install" } -fabro-interview = { path = "../fabro-interview" } -fabro-mcp = { path = "../fabro-mcp" } +fabro-auth = { path = "../../foundation/fabro-auth" } +fabro-config = { path = "../../foundation/fabro-config" } +fabro-environment = { path = "../../components/fabro-environment" } +fabro-llm = { path = "../../components/fabro-llm" } +fabro-model = { path = "../../foundation/fabro-model" } +fabro-oauth = { path = "../../foundation/fabro-oauth" } +fabro-github = { path = "../../components/fabro-github" } +fabro-agent = { path = "../../components/fabro-agent" } +fabro-dump = { path = "../../components/fabro-dump" } +fabro-hooks = { path = "../../components/fabro-hooks" } +fabro-install = { path = "../../components/fabro-install" } +fabro-interview = { path = "../../components/fabro-interview" } +fabro-mcp = { path = "../../components/fabro-mcp" } fabro-mcp-server = { path = "../fabro-mcp-server" } -fabro-manifest = { path = "../fabro-manifest" } -fabro-proc = { path = "../fabro-proc" } -fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona"] } -fabro-checkpoint = { path = "../fabro-checkpoint" } -fabro-graphviz = { path = "../fabro-graphviz" } -fabro-validate = { path = "../fabro-validate" } -fabro-workflow = { path = "../fabro-workflow" } +fabro-manifest = { path = "../../components/fabro-manifest" } +fabro-proc = { path = "../../foundation/fabro-proc" } +fabro-sandbox = { path = "../../components/fabro-sandbox", features = ["daytona"] } +fabro-checkpoint = { path = "../../components/fabro-checkpoint" } +fabro-graphviz = { path = "../../components/fabro-graphviz" } +fabro-validate = { path = "../../components/fabro-validate" } +fabro-workflow = { path = "../../components/fabro-workflow" } fabro-server = { path = "../fabro-server" } -fabro-client = { path = "../fabro-client" } -fabro-api = { path = "../fabro-api" } -fabro-telemetry = { path = "../fabro-telemetry" } -fabro-store = { path = "../fabro-store" } -fabro-vault = { path = "../fabro-vault" } -fabro-types = { path = "../fabro-types", features = ["clap"] } +fabro-client = { path = "../../foundation/fabro-client" } +fabro-api = { path = "../../foundation/fabro-api" } +fabro-telemetry = { path = "../../foundation/fabro-telemetry" } +fabro-store = { path = "../../components/fabro-store" } +fabro-vault = { path = "../../foundation/fabro-vault" } +fabro-types = { path = "../../foundation/fabro-types", features = ["clap"] } fabro-redact.workspace = true -fabro-util = { path = "../fabro-util" } +fabro-util = { path = "../../foundation/fabro-util" } fabro-http.workspace = true fabro-static.workspace = true -fabro-template = { path = "../fabro-template" } -fabro-tool = { path = "../fabro-tool" } +fabro-template = { path = "../../foundation/fabro-template" } +fabro-tool = { path = "../../components/fabro-tool" } clap.workspace = true clap_complete.workspace = true cli-table.workspace = true @@ -111,16 +111,16 @@ core-foundation = { version = "0.9", optional = true } openssl = { version = "0.10", features = ["vendored"] } [build-dependencies] -fabro-build-support = { path = "../build-support" } +fabro-build-support = { path = "../../foundation/build-support" } chrono = { workspace = true } [dev-dependencies] assert_cmd = "2" -fabro-acp = { path = "../fabro-acp", features = ["test-support"] } -fabro-build-support = { path = "../build-support" } +fabro-acp = { path = "../../components/fabro-acp", features = ["test-support"] } +fabro-build-support = { path = "../../foundation/build-support" } fabro-server = { path = "../fabro-server", features = ["test-support"] } -fabro-workflow = { path = "../fabro-workflow", features = ["test-support"] } -fabro-types = { path = "../fabro-types", features = ["clap", "test-support"] } +fabro-workflow = { path = "../../components/fabro-workflow", features = ["test-support"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["clap", "test-support"] } insta = { workspace = true, features = ["filters"] } paste = "1" predicates = "3" @@ -129,7 +129,7 @@ tempfile = "3" temp-env = "0.3" httpmock = "0.8" fabro-test = { workspace = true } -fabro-macros = { path = "../fabro-macros" } +fabro-macros = { path = "../../foundation/fabro-macros" } hkdf.workspace = true reqwest = { workspace = true, features = ["cookies"] } tokio = { workspace = true, features = ["test-util", "macros"] } diff --git a/lib/crates/fabro-cli/build.rs b/lib/apps/fabro-cli/build.rs similarity index 100% rename from lib/crates/fabro-cli/build.rs rename to lib/apps/fabro-cli/build.rs diff --git a/lib/crates/fabro-cli/src/args.rs b/lib/apps/fabro-cli/src/args.rs similarity index 100% rename from lib/crates/fabro-cli/src/args.rs rename to lib/apps/fabro-cli/src/args.rs diff --git a/lib/crates/fabro-cli/src/command_context.rs b/lib/apps/fabro-cli/src/command_context.rs similarity index 100% rename from lib/crates/fabro-cli/src/command_context.rs rename to lib/apps/fabro-cli/src/command_context.rs diff --git a/lib/crates/fabro-cli/src/commands/artifact/cp.rs b/lib/apps/fabro-cli/src/commands/artifact/cp.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/artifact/cp.rs rename to lib/apps/fabro-cli/src/commands/artifact/cp.rs diff --git a/lib/crates/fabro-cli/src/commands/artifact/list.rs b/lib/apps/fabro-cli/src/commands/artifact/list.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/artifact/list.rs rename to lib/apps/fabro-cli/src/commands/artifact/list.rs diff --git a/lib/crates/fabro-cli/src/commands/artifact/mod.rs b/lib/apps/fabro-cli/src/commands/artifact/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/artifact/mod.rs rename to lib/apps/fabro-cli/src/commands/artifact/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/auth/login.rs b/lib/apps/fabro-cli/src/commands/auth/login.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/auth/login.rs rename to lib/apps/fabro-cli/src/commands/auth/login.rs diff --git a/lib/crates/fabro-cli/src/commands/auth/logout.rs b/lib/apps/fabro-cli/src/commands/auth/logout.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/auth/logout.rs rename to lib/apps/fabro-cli/src/commands/auth/logout.rs diff --git a/lib/crates/fabro-cli/src/commands/auth/mod.rs b/lib/apps/fabro-cli/src/commands/auth/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/auth/mod.rs rename to lib/apps/fabro-cli/src/commands/auth/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/auth/status.rs b/lib/apps/fabro-cli/src/commands/auth/status.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/auth/status.rs rename to lib/apps/fabro-cli/src/commands/auth/status.rs diff --git a/lib/crates/fabro-cli/src/commands/cli_reference.rs b/lib/apps/fabro-cli/src/commands/cli_reference.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/cli_reference.rs rename to lib/apps/fabro-cli/src/commands/cli_reference.rs diff --git a/lib/crates/fabro-cli/src/commands/config/mod.rs b/lib/apps/fabro-cli/src/commands/config/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/config/mod.rs rename to lib/apps/fabro-cli/src/commands/config/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/doctor.rs b/lib/apps/fabro-cli/src/commands/doctor.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/doctor.rs rename to lib/apps/fabro-cli/src/commands/doctor.rs diff --git a/lib/crates/fabro-cli/src/commands/dump.rs b/lib/apps/fabro-cli/src/commands/dump.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/dump.rs rename to lib/apps/fabro-cli/src/commands/dump.rs diff --git a/lib/crates/fabro-cli/src/commands/exec.rs b/lib/apps/fabro-cli/src/commands/exec.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/exec.rs rename to lib/apps/fabro-cli/src/commands/exec.rs diff --git a/lib/crates/fabro-cli/src/commands/graph.rs b/lib/apps/fabro-cli/src/commands/graph.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/graph.rs rename to lib/apps/fabro-cli/src/commands/graph.rs diff --git a/lib/crates/fabro-cli/src/commands/install.rs b/lib/apps/fabro-cli/src/commands/install.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/install.rs rename to lib/apps/fabro-cli/src/commands/install.rs diff --git a/lib/crates/fabro-cli/src/commands/mcp/mod.rs b/lib/apps/fabro-cli/src/commands/mcp/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/mcp/mod.rs rename to lib/apps/fabro-cli/src/commands/mcp/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/mod.rs b/lib/apps/fabro-cli/src/commands/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/mod.rs rename to lib/apps/fabro-cli/src/commands/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/model.rs b/lib/apps/fabro-cli/src/commands/model.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/model.rs rename to lib/apps/fabro-cli/src/commands/model.rs diff --git a/lib/crates/fabro-cli/src/commands/parent/link.rs b/lib/apps/fabro-cli/src/commands/parent/link.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/parent/link.rs rename to lib/apps/fabro-cli/src/commands/parent/link.rs diff --git a/lib/crates/fabro-cli/src/commands/parent/mod.rs b/lib/apps/fabro-cli/src/commands/parent/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/parent/mod.rs rename to lib/apps/fabro-cli/src/commands/parent/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/parent/unlink.rs b/lib/apps/fabro-cli/src/commands/parent/unlink.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/parent/unlink.rs rename to lib/apps/fabro-cli/src/commands/parent/unlink.rs diff --git a/lib/crates/fabro-cli/src/commands/parse.rs b/lib/apps/fabro-cli/src/commands/parse.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/parse.rs rename to lib/apps/fabro-cli/src/commands/parse.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/close.rs b/lib/apps/fabro-cli/src/commands/pr/close.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/close.rs rename to lib/apps/fabro-cli/src/commands/pr/close.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/create.rs b/lib/apps/fabro-cli/src/commands/pr/create.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/create.rs rename to lib/apps/fabro-cli/src/commands/pr/create.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/link.rs b/lib/apps/fabro-cli/src/commands/pr/link.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/link.rs rename to lib/apps/fabro-cli/src/commands/pr/link.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/merge.rs b/lib/apps/fabro-cli/src/commands/pr/merge.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/merge.rs rename to lib/apps/fabro-cli/src/commands/pr/merge.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/mod.rs b/lib/apps/fabro-cli/src/commands/pr/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/mod.rs rename to lib/apps/fabro-cli/src/commands/pr/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/unlink.rs b/lib/apps/fabro-cli/src/commands/pr/unlink.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/unlink.rs rename to lib/apps/fabro-cli/src/commands/pr/unlink.rs diff --git a/lib/crates/fabro-cli/src/commands/pr/view.rs b/lib/apps/fabro-cli/src/commands/pr/view.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/pr/view.rs rename to lib/apps/fabro-cli/src/commands/pr/view.rs diff --git a/lib/crates/fabro-cli/src/commands/preflight.rs b/lib/apps/fabro-cli/src/commands/preflight.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/preflight.rs rename to lib/apps/fabro-cli/src/commands/preflight.rs diff --git a/lib/crates/fabro-cli/src/commands/provider/login.rs b/lib/apps/fabro-cli/src/commands/provider/login.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/provider/login.rs rename to lib/apps/fabro-cli/src/commands/provider/login.rs diff --git a/lib/crates/fabro-cli/src/commands/provider/mod.rs b/lib/apps/fabro-cli/src/commands/provider/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/provider/mod.rs rename to lib/apps/fabro-cli/src/commands/provider/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/render_graph.rs b/lib/apps/fabro-cli/src/commands/render_graph.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/render_graph.rs rename to lib/apps/fabro-cli/src/commands/render_graph.rs diff --git a/lib/crates/fabro-cli/src/commands/repo/deinit.rs b/lib/apps/fabro-cli/src/commands/repo/deinit.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/repo/deinit.rs rename to lib/apps/fabro-cli/src/commands/repo/deinit.rs diff --git a/lib/crates/fabro-cli/src/commands/repo/init.rs b/lib/apps/fabro-cli/src/commands/repo/init.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/repo/init.rs rename to lib/apps/fabro-cli/src/commands/repo/init.rs diff --git a/lib/crates/fabro-cli/src/commands/repo/mod.rs b/lib/apps/fabro-cli/src/commands/repo/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/repo/mod.rs rename to lib/apps/fabro-cli/src/commands/repo/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/run/ask.rs b/lib/apps/fabro-cli/src/commands/run/ask.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/ask.rs rename to lib/apps/fabro-cli/src/commands/run/ask.rs diff --git a/lib/crates/fabro-cli/src/commands/run/attach.rs b/lib/apps/fabro-cli/src/commands/run/attach.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/attach.rs rename to lib/apps/fabro-cli/src/commands/run/attach.rs diff --git a/lib/crates/fabro-cli/src/commands/run/checkpoints.rs b/lib/apps/fabro-cli/src/commands/run/checkpoints.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/checkpoints.rs rename to lib/apps/fabro-cli/src/commands/run/checkpoints.rs diff --git a/lib/crates/fabro-cli/src/commands/run/command.rs b/lib/apps/fabro-cli/src/commands/run/command.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/command.rs rename to lib/apps/fabro-cli/src/commands/run/command.rs diff --git a/lib/crates/fabro-cli/src/commands/run/cp.rs b/lib/apps/fabro-cli/src/commands/run/cp.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/cp.rs rename to lib/apps/fabro-cli/src/commands/run/cp.rs diff --git a/lib/crates/fabro-cli/src/commands/run/create.rs b/lib/apps/fabro-cli/src/commands/run/create.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/create.rs rename to lib/apps/fabro-cli/src/commands/run/create.rs diff --git a/lib/crates/fabro-cli/src/commands/run/diff.rs b/lib/apps/fabro-cli/src/commands/run/diff.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/diff.rs rename to lib/apps/fabro-cli/src/commands/run/diff.rs diff --git a/lib/crates/fabro-cli/src/commands/run/events.rs b/lib/apps/fabro-cli/src/commands/run/events.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/events.rs rename to lib/apps/fabro-cli/src/commands/run/events.rs diff --git a/lib/crates/fabro-cli/src/commands/run/fork.rs b/lib/apps/fabro-cli/src/commands/run/fork.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/fork.rs rename to lib/apps/fabro-cli/src/commands/run/fork.rs diff --git a/lib/crates/fabro-cli/src/commands/run/logs.rs b/lib/apps/fabro-cli/src/commands/run/logs.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/logs.rs rename to lib/apps/fabro-cli/src/commands/run/logs.rs diff --git a/lib/crates/fabro-cli/src/commands/run/mod.rs b/lib/apps/fabro-cli/src/commands/run/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/mod.rs rename to lib/apps/fabro-cli/src/commands/run/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/run/output.rs b/lib/apps/fabro-cli/src/commands/run/output.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/output.rs rename to lib/apps/fabro-cli/src/commands/run/output.rs diff --git a/lib/crates/fabro-cli/src/commands/run/overrides.rs b/lib/apps/fabro-cli/src/commands/run/overrides.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/overrides.rs rename to lib/apps/fabro-cli/src/commands/run/overrides.rs diff --git a/lib/crates/fabro-cli/src/commands/run/preview.rs b/lib/apps/fabro-cli/src/commands/run/preview.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/preview.rs rename to lib/apps/fabro-cli/src/commands/run/preview.rs diff --git a/lib/crates/fabro-cli/src/commands/run/resume.rs b/lib/apps/fabro-cli/src/commands/run/resume.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/resume.rs rename to lib/apps/fabro-cli/src/commands/run/resume.rs diff --git a/lib/crates/fabro-cli/src/commands/run/rewind.rs b/lib/apps/fabro-cli/src/commands/run/rewind.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/rewind.rs rename to lib/apps/fabro-cli/src/commands/run/rewind.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/event.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/event.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/event.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/event.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/info_display.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/info_display.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/info_display.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/info_display.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/mod.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/renderer.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/renderer.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/renderer.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/renderer.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/setup_display.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/setup_display.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/setup_display.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/setup_display.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/stage_display.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/stage_display.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/stage_display.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/stage_display.rs diff --git a/lib/crates/fabro-cli/src/commands/run/run_progress/styles.rs b/lib/apps/fabro-cli/src/commands/run/run_progress/styles.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/run_progress/styles.rs rename to lib/apps/fabro-cli/src/commands/run/run_progress/styles.rs diff --git a/lib/crates/fabro-cli/src/commands/run/runner.rs b/lib/apps/fabro-cli/src/commands/run/runner.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/runner.rs rename to lib/apps/fabro-cli/src/commands/run/runner.rs diff --git a/lib/crates/fabro-cli/src/commands/run/ssh.rs b/lib/apps/fabro-cli/src/commands/run/ssh.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/ssh.rs rename to lib/apps/fabro-cli/src/commands/run/ssh.rs diff --git a/lib/crates/fabro-cli/src/commands/run/start.rs b/lib/apps/fabro-cli/src/commands/run/start.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/start.rs rename to lib/apps/fabro-cli/src/commands/run/start.rs diff --git a/lib/crates/fabro-cli/src/commands/run/steer.rs b/lib/apps/fabro-cli/src/commands/run/steer.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/steer.rs rename to lib/apps/fabro-cli/src/commands/run/steer.rs diff --git a/lib/crates/fabro-cli/src/commands/run/wait.rs b/lib/apps/fabro-cli/src/commands/run/wait.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/run/wait.rs rename to lib/apps/fabro-cli/src/commands/run/wait.rs diff --git a/lib/crates/fabro-cli/src/commands/runs/approval.rs b/lib/apps/fabro-cli/src/commands/runs/approval.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/runs/approval.rs rename to lib/apps/fabro-cli/src/commands/runs/approval.rs diff --git a/lib/crates/fabro-cli/src/commands/runs/archive.rs b/lib/apps/fabro-cli/src/commands/runs/archive.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/runs/archive.rs rename to lib/apps/fabro-cli/src/commands/runs/archive.rs diff --git a/lib/crates/fabro-cli/src/commands/runs/inspect.rs b/lib/apps/fabro-cli/src/commands/runs/inspect.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/runs/inspect.rs rename to lib/apps/fabro-cli/src/commands/runs/inspect.rs diff --git a/lib/crates/fabro-cli/src/commands/runs/list.rs b/lib/apps/fabro-cli/src/commands/runs/list.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/runs/list.rs rename to lib/apps/fabro-cli/src/commands/runs/list.rs diff --git a/lib/crates/fabro-cli/src/commands/runs/mod.rs b/lib/apps/fabro-cli/src/commands/runs/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/runs/mod.rs rename to lib/apps/fabro-cli/src/commands/runs/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/runs/rm.rs b/lib/apps/fabro-cli/src/commands/runs/rm.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/runs/rm.rs rename to lib/apps/fabro-cli/src/commands/runs/rm.rs diff --git a/lib/crates/fabro-cli/src/commands/sandbox/mod.rs b/lib/apps/fabro-cli/src/commands/sandbox/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/sandbox/mod.rs rename to lib/apps/fabro-cli/src/commands/sandbox/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/secret/list.rs b/lib/apps/fabro-cli/src/commands/secret/list.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/secret/list.rs rename to lib/apps/fabro-cli/src/commands/secret/list.rs diff --git a/lib/crates/fabro-cli/src/commands/secret/mod.rs b/lib/apps/fabro-cli/src/commands/secret/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/secret/mod.rs rename to lib/apps/fabro-cli/src/commands/secret/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/secret/rm.rs b/lib/apps/fabro-cli/src/commands/secret/rm.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/secret/rm.rs rename to lib/apps/fabro-cli/src/commands/secret/rm.rs diff --git a/lib/crates/fabro-cli/src/commands/secret/set.rs b/lib/apps/fabro-cli/src/commands/secret/set.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/secret/set.rs rename to lib/apps/fabro-cli/src/commands/secret/set.rs diff --git a/lib/crates/fabro-cli/src/commands/server/foreground.rs b/lib/apps/fabro-cli/src/commands/server/foreground.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/server/foreground.rs rename to lib/apps/fabro-cli/src/commands/server/foreground.rs diff --git a/lib/crates/fabro-cli/src/commands/server/mod.rs b/lib/apps/fabro-cli/src/commands/server/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/server/mod.rs rename to lib/apps/fabro-cli/src/commands/server/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/server/start.rs b/lib/apps/fabro-cli/src/commands/server/start.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/server/start.rs rename to lib/apps/fabro-cli/src/commands/server/start.rs diff --git a/lib/crates/fabro-cli/src/commands/server/status.rs b/lib/apps/fabro-cli/src/commands/server/status.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/server/status.rs rename to lib/apps/fabro-cli/src/commands/server/status.rs diff --git a/lib/crates/fabro-cli/src/commands/server/stop.rs b/lib/apps/fabro-cli/src/commands/server/stop.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/server/stop.rs rename to lib/apps/fabro-cli/src/commands/server/stop.rs diff --git a/lib/crates/fabro-cli/src/commands/system/df.rs b/lib/apps/fabro-cli/src/commands/system/df.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/system/df.rs rename to lib/apps/fabro-cli/src/commands/system/df.rs diff --git a/lib/crates/fabro-cli/src/commands/system/events.rs b/lib/apps/fabro-cli/src/commands/system/events.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/system/events.rs rename to lib/apps/fabro-cli/src/commands/system/events.rs diff --git a/lib/crates/fabro-cli/src/commands/system/info.rs b/lib/apps/fabro-cli/src/commands/system/info.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/system/info.rs rename to lib/apps/fabro-cli/src/commands/system/info.rs diff --git a/lib/crates/fabro-cli/src/commands/system/mod.rs b/lib/apps/fabro-cli/src/commands/system/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/system/mod.rs rename to lib/apps/fabro-cli/src/commands/system/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/system/prune.rs b/lib/apps/fabro-cli/src/commands/system/prune.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/system/prune.rs rename to lib/apps/fabro-cli/src/commands/system/prune.rs diff --git a/lib/crates/fabro-cli/src/commands/system/repair.rs b/lib/apps/fabro-cli/src/commands/system/repair.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/system/repair.rs rename to lib/apps/fabro-cli/src/commands/system/repair.rs diff --git a/lib/crates/fabro-cli/src/commands/uninstall.rs b/lib/apps/fabro-cli/src/commands/uninstall.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/uninstall.rs rename to lib/apps/fabro-cli/src/commands/uninstall.rs diff --git a/lib/crates/fabro-cli/src/commands/upgrade.rs b/lib/apps/fabro-cli/src/commands/upgrade.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/upgrade.rs rename to lib/apps/fabro-cli/src/commands/upgrade.rs diff --git a/lib/crates/fabro-cli/src/commands/validate.rs b/lib/apps/fabro-cli/src/commands/validate.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/validate.rs rename to lib/apps/fabro-cli/src/commands/validate.rs diff --git a/lib/crates/fabro-cli/src/commands/variable/get.rs b/lib/apps/fabro-cli/src/commands/variable/get.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/variable/get.rs rename to lib/apps/fabro-cli/src/commands/variable/get.rs diff --git a/lib/crates/fabro-cli/src/commands/variable/list.rs b/lib/apps/fabro-cli/src/commands/variable/list.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/variable/list.rs rename to lib/apps/fabro-cli/src/commands/variable/list.rs diff --git a/lib/crates/fabro-cli/src/commands/variable/mod.rs b/lib/apps/fabro-cli/src/commands/variable/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/variable/mod.rs rename to lib/apps/fabro-cli/src/commands/variable/mod.rs diff --git a/lib/crates/fabro-cli/src/commands/variable/rm.rs b/lib/apps/fabro-cli/src/commands/variable/rm.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/variable/rm.rs rename to lib/apps/fabro-cli/src/commands/variable/rm.rs diff --git a/lib/crates/fabro-cli/src/commands/variable/set.rs b/lib/apps/fabro-cli/src/commands/variable/set.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/variable/set.rs rename to lib/apps/fabro-cli/src/commands/variable/set.rs diff --git a/lib/crates/fabro-cli/src/commands/version.rs b/lib/apps/fabro-cli/src/commands/version.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/version.rs rename to lib/apps/fabro-cli/src/commands/version.rs diff --git a/lib/crates/fabro-cli/src/commands/workflow/create.rs b/lib/apps/fabro-cli/src/commands/workflow/create.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/workflow/create.rs rename to lib/apps/fabro-cli/src/commands/workflow/create.rs diff --git a/lib/crates/fabro-cli/src/commands/workflow/list.rs b/lib/apps/fabro-cli/src/commands/workflow/list.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/workflow/list.rs rename to lib/apps/fabro-cli/src/commands/workflow/list.rs diff --git a/lib/crates/fabro-cli/src/commands/workflow/mod.rs b/lib/apps/fabro-cli/src/commands/workflow/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/commands/workflow/mod.rs rename to lib/apps/fabro-cli/src/commands/workflow/mod.rs diff --git a/lib/crates/fabro-cli/src/gh.rs b/lib/apps/fabro-cli/src/gh.rs similarity index 100% rename from lib/crates/fabro-cli/src/gh.rs rename to lib/apps/fabro-cli/src/gh.rs diff --git a/lib/crates/fabro-cli/src/landing.rs b/lib/apps/fabro-cli/src/landing.rs similarity index 100% rename from lib/crates/fabro-cli/src/landing.rs rename to lib/apps/fabro-cli/src/landing.rs diff --git a/lib/crates/fabro-cli/src/local_server.rs b/lib/apps/fabro-cli/src/local_server.rs similarity index 100% rename from lib/crates/fabro-cli/src/local_server.rs rename to lib/apps/fabro-cli/src/local_server.rs diff --git a/lib/crates/fabro-cli/src/logging.rs b/lib/apps/fabro-cli/src/logging.rs similarity index 100% rename from lib/crates/fabro-cli/src/logging.rs rename to lib/apps/fabro-cli/src/logging.rs diff --git a/lib/crates/fabro-cli/src/main.rs b/lib/apps/fabro-cli/src/main.rs similarity index 100% rename from lib/crates/fabro-cli/src/main.rs rename to lib/apps/fabro-cli/src/main.rs diff --git a/lib/crates/fabro-cli/src/manifest_args.rs b/lib/apps/fabro-cli/src/manifest_args.rs similarity index 100% rename from lib/crates/fabro-cli/src/manifest_args.rs rename to lib/apps/fabro-cli/src/manifest_args.rs diff --git a/lib/crates/fabro-cli/src/server_client.rs b/lib/apps/fabro-cli/src/server_client.rs similarity index 100% rename from lib/crates/fabro-cli/src/server_client.rs rename to lib/apps/fabro-cli/src/server_client.rs diff --git a/lib/crates/fabro-cli/src/server_runs.rs b/lib/apps/fabro-cli/src/server_runs.rs similarity index 100% rename from lib/crates/fabro-cli/src/server_runs.rs rename to lib/apps/fabro-cli/src/server_runs.rs diff --git a/lib/crates/fabro-cli/src/shared/github.rs b/lib/apps/fabro-cli/src/shared/github.rs similarity index 100% rename from lib/crates/fabro-cli/src/shared/github.rs rename to lib/apps/fabro-cli/src/shared/github.rs diff --git a/lib/crates/fabro-cli/src/shared/mod.rs b/lib/apps/fabro-cli/src/shared/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/shared/mod.rs rename to lib/apps/fabro-cli/src/shared/mod.rs diff --git a/lib/crates/fabro-cli/src/shared/provider_auth.rs b/lib/apps/fabro-cli/src/shared/provider_auth.rs similarity index 100% rename from lib/crates/fabro-cli/src/shared/provider_auth.rs rename to lib/apps/fabro-cli/src/shared/provider_auth.rs diff --git a/lib/crates/fabro-cli/src/shared/repo.rs b/lib/apps/fabro-cli/src/shared/repo.rs similarity index 100% rename from lib/crates/fabro-cli/src/shared/repo.rs rename to lib/apps/fabro-cli/src/shared/repo.rs diff --git a/lib/crates/fabro-cli/src/shared/utilities.rs b/lib/apps/fabro-cli/src/shared/utilities.rs similarity index 100% rename from lib/crates/fabro-cli/src/shared/utilities.rs rename to lib/apps/fabro-cli/src/shared/utilities.rs diff --git a/lib/crates/fabro-cli/src/sleep_inhibitor/dummy.rs b/lib/apps/fabro-cli/src/sleep_inhibitor/dummy.rs similarity index 100% rename from lib/crates/fabro-cli/src/sleep_inhibitor/dummy.rs rename to lib/apps/fabro-cli/src/sleep_inhibitor/dummy.rs diff --git a/lib/crates/fabro-cli/src/sleep_inhibitor/iokit_bindings.rs b/lib/apps/fabro-cli/src/sleep_inhibitor/iokit_bindings.rs similarity index 100% rename from lib/crates/fabro-cli/src/sleep_inhibitor/iokit_bindings.rs rename to lib/apps/fabro-cli/src/sleep_inhibitor/iokit_bindings.rs diff --git a/lib/crates/fabro-cli/src/sleep_inhibitor/linux.rs b/lib/apps/fabro-cli/src/sleep_inhibitor/linux.rs similarity index 100% rename from lib/crates/fabro-cli/src/sleep_inhibitor/linux.rs rename to lib/apps/fabro-cli/src/sleep_inhibitor/linux.rs diff --git a/lib/crates/fabro-cli/src/sleep_inhibitor/macos.rs b/lib/apps/fabro-cli/src/sleep_inhibitor/macos.rs similarity index 100% rename from lib/crates/fabro-cli/src/sleep_inhibitor/macos.rs rename to lib/apps/fabro-cli/src/sleep_inhibitor/macos.rs diff --git a/lib/crates/fabro-cli/src/sleep_inhibitor/mod.rs b/lib/apps/fabro-cli/src/sleep_inhibitor/mod.rs similarity index 100% rename from lib/crates/fabro-cli/src/sleep_inhibitor/mod.rs rename to lib/apps/fabro-cli/src/sleep_inhibitor/mod.rs diff --git a/lib/crates/fabro-cli/src/user_config.rs b/lib/apps/fabro-cli/src/user_config.rs similarity index 100% rename from lib/crates/fabro-cli/src/user_config.rs rename to lib/apps/fabro-cli/src/user_config.rs diff --git a/lib/crates/fabro-cli/tests/build_git_metadata.rs b/lib/apps/fabro-cli/tests/build_git_metadata.rs similarity index 100% rename from lib/crates/fabro-cli/tests/build_git_metadata.rs rename to lib/apps/fabro-cli/tests/build_git_metadata.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/approve.rs b/lib/apps/fabro-cli/tests/it/cmd/approve.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/approve.rs rename to lib/apps/fabro-cli/tests/it/cmd/approve.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/archive.rs b/lib/apps/fabro-cli/tests/it/cmd/archive.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/archive.rs rename to lib/apps/fabro-cli/tests/it/cmd/archive.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs b/lib/apps/fabro-cli/tests/it/cmd/artifact_cp.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs rename to lib/apps/fabro-cli/tests/it/cmd/artifact_cp.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs b/lib/apps/fabro-cli/tests/it/cmd/artifact_list.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs rename to lib/apps/fabro-cli/tests/it/cmd/artifact_list.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/attach.rs b/lib/apps/fabro-cli/tests/it/cmd/attach.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/attach.rs rename to lib/apps/fabro-cli/tests/it/cmd/attach.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/auth.rs b/lib/apps/fabro-cli/tests/it/cmd/auth.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/auth.rs rename to lib/apps/fabro-cli/tests/it/cmd/auth.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/cli_reference.rs b/lib/apps/fabro-cli/tests/it/cmd/cli_reference.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/cli_reference.rs rename to lib/apps/fabro-cli/tests/it/cmd/cli_reference.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/config.rs b/lib/apps/fabro-cli/tests/it/cmd/config.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/config.rs rename to lib/apps/fabro-cli/tests/it/cmd/config.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/create.rs b/lib/apps/fabro-cli/tests/it/cmd/create.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/create.rs rename to lib/apps/fabro-cli/tests/it/cmd/create.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/deny.rs b/lib/apps/fabro-cli/tests/it/cmd/deny.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/deny.rs rename to lib/apps/fabro-cli/tests/it/cmd/deny.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/diff.rs b/lib/apps/fabro-cli/tests/it/cmd/diff.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/diff.rs rename to lib/apps/fabro-cli/tests/it/cmd/diff.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/discord.rs b/lib/apps/fabro-cli/tests/it/cmd/discord.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/discord.rs rename to lib/apps/fabro-cli/tests/it/cmd/discord.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/docs.rs b/lib/apps/fabro-cli/tests/it/cmd/docs.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/docs.rs rename to lib/apps/fabro-cli/tests/it/cmd/docs.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/doctor.rs b/lib/apps/fabro-cli/tests/it/cmd/doctor.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/doctor.rs rename to lib/apps/fabro-cli/tests/it/cmd/doctor.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/dump.rs b/lib/apps/fabro-cli/tests/it/cmd/dump.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/dump.rs rename to lib/apps/fabro-cli/tests/it/cmd/dump.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/events.rs b/lib/apps/fabro-cli/tests/it/cmd/events.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/events.rs rename to lib/apps/fabro-cli/tests/it/cmd/events.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/exec.rs b/lib/apps/fabro-cli/tests/it/cmd/exec.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/exec.rs rename to lib/apps/fabro-cli/tests/it/cmd/exec.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/fabro.rs b/lib/apps/fabro-cli/tests/it/cmd/fabro.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/fabro.rs rename to lib/apps/fabro-cli/tests/it/cmd/fabro.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/fork.rs b/lib/apps/fabro-cli/tests/it/cmd/fork.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/fork.rs rename to lib/apps/fabro-cli/tests/it/cmd/fork.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/graph.rs b/lib/apps/fabro-cli/tests/it/cmd/graph.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/graph.rs rename to lib/apps/fabro-cli/tests/it/cmd/graph.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/inspect.rs b/lib/apps/fabro-cli/tests/it/cmd/inspect.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/inspect.rs rename to lib/apps/fabro-cli/tests/it/cmd/inspect.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/install.rs b/lib/apps/fabro-cli/tests/it/cmd/install.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/install.rs rename to lib/apps/fabro-cli/tests/it/cmd/install.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/json_global.rs b/lib/apps/fabro-cli/tests/it/cmd/json_global.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/json_global.rs rename to lib/apps/fabro-cli/tests/it/cmd/json_global.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/logs.rs b/lib/apps/fabro-cli/tests/it/cmd/logs.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/logs.rs rename to lib/apps/fabro-cli/tests/it/cmd/logs.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/mcp.rs b/lib/apps/fabro-cli/tests/it/cmd/mcp.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/mcp.rs rename to lib/apps/fabro-cli/tests/it/cmd/mcp.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/mod.rs b/lib/apps/fabro-cli/tests/it/cmd/mod.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/mod.rs rename to lib/apps/fabro-cli/tests/it/cmd/mod.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/model.rs b/lib/apps/fabro-cli/tests/it/cmd/model.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/model.rs rename to lib/apps/fabro-cli/tests/it/cmd/model.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/model_list.rs b/lib/apps/fabro-cli/tests/it/cmd/model_list.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/model_list.rs rename to lib/apps/fabro-cli/tests/it/cmd/model_list.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/model_test.rs b/lib/apps/fabro-cli/tests/it/cmd/model_test.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/model_test.rs rename to lib/apps/fabro-cli/tests/it/cmd/model_test.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/parent.rs b/lib/apps/fabro-cli/tests/it/cmd/parent.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/parent.rs rename to lib/apps/fabro-cli/tests/it/cmd/parent.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/parse.rs b/lib/apps/fabro-cli/tests/it/cmd/parse.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/parse.rs rename to lib/apps/fabro-cli/tests/it/cmd/parse.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr.rs b/lib/apps/fabro-cli/tests/it/cmd/pr.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_close.rs b/lib/apps/fabro-cli/tests/it/cmd/pr_close.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr_close.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr_close.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_create.rs b/lib/apps/fabro-cli/tests/it/cmd/pr_create.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr_create.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr_create.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_link.rs b/lib/apps/fabro-cli/tests/it/cmd/pr_link.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr_link.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr_link.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_merge.rs b/lib/apps/fabro-cli/tests/it/cmd/pr_merge.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr_merge.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr_merge.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_unlink.rs b/lib/apps/fabro-cli/tests/it/cmd/pr_unlink.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr_unlink.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr_unlink.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_view.rs b/lib/apps/fabro-cli/tests/it/cmd/pr_view.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/pr_view.rs rename to lib/apps/fabro-cli/tests/it/cmd/pr_view.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/preflight.rs b/lib/apps/fabro-cli/tests/it/cmd/preflight.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/preflight.rs rename to lib/apps/fabro-cli/tests/it/cmd/preflight.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/provider.rs b/lib/apps/fabro-cli/tests/it/cmd/provider.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/provider.rs rename to lib/apps/fabro-cli/tests/it/cmd/provider.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/provider_login.rs b/lib/apps/fabro-cli/tests/it/cmd/provider_login.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/provider_login.rs rename to lib/apps/fabro-cli/tests/it/cmd/provider_login.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/ps.rs b/lib/apps/fabro-cli/tests/it/cmd/ps.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/ps.rs rename to lib/apps/fabro-cli/tests/it/cmd/ps.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/render_graph.rs b/lib/apps/fabro-cli/tests/it/cmd/render_graph.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/render_graph.rs rename to lib/apps/fabro-cli/tests/it/cmd/render_graph.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/repo.rs b/lib/apps/fabro-cli/tests/it/cmd/repo.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/repo.rs rename to lib/apps/fabro-cli/tests/it/cmd/repo.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/repo_deinit.rs b/lib/apps/fabro-cli/tests/it/cmd/repo_deinit.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/repo_deinit.rs rename to lib/apps/fabro-cli/tests/it/cmd/repo_deinit.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/repo_init.rs b/lib/apps/fabro-cli/tests/it/cmd/repo_init.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/repo_init.rs rename to lib/apps/fabro-cli/tests/it/cmd/repo_init.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/resume.rs b/lib/apps/fabro-cli/tests/it/cmd/resume.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/resume.rs rename to lib/apps/fabro-cli/tests/it/cmd/resume.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/rewind.rs b/lib/apps/fabro-cli/tests/it/cmd/rewind.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/rewind.rs rename to lib/apps/fabro-cli/tests/it/cmd/rewind.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/rm.rs b/lib/apps/fabro-cli/tests/it/cmd/rm.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/rm.rs rename to lib/apps/fabro-cli/tests/it/cmd/rm.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/run.rs b/lib/apps/fabro-cli/tests/it/cmd/run.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/run.rs rename to lib/apps/fabro-cli/tests/it/cmd/run.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/runner.rs b/lib/apps/fabro-cli/tests/it/cmd/runner.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/runner.rs rename to lib/apps/fabro-cli/tests/it/cmd/runner.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/sandbox_cp.rs b/lib/apps/fabro-cli/tests/it/cmd/sandbox_cp.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/sandbox_cp.rs rename to lib/apps/fabro-cli/tests/it/cmd/sandbox_cp.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/sandbox_preview.rs b/lib/apps/fabro-cli/tests/it/cmd/sandbox_preview.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/sandbox_preview.rs rename to lib/apps/fabro-cli/tests/it/cmd/sandbox_preview.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/sandbox_ssh.rs b/lib/apps/fabro-cli/tests/it/cmd/sandbox_ssh.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/sandbox_ssh.rs rename to lib/apps/fabro-cli/tests/it/cmd/sandbox_ssh.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret.rs b/lib/apps/fabro-cli/tests/it/cmd/secret.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/secret.rs rename to lib/apps/fabro-cli/tests/it/cmd/secret.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_list.rs b/lib/apps/fabro-cli/tests/it/cmd/secret_list.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/secret_list.rs rename to lib/apps/fabro-cli/tests/it/cmd/secret_list.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_rm.rs b/lib/apps/fabro-cli/tests/it/cmd/secret_rm.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/secret_rm.rs rename to lib/apps/fabro-cli/tests/it/cmd/secret_rm.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_set.rs b/lib/apps/fabro-cli/tests/it/cmd/secret_set.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/secret_set.rs rename to lib/apps/fabro-cli/tests/it/cmd/secret_set.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/send_analytics.rs b/lib/apps/fabro-cli/tests/it/cmd/send_analytics.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/send_analytics.rs rename to lib/apps/fabro-cli/tests/it/cmd/send_analytics.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/send_panic.rs b/lib/apps/fabro-cli/tests/it/cmd/send_panic.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/send_panic.rs rename to lib/apps/fabro-cli/tests/it/cmd/send_panic.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/server_start.rs b/lib/apps/fabro-cli/tests/it/cmd/server_start.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/server_start.rs rename to lib/apps/fabro-cli/tests/it/cmd/server_start.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/server_status.rs b/lib/apps/fabro-cli/tests/it/cmd/server_status.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/server_status.rs rename to lib/apps/fabro-cli/tests/it/cmd/server_status.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/server_stop.rs b/lib/apps/fabro-cli/tests/it/cmd/server_stop.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/server_stop.rs rename to lib/apps/fabro-cli/tests/it/cmd/server_stop.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/start.rs b/lib/apps/fabro-cli/tests/it/cmd/start.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/start.rs rename to lib/apps/fabro-cli/tests/it/cmd/start.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/support.rs b/lib/apps/fabro-cli/tests/it/cmd/support.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/support.rs rename to lib/apps/fabro-cli/tests/it/cmd/support.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/system.rs b/lib/apps/fabro-cli/tests/it/cmd/system.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/system.rs rename to lib/apps/fabro-cli/tests/it/cmd/system.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/system_df.rs b/lib/apps/fabro-cli/tests/it/cmd/system_df.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/system_df.rs rename to lib/apps/fabro-cli/tests/it/cmd/system_df.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/system_events.rs b/lib/apps/fabro-cli/tests/it/cmd/system_events.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/system_events.rs rename to lib/apps/fabro-cli/tests/it/cmd/system_events.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/system_info.rs b/lib/apps/fabro-cli/tests/it/cmd/system_info.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/system_info.rs rename to lib/apps/fabro-cli/tests/it/cmd/system_info.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/system_prune.rs b/lib/apps/fabro-cli/tests/it/cmd/system_prune.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/system_prune.rs rename to lib/apps/fabro-cli/tests/it/cmd/system_prune.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/system_repair.rs b/lib/apps/fabro-cli/tests/it/cmd/system_repair.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/system_repair.rs rename to lib/apps/fabro-cli/tests/it/cmd/system_repair.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/test_panic.rs b/lib/apps/fabro-cli/tests/it/cmd/test_panic.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/test_panic.rs rename to lib/apps/fabro-cli/tests/it/cmd/test_panic.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/top_level.rs b/lib/apps/fabro-cli/tests/it/cmd/top_level.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/top_level.rs rename to lib/apps/fabro-cli/tests/it/cmd/top_level.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/unarchive.rs b/lib/apps/fabro-cli/tests/it/cmd/unarchive.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/unarchive.rs rename to lib/apps/fabro-cli/tests/it/cmd/unarchive.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/uninstall.rs b/lib/apps/fabro-cli/tests/it/cmd/uninstall.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/uninstall.rs rename to lib/apps/fabro-cli/tests/it/cmd/uninstall.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/upgrade.rs b/lib/apps/fabro-cli/tests/it/cmd/upgrade.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/upgrade.rs rename to lib/apps/fabro-cli/tests/it/cmd/upgrade.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/validate.rs b/lib/apps/fabro-cli/tests/it/cmd/validate.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/validate.rs rename to lib/apps/fabro-cli/tests/it/cmd/validate.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/variable.rs b/lib/apps/fabro-cli/tests/it/cmd/variable.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/variable.rs rename to lib/apps/fabro-cli/tests/it/cmd/variable.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/variable_get.rs b/lib/apps/fabro-cli/tests/it/cmd/variable_get.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/variable_get.rs rename to lib/apps/fabro-cli/tests/it/cmd/variable_get.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/variable_list.rs b/lib/apps/fabro-cli/tests/it/cmd/variable_list.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/variable_list.rs rename to lib/apps/fabro-cli/tests/it/cmd/variable_list.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/variable_rm.rs b/lib/apps/fabro-cli/tests/it/cmd/variable_rm.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/variable_rm.rs rename to lib/apps/fabro-cli/tests/it/cmd/variable_rm.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/variable_set.rs b/lib/apps/fabro-cli/tests/it/cmd/variable_set.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/variable_set.rs rename to lib/apps/fabro-cli/tests/it/cmd/variable_set.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/version.rs b/lib/apps/fabro-cli/tests/it/cmd/version.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/version.rs rename to lib/apps/fabro-cli/tests/it/cmd/version.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/wait.rs b/lib/apps/fabro-cli/tests/it/cmd/wait.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/wait.rs rename to lib/apps/fabro-cli/tests/it/cmd/wait.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/worker_auth.rs b/lib/apps/fabro-cli/tests/it/cmd/worker_auth.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/worker_auth.rs rename to lib/apps/fabro-cli/tests/it/cmd/worker_auth.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/workflow.rs b/lib/apps/fabro-cli/tests/it/cmd/workflow.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/workflow.rs rename to lib/apps/fabro-cli/tests/it/cmd/workflow.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/workflow_create.rs b/lib/apps/fabro-cli/tests/it/cmd/workflow_create.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/workflow_create.rs rename to lib/apps/fabro-cli/tests/it/cmd/workflow_create.rs diff --git a/lib/crates/fabro-cli/tests/it/cmd/workflow_list.rs b/lib/apps/fabro-cli/tests/it/cmd/workflow_list.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/cmd/workflow_list.rs rename to lib/apps/fabro-cli/tests/it/cmd/workflow_list.rs diff --git a/lib/crates/fabro-cli/tests/it/main.rs b/lib/apps/fabro-cli/tests/it/main.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/main.rs rename to lib/apps/fabro-cli/tests/it/main.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/archive.rs b/lib/apps/fabro-cli/tests/it/scenario/archive.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/archive.rs rename to lib/apps/fabro-cli/tests/it/scenario/archive.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/artifacts.rs b/lib/apps/fabro-cli/tests/it/scenario/artifacts.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/artifacts.rs rename to lib/apps/fabro-cli/tests/it/scenario/artifacts.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/auth.rs b/lib/apps/fabro-cli/tests/it/scenario/auth.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/auth.rs rename to lib/apps/fabro-cli/tests/it/scenario/auth.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/exec.rs b/lib/apps/fabro-cli/tests/it/scenario/exec.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/exec.rs rename to lib/apps/fabro-cli/tests/it/scenario/exec.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/lifecycle.rs b/lib/apps/fabro-cli/tests/it/scenario/lifecycle.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/lifecycle.rs rename to lib/apps/fabro-cli/tests/it/scenario/lifecycle.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/mod.rs b/lib/apps/fabro-cli/tests/it/scenario/mod.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/mod.rs rename to lib/apps/fabro-cli/tests/it/scenario/mod.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/server_lifecycle.rs b/lib/apps/fabro-cli/tests/it/scenario/server_lifecycle.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/server_lifecycle.rs rename to lib/apps/fabro-cli/tests/it/scenario/server_lifecycle.rs diff --git a/lib/crates/fabro-cli/tests/it/scenario/smoke.rs b/lib/apps/fabro-cli/tests/it/scenario/smoke.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/scenario/smoke.rs rename to lib/apps/fabro-cli/tests/it/scenario/smoke.rs diff --git a/lib/crates/fabro-cli/tests/it/support/auth_harness.rs b/lib/apps/fabro-cli/tests/it/support/auth_harness.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/support/auth_harness.rs rename to lib/apps/fabro-cli/tests/it/support/auth_harness.rs diff --git a/lib/crates/fabro-cli/tests/it/support/auth_tokens.rs b/lib/apps/fabro-cli/tests/it/support/auth_tokens.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/support/auth_tokens.rs rename to lib/apps/fabro-cli/tests/it/support/auth_tokens.rs diff --git a/lib/crates/fabro-cli/tests/it/support/mod.rs b/lib/apps/fabro-cli/tests/it/support/mod.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/support/mod.rs rename to lib/apps/fabro-cli/tests/it/support/mod.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/acp.rs b/lib/apps/fabro-cli/tests/it/workflow/acp.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/acp.rs rename to lib/apps/fabro-cli/tests/it/workflow/acp.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/agent_linear.rs b/lib/apps/fabro-cli/tests/it/workflow/agent_linear.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/agent_linear.rs rename to lib/apps/fabro-cli/tests/it/workflow/agent_linear.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/artifacts.rs b/lib/apps/fabro-cli/tests/it/workflow/artifacts.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/artifacts.rs rename to lib/apps/fabro-cli/tests/it/workflow/artifacts.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/command_agent_mixed.rs b/lib/apps/fabro-cli/tests/it/workflow/command_agent_mixed.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/command_agent_mixed.rs rename to lib/apps/fabro-cli/tests/it/workflow/command_agent_mixed.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/command_pipeline.rs b/lib/apps/fabro-cli/tests/it/workflow/command_pipeline.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/command_pipeline.rs rename to lib/apps/fabro-cli/tests/it/workflow/command_pipeline.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/command_routing.rs b/lib/apps/fabro-cli/tests/it/workflow/command_routing.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/command_routing.rs rename to lib/apps/fabro-cli/tests/it/workflow/command_routing.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/conditional_branching.rs b/lib/apps/fabro-cli/tests/it/workflow/conditional_branching.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/conditional_branching.rs rename to lib/apps/fabro-cli/tests/it/workflow/conditional_branching.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/dry_run_examples.rs b/lib/apps/fabro-cli/tests/it/workflow/dry_run_examples.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/dry_run_examples.rs rename to lib/apps/fabro-cli/tests/it/workflow/dry_run_examples.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/agent_linear.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/agent_linear.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/agent_linear.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/agent_linear.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/command_agent_mixed.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/command_agent_mixed.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/command_agent_mixed.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/command_agent_mixed.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/command_pipeline.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/command_pipeline.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/command_pipeline.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/command_pipeline.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/command_routing.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/command_routing.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/command_routing.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/command_routing.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/conditional_branching.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/conditional_branching.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/conditional_branching.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/conditional_branching.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/full_stack.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/full_stack.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/full_stack.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/full_stack.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/fixtures/human_gate.fabro b/lib/apps/fabro-cli/tests/it/workflow/fixtures/human_gate.fabro similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/fixtures/human_gate.fabro rename to lib/apps/fabro-cli/tests/it/workflow/fixtures/human_gate.fabro diff --git a/lib/crates/fabro-cli/tests/it/workflow/full_stack.rs b/lib/apps/fabro-cli/tests/it/workflow/full_stack.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/full_stack.rs rename to lib/apps/fabro-cli/tests/it/workflow/full_stack.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/hooks.rs b/lib/apps/fabro-cli/tests/it/workflow/hooks.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/hooks.rs rename to lib/apps/fabro-cli/tests/it/workflow/hooks.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/human_gate.rs b/lib/apps/fabro-cli/tests/it/workflow/human_gate.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/human_gate.rs rename to lib/apps/fabro-cli/tests/it/workflow/human_gate.rs diff --git a/lib/crates/fabro-cli/tests/it/workflow/mod.rs b/lib/apps/fabro-cli/tests/it/workflow/mod.rs similarity index 100% rename from lib/crates/fabro-cli/tests/it/workflow/mod.rs rename to lib/apps/fabro-cli/tests/it/workflow/mod.rs diff --git a/lib/crates/fabro-cli/tests/manifest_path_round_trip.rs b/lib/apps/fabro-cli/tests/manifest_path_round_trip.rs similarity index 100% rename from lib/crates/fabro-cli/tests/manifest_path_round_trip.rs rename to lib/apps/fabro-cli/tests/manifest_path_round_trip.rs diff --git a/lib/crates/fabro-mcp-server/Cargo.toml b/lib/apps/fabro-mcp-server/Cargo.toml similarity index 59% rename from lib/crates/fabro-mcp-server/Cargo.toml rename to lib/apps/fabro-mcp-server/Cargo.toml index de3caa633..cdbf6b65f 100644 --- a/lib/crates/fabro-mcp-server/Cargo.toml +++ b/lib/apps/fabro-mcp-server/Cargo.toml @@ -15,15 +15,15 @@ workspace = true [dependencies] anyhow.workspace = true chrono = { workspace = true, features = ["serde"] } -fabro-api = { path = "../fabro-api" } -fabro-client = { path = "../fabro-client" } -fabro-manifest = { path = "../fabro-manifest" } -fabro-config = { path = "../fabro-config" } -fabro-model = { path = "../fabro-model" } +fabro-api = { path = "../../foundation/fabro-api" } +fabro-client = { path = "../../foundation/fabro-client" } +fabro-manifest = { path = "../../components/fabro-manifest" } +fabro-config = { path = "../../foundation/fabro-config" } +fabro-model = { path = "../../foundation/fabro-model" } fabro-server = { path = "../fabro-server" } -fabro-tool = { path = "../fabro-tool" } -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } +fabro-tool = { path = "../../components/fabro-tool" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } futures.workspace = true rmcp = { workspace = true, features = ["server", "macros", "schemars", "transport-io"] } schemars = "1.2.1" diff --git a/lib/crates/fabro-mcp-server/src/config.rs b/lib/apps/fabro-mcp-server/src/config.rs similarity index 100% rename from lib/crates/fabro-mcp-server/src/config.rs rename to lib/apps/fabro-mcp-server/src/config.rs diff --git a/lib/crates/fabro-mcp-server/src/lib.rs b/lib/apps/fabro-mcp-server/src/lib.rs similarity index 100% rename from lib/crates/fabro-mcp-server/src/lib.rs rename to lib/apps/fabro-mcp-server/src/lib.rs diff --git a/lib/crates/fabro-mcp-server/src/manifest_builder.rs b/lib/apps/fabro-mcp-server/src/manifest_builder.rs similarity index 100% rename from lib/crates/fabro-mcp-server/src/manifest_builder.rs rename to lib/apps/fabro-mcp-server/src/manifest_builder.rs diff --git a/lib/crates/fabro-mcp-server/src/server.rs b/lib/apps/fabro-mcp-server/src/server.rs similarity index 100% rename from lib/crates/fabro-mcp-server/src/server.rs rename to lib/apps/fabro-mcp-server/src/server.rs diff --git a/lib/crates/fabro-server/Cargo.toml b/lib/apps/fabro-server/Cargo.toml similarity index 56% rename from lib/crates/fabro-server/Cargo.toml rename to lib/apps/fabro-server/Cargo.toml index b951b339f..1f2c5bb61 100644 --- a/lib/crates/fabro-server/Cargo.toml +++ b/lib/apps/fabro-server/Cargo.toml @@ -21,35 +21,35 @@ required-features = ["test-support"] workspace = true [dependencies] -fabro-automation = { path = "../fabro-automation" } -fabro-auth = { path = "../fabro-auth" } -fabro-install = { path = "../fabro-install" } +fabro-automation = { path = "../../components/fabro-automation" } +fabro-auth = { path = "../../foundation/fabro-auth" } +fabro-install = { path = "../../components/fabro-install" } fabro-spa = { path = "../fabro-spa" } -fabro-config = { path = "../fabro-config" } +fabro-config = { path = "../../foundation/fabro-config" } fabro-environment.workspace = true -fabro-graphviz = { path = "../fabro-graphviz" } -fabro-hooks = { path = "../fabro-hooks" } -fabro-interview = { path = "../fabro-interview" } -fabro-slack = { path = "../fabro-slack" } -fabro-workflow = { path = "../fabro-workflow" } -fabro-validate = { path = "../fabro-validate" } -fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona", "docker"] } -fabro-github = { path = "../fabro-github" } -fabro-agent = { path = "../fabro-agent" } -fabro-llm = { path = "../fabro-llm" } -fabro-manifest = { path = "../fabro-manifest" } -fabro-mcp-store = { path = "../fabro-mcp-store" } -fabro-model = { path = "../fabro-model" } -fabro-proc = { path = "../fabro-proc" } -fabro-tool = { path = "../fabro-tool" } -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } -fabro-api = { path = "../fabro-api" } -fabro-client = { path = "../fabro-client" } -fabro-db = { path = "../fabro-db" } -fabro-store = { path = "../fabro-store" } -fabro-vault = { path = "../fabro-vault" } -fabro-variable = { path = "../fabro-variable" } +fabro-graphviz = { path = "../../components/fabro-graphviz" } +fabro-hooks = { path = "../../components/fabro-hooks" } +fabro-interview = { path = "../../components/fabro-interview" } +fabro-slack = { path = "../../components/fabro-slack" } +fabro-workflow = { path = "../../components/fabro-workflow" } +fabro-validate = { path = "../../components/fabro-validate" } +fabro-sandbox = { path = "../../components/fabro-sandbox", features = ["daytona", "docker"] } +fabro-github = { path = "../../components/fabro-github" } +fabro-agent = { path = "../../components/fabro-agent" } +fabro-llm = { path = "../../components/fabro-llm" } +fabro-manifest = { path = "../../components/fabro-manifest" } +fabro-mcp-store = { path = "../../components/fabro-mcp-store" } +fabro-model = { path = "../../foundation/fabro-model" } +fabro-proc = { path = "../../foundation/fabro-proc" } +fabro-tool = { path = "../../components/fabro-tool" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } +fabro-api = { path = "../../foundation/fabro-api" } +fabro-client = { path = "../../foundation/fabro-client" } +fabro-db = { path = "../../foundation/fabro-db" } +fabro-store = { path = "../../components/fabro-store" } +fabro-vault = { path = "../../foundation/fabro-vault" } +fabro-variable = { path = "../../components/fabro-variable" } fabro-http.workspace = true fabro-redact.workspace = true fabro-static.workspace = true @@ -104,7 +104,7 @@ strum.workspace = true sysinfo = { version = "0.35.2", default-features = false, features = ["system", "disk"] } [build-dependencies] -fabro-build-support = { path = "../build-support" } +fabro-build-support = { path = "../../foundation/build-support" } chrono = { workspace = true } [dev-dependencies] @@ -117,7 +117,7 @@ sqlx.workspace = true tracing-subscriber.workspace = true tokio-util.workspace = true tokio-tungstenite.workspace = true -fabro-macros = { path = "../fabro-macros" } -fabro-sandbox = { path = "../fabro-sandbox", features = ["test-support"] } +fabro-macros = { path = "../../foundation/fabro-macros" } +fabro-sandbox = { path = "../../components/fabro-sandbox", features = ["test-support"] } fabro-test = { workspace = true } -fabro-types = { path = "../fabro-types", features = ["test-support"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] } diff --git a/lib/crates/fabro-server/build.rs b/lib/apps/fabro-server/build.rs similarity index 100% rename from lib/crates/fabro-server/build.rs rename to lib/apps/fabro-server/build.rs diff --git a/lib/crates/fabro-server/migrations/2026051801_legacy_vault_entries.rs b/lib/apps/fabro-server/migrations/2026051801_legacy_vault_entries.rs similarity index 100% rename from lib/crates/fabro-server/migrations/2026051801_legacy_vault_entries.rs rename to lib/apps/fabro-server/migrations/2026051801_legacy_vault_entries.rs diff --git a/lib/crates/fabro-server/migrations/2026052501_optional_server_env_secrets_to_vault.rs b/lib/apps/fabro-server/migrations/2026052501_optional_server_env_secrets_to_vault.rs similarity index 100% rename from lib/crates/fabro-server/migrations/2026052501_optional_server_env_secrets_to_vault.rs rename to lib/apps/fabro-server/migrations/2026052501_optional_server_env_secrets_to_vault.rs diff --git a/lib/crates/fabro-server/src/auth/browser_shell.rs b/lib/apps/fabro-server/src/auth/browser_shell.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/browser_shell.rs rename to lib/apps/fabro-server/src/auth/browser_shell.rs diff --git a/lib/crates/fabro-server/src/auth/cli_flow.rs b/lib/apps/fabro-server/src/auth/cli_flow.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/cli_flow.rs rename to lib/apps/fabro-server/src/auth/cli_flow.rs diff --git a/lib/crates/fabro-server/src/auth/github_endpoints.rs b/lib/apps/fabro-server/src/auth/github_endpoints.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/github_endpoints.rs rename to lib/apps/fabro-server/src/auth/github_endpoints.rs diff --git a/lib/crates/fabro-server/src/auth/jwt.rs b/lib/apps/fabro-server/src/auth/jwt.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/jwt.rs rename to lib/apps/fabro-server/src/auth/jwt.rs diff --git a/lib/crates/fabro-server/src/auth/keys.rs b/lib/apps/fabro-server/src/auth/keys.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/keys.rs rename to lib/apps/fabro-server/src/auth/keys.rs diff --git a/lib/crates/fabro-server/src/auth/mod.rs b/lib/apps/fabro-server/src/auth/mod.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/mod.rs rename to lib/apps/fabro-server/src/auth/mod.rs diff --git a/lib/crates/fabro-server/src/auth/translate.rs b/lib/apps/fabro-server/src/auth/translate.rs similarity index 100% rename from lib/crates/fabro-server/src/auth/translate.rs rename to lib/apps/fabro-server/src/auth/translate.rs diff --git a/lib/crates/fabro-server/src/automation_materializer.rs b/lib/apps/fabro-server/src/automation_materializer.rs similarity index 100% rename from lib/crates/fabro-server/src/automation_materializer.rs rename to lib/apps/fabro-server/src/automation_materializer.rs diff --git a/lib/crates/fabro-server/src/canonical_host.rs b/lib/apps/fabro-server/src/canonical_host.rs similarity index 100% rename from lib/crates/fabro-server/src/canonical_host.rs rename to lib/apps/fabro-server/src/canonical_host.rs diff --git a/lib/crates/fabro-server/src/canonical_origin.rs b/lib/apps/fabro-server/src/canonical_origin.rs similarity index 100% rename from lib/crates/fabro-server/src/canonical_origin.rs rename to lib/apps/fabro-server/src/canonical_origin.rs diff --git a/lib/crates/fabro-server/src/csp.rs b/lib/apps/fabro-server/src/csp.rs similarity index 100% rename from lib/crates/fabro-server/src/csp.rs rename to lib/apps/fabro-server/src/csp.rs diff --git a/lib/crates/fabro-server/src/demo/mod.rs b/lib/apps/fabro-server/src/demo/mod.rs similarity index 100% rename from lib/crates/fabro-server/src/demo/mod.rs rename to lib/apps/fabro-server/src/demo/mod.rs diff --git a/lib/crates/fabro-server/src/diagnostics.rs b/lib/apps/fabro-server/src/diagnostics.rs similarity index 100% rename from lib/crates/fabro-server/src/diagnostics.rs rename to lib/apps/fabro-server/src/diagnostics.rs diff --git a/lib/crates/fabro-server/src/error.rs b/lib/apps/fabro-server/src/error.rs similarity index 100% rename from lib/crates/fabro-server/src/error.rs rename to lib/apps/fabro-server/src/error.rs diff --git a/lib/crates/fabro-server/src/git_checkout.rs b/lib/apps/fabro-server/src/git_checkout.rs similarity index 100% rename from lib/crates/fabro-server/src/git_checkout.rs rename to lib/apps/fabro-server/src/git_checkout.rs diff --git a/lib/crates/fabro-server/src/github_webhooks.rs b/lib/apps/fabro-server/src/github_webhooks.rs similarity index 100% rename from lib/crates/fabro-server/src/github_webhooks.rs rename to lib/apps/fabro-server/src/github_webhooks.rs diff --git a/lib/crates/fabro-server/src/install.rs b/lib/apps/fabro-server/src/install.rs similarity index 100% rename from lib/crates/fabro-server/src/install.rs rename to lib/apps/fabro-server/src/install.rs diff --git a/lib/crates/fabro-server/src/interp.rs b/lib/apps/fabro-server/src/interp.rs similarity index 100% rename from lib/crates/fabro-server/src/interp.rs rename to lib/apps/fabro-server/src/interp.rs diff --git a/lib/crates/fabro-server/src/jwt_auth.rs b/lib/apps/fabro-server/src/jwt_auth.rs similarity index 100% rename from lib/crates/fabro-server/src/jwt_auth.rs rename to lib/apps/fabro-server/src/jwt_auth.rs diff --git a/lib/crates/fabro-server/src/lib.rs b/lib/apps/fabro-server/src/lib.rs similarity index 100% rename from lib/crates/fabro-server/src/lib.rs rename to lib/apps/fabro-server/src/lib.rs diff --git a/lib/crates/fabro-server/src/manifest_validation.rs b/lib/apps/fabro-server/src/manifest_validation.rs similarity index 100% rename from lib/crates/fabro-server/src/manifest_validation.rs rename to lib/apps/fabro-server/src/manifest_validation.rs diff --git a/lib/crates/fabro-server/src/migrations.rs b/lib/apps/fabro-server/src/migrations.rs similarity index 100% rename from lib/crates/fabro-server/src/migrations.rs rename to lib/apps/fabro-server/src/migrations.rs diff --git a/lib/crates/fabro-server/src/principal_middleware.rs b/lib/apps/fabro-server/src/principal_middleware.rs similarity index 100% rename from lib/crates/fabro-server/src/principal_middleware.rs rename to lib/apps/fabro-server/src/principal_middleware.rs diff --git a/lib/crates/fabro-server/src/request_id.rs b/lib/apps/fabro-server/src/request_id.rs similarity index 100% rename from lib/crates/fabro-server/src/request_id.rs rename to lib/apps/fabro-server/src/request_id.rs diff --git a/lib/crates/fabro-server/src/run_files.rs b/lib/apps/fabro-server/src/run_files.rs similarity index 100% rename from lib/crates/fabro-server/src/run_files.rs rename to lib/apps/fabro-server/src/run_files.rs diff --git a/lib/crates/fabro-server/src/run_files_security.rs b/lib/apps/fabro-server/src/run_files_security.rs similarity index 100% rename from lib/crates/fabro-server/src/run_files_security.rs rename to lib/apps/fabro-server/src/run_files_security.rs diff --git a/lib/crates/fabro-server/src/run_manifest.rs b/lib/apps/fabro-server/src/run_manifest.rs similarity index 100% rename from lib/crates/fabro-server/src/run_manifest.rs rename to lib/apps/fabro-server/src/run_manifest.rs diff --git a/lib/crates/fabro-server/src/run_selector.rs b/lib/apps/fabro-server/src/run_selector.rs similarity index 100% rename from lib/crates/fabro-server/src/run_selector.rs rename to lib/apps/fabro-server/src/run_selector.rs diff --git a/lib/crates/fabro-server/src/run_title_generation.rs b/lib/apps/fabro-server/src/run_title_generation.rs similarity index 100% rename from lib/crates/fabro-server/src/run_title_generation.rs rename to lib/apps/fabro-server/src/run_title_generation.rs diff --git a/lib/crates/fabro-server/src/run_tool_manifest.rs b/lib/apps/fabro-server/src/run_tool_manifest.rs similarity index 100% rename from lib/crates/fabro-server/src/run_tool_manifest.rs rename to lib/apps/fabro-server/src/run_tool_manifest.rs diff --git a/lib/crates/fabro-server/src/security_headers.rs b/lib/apps/fabro-server/src/security_headers.rs similarity index 100% rename from lib/crates/fabro-server/src/security_headers.rs rename to lib/apps/fabro-server/src/security_headers.rs diff --git a/lib/crates/fabro-server/src/serve.rs b/lib/apps/fabro-server/src/serve.rs similarity index 100% rename from lib/crates/fabro-server/src/serve.rs rename to lib/apps/fabro-server/src/serve.rs diff --git a/lib/crates/fabro-server/src/server.rs b/lib/apps/fabro-server/src/server.rs similarity index 100% rename from lib/crates/fabro-server/src/server.rs rename to lib/apps/fabro-server/src/server.rs diff --git a/lib/crates/fabro-server/src/server/automation_scheduler.rs b/lib/apps/fabro-server/src/server/automation_scheduler.rs similarity index 100% rename from lib/crates/fabro-server/src/server/automation_scheduler.rs rename to lib/apps/fabro-server/src/server/automation_scheduler.rs diff --git a/lib/crates/fabro-server/src/server/handler/artifacts.rs b/lib/apps/fabro-server/src/server/handler/artifacts.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/artifacts.rs rename to lib/apps/fabro-server/src/server/handler/artifacts.rs diff --git a/lib/crates/fabro-server/src/server/handler/automations.rs b/lib/apps/fabro-server/src/server/handler/automations.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/automations.rs rename to lib/apps/fabro-server/src/server/handler/automations.rs diff --git a/lib/crates/fabro-server/src/server/handler/billing.rs b/lib/apps/fabro-server/src/server/handler/billing.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/billing.rs rename to lib/apps/fabro-server/src/server/handler/billing.rs diff --git a/lib/crates/fabro-server/src/server/handler/completions.rs b/lib/apps/fabro-server/src/server/handler/completions.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/completions.rs rename to lib/apps/fabro-server/src/server/handler/completions.rs diff --git a/lib/crates/fabro-server/src/server/handler/environments.rs b/lib/apps/fabro-server/src/server/handler/environments.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/environments.rs rename to lib/apps/fabro-server/src/server/handler/environments.rs diff --git a/lib/crates/fabro-server/src/server/handler/events.rs b/lib/apps/fabro-server/src/server/handler/events.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/events.rs rename to lib/apps/fabro-server/src/server/handler/events.rs diff --git a/lib/crates/fabro-server/src/server/handler/graph.rs b/lib/apps/fabro-server/src/server/handler/graph.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/graph.rs rename to lib/apps/fabro-server/src/server/handler/graph.rs diff --git a/lib/crates/fabro-server/src/server/handler/lifecycle.rs b/lib/apps/fabro-server/src/server/handler/lifecycle.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/lifecycle.rs rename to lib/apps/fabro-server/src/server/handler/lifecycle.rs diff --git a/lib/crates/fabro-server/src/server/handler/llm_sse.rs b/lib/apps/fabro-server/src/server/handler/llm_sse.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/llm_sse.rs rename to lib/apps/fabro-server/src/server/handler/llm_sse.rs diff --git a/lib/crates/fabro-server/src/server/handler/mcp_servers.rs b/lib/apps/fabro-server/src/server/handler/mcp_servers.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/mcp_servers.rs rename to lib/apps/fabro-server/src/server/handler/mcp_servers.rs diff --git a/lib/crates/fabro-server/src/server/handler/mod.rs b/lib/apps/fabro-server/src/server/handler/mod.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/mod.rs rename to lib/apps/fabro-server/src/server/handler/mod.rs diff --git a/lib/crates/fabro-server/src/server/handler/models.rs b/lib/apps/fabro-server/src/server/handler/models.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/models.rs rename to lib/apps/fabro-server/src/server/handler/models.rs diff --git a/lib/crates/fabro-server/src/server/handler/pair.rs b/lib/apps/fabro-server/src/server/handler/pair.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/pair.rs rename to lib/apps/fabro-server/src/server/handler/pair.rs diff --git a/lib/crates/fabro-server/src/server/handler/playground.rs b/lib/apps/fabro-server/src/server/handler/playground.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/playground.rs rename to lib/apps/fabro-server/src/server/handler/playground.rs diff --git a/lib/crates/fabro-server/src/server/handler/prompts/playground_system.md b/lib/apps/fabro-server/src/server/handler/prompts/playground_system.md similarity index 100% rename from lib/crates/fabro-server/src/server/handler/prompts/playground_system.md rename to lib/apps/fabro-server/src/server/handler/prompts/playground_system.md diff --git a/lib/crates/fabro-server/src/server/handler/pull_requests.rs b/lib/apps/fabro-server/src/server/handler/pull_requests.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/pull_requests.rs rename to lib/apps/fabro-server/src/server/handler/pull_requests.rs diff --git a/lib/crates/fabro-server/src/server/handler/runs.rs b/lib/apps/fabro-server/src/server/handler/runs.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/runs.rs rename to lib/apps/fabro-server/src/server/handler/runs.rs diff --git a/lib/crates/fabro-server/src/server/handler/sandbox.rs b/lib/apps/fabro-server/src/server/handler/sandbox.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/sandbox.rs rename to lib/apps/fabro-server/src/server/handler/sandbox.rs diff --git a/lib/crates/fabro-server/src/server/handler/sandboxes.rs b/lib/apps/fabro-server/src/server/handler/sandboxes.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/sandboxes.rs rename to lib/apps/fabro-server/src/server/handler/sandboxes.rs diff --git a/lib/crates/fabro-server/src/server/handler/secrets.rs b/lib/apps/fabro-server/src/server/handler/secrets.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/secrets.rs rename to lib/apps/fabro-server/src/server/handler/secrets.rs diff --git a/lib/crates/fabro-server/src/server/handler/sessions.rs b/lib/apps/fabro-server/src/server/handler/sessions.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/sessions.rs rename to lib/apps/fabro-server/src/server/handler/sessions.rs diff --git a/lib/crates/fabro-server/src/server/handler/steer.rs b/lib/apps/fabro-server/src/server/handler/steer.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/steer.rs rename to lib/apps/fabro-server/src/server/handler/steer.rs diff --git a/lib/crates/fabro-server/src/server/handler/system.rs b/lib/apps/fabro-server/src/server/handler/system.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/system.rs rename to lib/apps/fabro-server/src/server/handler/system.rs diff --git a/lib/crates/fabro-server/src/server/handler/variables.rs b/lib/apps/fabro-server/src/server/handler/variables.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/variables.rs rename to lib/apps/fabro-server/src/server/handler/variables.rs diff --git a/lib/crates/fabro-server/src/server/handler/worker_control.rs b/lib/apps/fabro-server/src/server/handler/worker_control.rs similarity index 100% rename from lib/crates/fabro-server/src/server/handler/worker_control.rs rename to lib/apps/fabro-server/src/server/handler/worker_control.rs diff --git a/lib/crates/fabro-server/src/server/resource_sampler.rs b/lib/apps/fabro-server/src/server/resource_sampler.rs similarity index 100% rename from lib/crates/fabro-server/src/server/resource_sampler.rs rename to lib/apps/fabro-server/src/server/resource_sampler.rs diff --git a/lib/crates/fabro-server/src/server/session_runtime.rs b/lib/apps/fabro-server/src/server/session_runtime.rs similarity index 100% rename from lib/crates/fabro-server/src/server/session_runtime.rs rename to lib/apps/fabro-server/src/server/session_runtime.rs diff --git a/lib/crates/fabro-server/src/server/tests.rs b/lib/apps/fabro-server/src/server/tests.rs similarity index 100% rename from lib/crates/fabro-server/src/server/tests.rs rename to lib/apps/fabro-server/src/server/tests.rs diff --git a/lib/crates/fabro-server/src/server_secrets.rs b/lib/apps/fabro-server/src/server_secrets.rs similarity index 100% rename from lib/crates/fabro-server/src/server_secrets.rs rename to lib/apps/fabro-server/src/server_secrets.rs diff --git a/lib/crates/fabro-server/src/spawn_env.rs b/lib/apps/fabro-server/src/spawn_env.rs similarity index 100% rename from lib/crates/fabro-server/src/spawn_env.rs rename to lib/apps/fabro-server/src/spawn_env.rs diff --git a/lib/crates/fabro-server/src/startup.rs b/lib/apps/fabro-server/src/startup.rs similarity index 100% rename from lib/crates/fabro-server/src/startup.rs rename to lib/apps/fabro-server/src/startup.rs diff --git a/lib/crates/fabro-server/src/static_files.rs b/lib/apps/fabro-server/src/static_files.rs similarity index 99% rename from lib/crates/fabro-server/src/static_files.rs rename to lib/apps/fabro-server/src/static_files.rs index cb5c500a2..b0a9e623e 100644 --- a/lib/crates/fabro-server/src/static_files.rs +++ b/lib/apps/fabro-server/src/static_files.rs @@ -632,7 +632,7 @@ mod tests { #[tokio::test] async fn dev_disk_only_does_not_fall_back_to_embedded() { // The embedded SPA snapshot has chunk-12xq903b.js (observed in - // lib/crates/fabro-spa/assets/index.html). In disk-only mode that + // lib/apps/fabro-spa/assets/index.html). In disk-only mode that // bytes-on-disk-or-503 contract must hold even for assets the // embedded snapshot would otherwise serve. let temp_dir = tempfile::tempdir().unwrap(); diff --git a/lib/crates/fabro-server/src/test_support.rs b/lib/apps/fabro-server/src/test_support.rs similarity index 100% rename from lib/crates/fabro-server/src/test_support.rs rename to lib/apps/fabro-server/src/test_support.rs diff --git a/lib/crates/fabro-server/src/web_auth.rs b/lib/apps/fabro-server/src/web_auth.rs similarity index 100% rename from lib/crates/fabro-server/src/web_auth.rs rename to lib/apps/fabro-server/src/web_auth.rs diff --git a/lib/crates/fabro-server/src/worker_control/bus.rs b/lib/apps/fabro-server/src/worker_control/bus.rs similarity index 100% rename from lib/crates/fabro-server/src/worker_control/bus.rs rename to lib/apps/fabro-server/src/worker_control/bus.rs diff --git a/lib/crates/fabro-server/src/worker_control/local.rs b/lib/apps/fabro-server/src/worker_control/local.rs similarity index 100% rename from lib/crates/fabro-server/src/worker_control/local.rs rename to lib/apps/fabro-server/src/worker_control/local.rs diff --git a/lib/crates/fabro-server/src/worker_control/mod.rs b/lib/apps/fabro-server/src/worker_control/mod.rs similarity index 100% rename from lib/crates/fabro-server/src/worker_control/mod.rs rename to lib/apps/fabro-server/src/worker_control/mod.rs diff --git a/lib/crates/fabro-server/src/worker_runtime.rs b/lib/apps/fabro-server/src/worker_runtime.rs similarity index 100% rename from lib/crates/fabro-server/src/worker_runtime.rs rename to lib/apps/fabro-server/src/worker_runtime.rs diff --git a/lib/crates/fabro-server/src/worker_token.rs b/lib/apps/fabro-server/src/worker_token.rs similarity index 100% rename from lib/crates/fabro-server/src/worker_token.rs rename to lib/apps/fabro-server/src/worker_token.rs diff --git a/lib/crates/fabro-server/tests/fixtures/spa/images/favicon.svg b/lib/apps/fabro-server/tests/fixtures/spa/images/favicon.svg similarity index 100% rename from lib/crates/fabro-server/tests/fixtures/spa/images/favicon.svg rename to lib/apps/fabro-server/tests/fixtures/spa/images/favicon.svg diff --git a/lib/crates/fabro-server/tests/fixtures/spa/index.html b/lib/apps/fabro-server/tests/fixtures/spa/index.html similarity index 100% rename from lib/crates/fabro-server/tests/fixtures/spa/index.html rename to lib/apps/fabro-server/tests/fixtures/spa/index.html diff --git a/lib/crates/fabro-server/tests/it/api/auth_sessions.rs b/lib/apps/fabro-server/tests/it/api/auth_sessions.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/auth_sessions.rs rename to lib/apps/fabro-server/tests/it/api/auth_sessions.rs diff --git a/lib/crates/fabro-server/tests/it/api/automations.rs b/lib/apps/fabro-server/tests/it/api/automations.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/automations.rs rename to lib/apps/fabro-server/tests/it/api/automations.rs diff --git a/lib/crates/fabro-server/tests/it/api/cli_auth_token.rs b/lib/apps/fabro-server/tests/it/api/cli_auth_token.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/cli_auth_token.rs rename to lib/apps/fabro-server/tests/it/api/cli_auth_token.rs diff --git a/lib/crates/fabro-server/tests/it/api/compression.rs b/lib/apps/fabro-server/tests/it/api/compression.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/compression.rs rename to lib/apps/fabro-server/tests/it/api/compression.rs diff --git a/lib/crates/fabro-server/tests/it/api/docs.rs b/lib/apps/fabro-server/tests/it/api/docs.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/docs.rs rename to lib/apps/fabro-server/tests/it/api/docs.rs diff --git a/lib/crates/fabro-server/tests/it/api/environments.rs b/lib/apps/fabro-server/tests/it/api/environments.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/environments.rs rename to lib/apps/fabro-server/tests/it/api/environments.rs diff --git a/lib/crates/fabro-server/tests/it/api/events.rs b/lib/apps/fabro-server/tests/it/api/events.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/events.rs rename to lib/apps/fabro-server/tests/it/api/events.rs diff --git a/lib/crates/fabro-server/tests/it/api/install.rs b/lib/apps/fabro-server/tests/it/api/install.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/install.rs rename to lib/apps/fabro-server/tests/it/api/install.rs diff --git a/lib/crates/fabro-server/tests/it/api/install_openai_compatible.rs b/lib/apps/fabro-server/tests/it/api/install_openai_compatible.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/install_openai_compatible.rs rename to lib/apps/fabro-server/tests/it/api/install_openai_compatible.rs diff --git a/lib/crates/fabro-server/tests/it/api/mcp_servers.rs b/lib/apps/fabro-server/tests/it/api/mcp_servers.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/mcp_servers.rs rename to lib/apps/fabro-server/tests/it/api/mcp_servers.rs diff --git a/lib/crates/fabro-server/tests/it/api/mod.rs b/lib/apps/fabro-server/tests/it/api/mod.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/mod.rs rename to lib/apps/fabro-server/tests/it/api/mod.rs diff --git a/lib/crates/fabro-server/tests/it/api/routing.rs b/lib/apps/fabro-server/tests/it/api/routing.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/routing.rs rename to lib/apps/fabro-server/tests/it/api/routing.rs diff --git a/lib/crates/fabro-server/tests/it/api/run_files.rs b/lib/apps/fabro-server/tests/it/api/run_files.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/run_files.rs rename to lib/apps/fabro-server/tests/it/api/run_files.rs diff --git a/lib/crates/fabro-server/tests/it/api/runs.rs b/lib/apps/fabro-server/tests/it/api/runs.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/runs.rs rename to lib/apps/fabro-server/tests/it/api/runs.rs diff --git a/lib/crates/fabro-server/tests/it/api/sandbox_vnc.rs b/lib/apps/fabro-server/tests/it/api/sandbox_vnc.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/sandbox_vnc.rs rename to lib/apps/fabro-server/tests/it/api/sandbox_vnc.rs diff --git a/lib/crates/fabro-server/tests/it/api/sessions.rs b/lib/apps/fabro-server/tests/it/api/sessions.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/sessions.rs rename to lib/apps/fabro-server/tests/it/api/sessions.rs diff --git a/lib/crates/fabro-server/tests/it/api/settings.rs b/lib/apps/fabro-server/tests/it/api/settings.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/settings.rs rename to lib/apps/fabro-server/tests/it/api/settings.rs diff --git a/lib/crates/fabro-server/tests/it/api/system.rs b/lib/apps/fabro-server/tests/it/api/system.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/system.rs rename to lib/apps/fabro-server/tests/it/api/system.rs diff --git a/lib/crates/fabro-server/tests/it/api/tcp.rs b/lib/apps/fabro-server/tests/it/api/tcp.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/tcp.rs rename to lib/apps/fabro-server/tests/it/api/tcp.rs diff --git a/lib/crates/fabro-server/tests/it/api/variables.rs b/lib/apps/fabro-server/tests/it/api/variables.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/api/variables.rs rename to lib/apps/fabro-server/tests/it/api/variables.rs diff --git a/lib/crates/fabro-server/tests/it/event_pagination.rs b/lib/apps/fabro-server/tests/it/event_pagination.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/event_pagination.rs rename to lib/apps/fabro-server/tests/it/event_pagination.rs diff --git a/lib/crates/fabro-server/tests/it/helpers.rs b/lib/apps/fabro-server/tests/it/helpers.rs similarity index 99% rename from lib/crates/fabro-server/tests/it/helpers.rs rename to lib/apps/fabro-server/tests/it/helpers.rs index 569f7e7d0..9ecf30bb8 100644 --- a/lib/crates/fabro-server/tests/it/helpers.rs +++ b/lib/apps/fabro-server/tests/it/helpers.rs @@ -142,7 +142,7 @@ pub(crate) fn repo_root() -> PathBuf { std::path::Path::new(env!("CARGO_MANIFEST_DIR")) .ancestors() .nth(3) - .expect("fabro-server crate should be nested under lib/crates/fabro-server") + .expect("fabro-server crate should be nested under lib/apps/fabro-server") .to_path_buf() } diff --git a/lib/crates/fabro-server/tests/it/main.rs b/lib/apps/fabro-server/tests/it/main.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/main.rs rename to lib/apps/fabro-server/tests/it/main.rs diff --git a/lib/crates/fabro-server/tests/it/openapi_conformance.rs b/lib/apps/fabro-server/tests/it/openapi_conformance.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/openapi_conformance.rs rename to lib/apps/fabro-server/tests/it/openapi_conformance.rs diff --git a/lib/crates/fabro-server/tests/it/pagination.rs b/lib/apps/fabro-server/tests/it/pagination.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/pagination.rs rename to lib/apps/fabro-server/tests/it/pagination.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/archive.rs b/lib/apps/fabro-server/tests/it/scenario/archive.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/archive.rs rename to lib/apps/fabro-server/tests/it/scenario/archive.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/dry_run.rs b/lib/apps/fabro-server/tests/it/scenario/dry_run.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/dry_run.rs rename to lib/apps/fabro-server/tests/it/scenario/dry_run.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/lifecycle.rs b/lib/apps/fabro-server/tests/it/scenario/lifecycle.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/lifecycle.rs rename to lib/apps/fabro-server/tests/it/scenario/lifecycle.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/mod.rs b/lib/apps/fabro-server/tests/it/scenario/mod.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/mod.rs rename to lib/apps/fabro-server/tests/it/scenario/mod.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/run_completion.rs b/lib/apps/fabro-server/tests/it/scenario/run_completion.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/run_completion.rs rename to lib/apps/fabro-server/tests/it/scenario/run_completion.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/sse.rs b/lib/apps/fabro-server/tests/it/scenario/sse.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/sse.rs rename to lib/apps/fabro-server/tests/it/scenario/sse.rs diff --git a/lib/crates/fabro-server/tests/it/scenario/usage.rs b/lib/apps/fabro-server/tests/it/scenario/usage.rs similarity index 100% rename from lib/crates/fabro-server/tests/it/scenario/usage.rs rename to lib/apps/fabro-server/tests/it/scenario/usage.rs diff --git a/lib/crates/fabro-spa/Cargo.toml b/lib/apps/fabro-spa/Cargo.toml similarity index 100% rename from lib/crates/fabro-spa/Cargo.toml rename to lib/apps/fabro-spa/Cargo.toml diff --git a/lib/crates/fabro-spa/assets/.gitkeep b/lib/apps/fabro-spa/assets/.gitkeep similarity index 100% rename from lib/crates/fabro-spa/assets/.gitkeep rename to lib/apps/fabro-spa/assets/.gitkeep diff --git a/lib/crates/fabro-spa/src/lib.rs b/lib/apps/fabro-spa/src/lib.rs similarity index 100% rename from lib/crates/fabro-spa/src/lib.rs rename to lib/apps/fabro-spa/src/lib.rs diff --git a/lib/crates/fabro-acp/Cargo.toml b/lib/components/fabro-acp/Cargo.toml similarity index 88% rename from lib/crates/fabro-acp/Cargo.toml rename to lib/components/fabro-acp/Cargo.toml index 2fb62b2d9..3e1962dbe 100644 --- a/lib/crates/fabro-acp/Cargo.toml +++ b/lib/components/fabro-acp/Cargo.toml @@ -28,8 +28,8 @@ workspace = true agent-client-protocol.workspace = true agent-client-protocol-tokio.workspace = true fabro-sandbox = { path = "../fabro-sandbox", optional = true } -fabro-types = { path = "../fabro-types", optional = true } -fabro-util = { path = "../fabro-util" } +fabro-types = { path = "../../foundation/fabro-types", optional = true } +fabro-util = { path = "../../foundation/fabro-util" } serde_json.workspace = true shlex = "1" thiserror.workspace = true diff --git a/lib/crates/fabro-acp/src/command.rs b/lib/components/fabro-acp/src/command.rs similarity index 100% rename from lib/crates/fabro-acp/src/command.rs rename to lib/components/fabro-acp/src/command.rs diff --git a/lib/crates/fabro-acp/src/error.rs b/lib/components/fabro-acp/src/error.rs similarity index 100% rename from lib/crates/fabro-acp/src/error.rs rename to lib/components/fabro-acp/src/error.rs diff --git a/lib/crates/fabro-acp/src/lib.rs b/lib/components/fabro-acp/src/lib.rs similarity index 100% rename from lib/crates/fabro-acp/src/lib.rs rename to lib/components/fabro-acp/src/lib.rs diff --git a/lib/crates/fabro-acp/src/session.rs b/lib/components/fabro-acp/src/session.rs similarity index 100% rename from lib/crates/fabro-acp/src/session.rs rename to lib/components/fabro-acp/src/session.rs diff --git a/lib/crates/fabro-acp/src/test_support.rs b/lib/components/fabro-acp/src/test_support.rs similarity index 100% rename from lib/crates/fabro-acp/src/test_support.rs rename to lib/components/fabro-acp/src/test_support.rs diff --git a/lib/crates/fabro-acp/src/transport.rs b/lib/components/fabro-acp/src/transport.rs similarity index 100% rename from lib/crates/fabro-acp/src/transport.rs rename to lib/components/fabro-acp/src/transport.rs diff --git a/lib/crates/fabro-acp/tests/session.rs b/lib/components/fabro-acp/tests/session.rs similarity index 100% rename from lib/crates/fabro-acp/tests/session.rs rename to lib/components/fabro-acp/tests/session.rs diff --git a/lib/crates/fabro-agent/Cargo.toml b/lib/components/fabro-agent/Cargo.toml similarity index 76% rename from lib/crates/fabro-agent/Cargo.toml rename to lib/components/fabro-agent/Cargo.toml index 89f836440..4982a8667 100644 --- a/lib/crates/fabro-agent/Cargo.toml +++ b/lib/components/fabro-agent/Cargo.toml @@ -24,16 +24,16 @@ workspace = true [dependencies] clap.workspace = true anyhow.workspace = true -fabro-auth = { path = "../fabro-auth" } -fabro-config = { path = "../fabro-config", features = ["clap"] } -fabro-types = { path = "../fabro-types", features = ["clap"] } +fabro-auth = { path = "../../foundation/fabro-auth" } +fabro-config = { path = "../../foundation/fabro-config", features = ["clap"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["clap"] } fabro-llm = { path = "../fabro-llm" } -fabro-model = { path = "../fabro-model" } +fabro-model = { path = "../../foundation/fabro-model" } fabro-mcp = { path = "../fabro-mcp" } fabro-sandbox = { path = "../fabro-sandbox" } fabro-static.workspace = true -fabro-util = { path = "../fabro-util" } -fabro-vault = { path = "../fabro-vault" } +fabro-util = { path = "../../foundation/fabro-util" } +fabro-vault = { path = "../../foundation/fabro-vault" } fabro-http.workspace = true thiserror.workspace = true serde.workspace = true @@ -61,6 +61,6 @@ tokio = { workspace = true, features = ["test-util", "macros"] } tempfile = "3" paste = "1" fabro-sandbox = { path = "../fabro-sandbox", features = ["test-support"] } -fabro-macros = { path = "../fabro-macros" } +fabro-macros = { path = "../../foundation/fabro-macros" } fabro-test = { workspace = true } tracing-subscriber.workspace = true diff --git a/lib/crates/fabro-agent/README.md b/lib/components/fabro-agent/README.md similarity index 100% rename from lib/crates/fabro-agent/README.md rename to lib/components/fabro-agent/README.md diff --git a/lib/crates/fabro-agent/src/agent_profile.rs b/lib/components/fabro-agent/src/agent_profile.rs similarity index 100% rename from lib/crates/fabro-agent/src/agent_profile.rs rename to lib/components/fabro-agent/src/agent_profile.rs diff --git a/lib/crates/fabro-agent/src/apply_patch.lark b/lib/components/fabro-agent/src/apply_patch.lark similarity index 100% rename from lib/crates/fabro-agent/src/apply_patch.lark rename to lib/components/fabro-agent/src/apply_patch.lark diff --git a/lib/crates/fabro-agent/src/apply_patch.rs b/lib/components/fabro-agent/src/apply_patch.rs similarity index 100% rename from lib/crates/fabro-agent/src/apply_patch.rs rename to lib/components/fabro-agent/src/apply_patch.rs diff --git a/lib/crates/fabro-agent/src/cli.rs b/lib/components/fabro-agent/src/cli.rs similarity index 100% rename from lib/crates/fabro-agent/src/cli.rs rename to lib/components/fabro-agent/src/cli.rs diff --git a/lib/crates/fabro-agent/src/compaction.rs b/lib/components/fabro-agent/src/compaction.rs similarity index 100% rename from lib/crates/fabro-agent/src/compaction.rs rename to lib/components/fabro-agent/src/compaction.rs diff --git a/lib/crates/fabro-agent/src/config.rs b/lib/components/fabro-agent/src/config.rs similarity index 100% rename from lib/crates/fabro-agent/src/config.rs rename to lib/components/fabro-agent/src/config.rs diff --git a/lib/crates/fabro-agent/src/context_window.rs b/lib/components/fabro-agent/src/context_window.rs similarity index 100% rename from lib/crates/fabro-agent/src/context_window.rs rename to lib/components/fabro-agent/src/context_window.rs diff --git a/lib/crates/fabro-agent/src/docker_sandbox.rs b/lib/components/fabro-agent/src/docker_sandbox.rs similarity index 100% rename from lib/crates/fabro-agent/src/docker_sandbox.rs rename to lib/components/fabro-agent/src/docker_sandbox.rs diff --git a/lib/crates/fabro-agent/src/error.rs b/lib/components/fabro-agent/src/error.rs similarity index 100% rename from lib/crates/fabro-agent/src/error.rs rename to lib/components/fabro-agent/src/error.rs diff --git a/lib/crates/fabro-agent/src/event.rs b/lib/components/fabro-agent/src/event.rs similarity index 100% rename from lib/crates/fabro-agent/src/event.rs rename to lib/components/fabro-agent/src/event.rs diff --git a/lib/crates/fabro-agent/src/file_tracker.rs b/lib/components/fabro-agent/src/file_tracker.rs similarity index 100% rename from lib/crates/fabro-agent/src/file_tracker.rs rename to lib/components/fabro-agent/src/file_tracker.rs diff --git a/lib/crates/fabro-agent/src/history.rs b/lib/components/fabro-agent/src/history.rs similarity index 100% rename from lib/crates/fabro-agent/src/history.rs rename to lib/components/fabro-agent/src/history.rs diff --git a/lib/crates/fabro-agent/src/lib.rs b/lib/components/fabro-agent/src/lib.rs similarity index 100% rename from lib/crates/fabro-agent/src/lib.rs rename to lib/components/fabro-agent/src/lib.rs diff --git a/lib/crates/fabro-agent/src/local_sandbox.rs b/lib/components/fabro-agent/src/local_sandbox.rs similarity index 100% rename from lib/crates/fabro-agent/src/local_sandbox.rs rename to lib/components/fabro-agent/src/local_sandbox.rs diff --git a/lib/crates/fabro-agent/src/loop_detection.rs b/lib/components/fabro-agent/src/loop_detection.rs similarity index 100% rename from lib/crates/fabro-agent/src/loop_detection.rs rename to lib/components/fabro-agent/src/loop_detection.rs diff --git a/lib/crates/fabro-agent/src/mcp_integration.rs b/lib/components/fabro-agent/src/mcp_integration.rs similarity index 100% rename from lib/crates/fabro-agent/src/mcp_integration.rs rename to lib/components/fabro-agent/src/mcp_integration.rs diff --git a/lib/crates/fabro-agent/src/memory.rs b/lib/components/fabro-agent/src/memory.rs similarity index 100% rename from lib/crates/fabro-agent/src/memory.rs rename to lib/components/fabro-agent/src/memory.rs diff --git a/lib/crates/fabro-agent/src/profiles/anthropic.rs b/lib/components/fabro-agent/src/profiles/anthropic.rs similarity index 100% rename from lib/crates/fabro-agent/src/profiles/anthropic.rs rename to lib/components/fabro-agent/src/profiles/anthropic.rs diff --git a/lib/crates/fabro-agent/src/profiles/gemini.rs b/lib/components/fabro-agent/src/profiles/gemini.rs similarity index 100% rename from lib/crates/fabro-agent/src/profiles/gemini.rs rename to lib/components/fabro-agent/src/profiles/gemini.rs diff --git a/lib/crates/fabro-agent/src/profiles/mod.rs b/lib/components/fabro-agent/src/profiles/mod.rs similarity index 100% rename from lib/crates/fabro-agent/src/profiles/mod.rs rename to lib/components/fabro-agent/src/profiles/mod.rs diff --git a/lib/crates/fabro-agent/src/profiles/openai.rs b/lib/components/fabro-agent/src/profiles/openai.rs similarity index 100% rename from lib/crates/fabro-agent/src/profiles/openai.rs rename to lib/components/fabro-agent/src/profiles/openai.rs diff --git a/lib/crates/fabro-agent/src/question_tools.rs b/lib/components/fabro-agent/src/question_tools.rs similarity index 100% rename from lib/crates/fabro-agent/src/question_tools.rs rename to lib/components/fabro-agent/src/question_tools.rs diff --git a/lib/crates/fabro-agent/src/read_before_write_sandbox.rs b/lib/components/fabro-agent/src/read_before_write_sandbox.rs similarity index 100% rename from lib/crates/fabro-agent/src/read_before_write_sandbox.rs rename to lib/components/fabro-agent/src/read_before_write_sandbox.rs diff --git a/lib/crates/fabro-agent/src/sandbox.rs b/lib/components/fabro-agent/src/sandbox.rs similarity index 100% rename from lib/crates/fabro-agent/src/sandbox.rs rename to lib/components/fabro-agent/src/sandbox.rs diff --git a/lib/crates/fabro-agent/src/session.rs b/lib/components/fabro-agent/src/session.rs similarity index 100% rename from lib/crates/fabro-agent/src/session.rs rename to lib/components/fabro-agent/src/session.rs diff --git a/lib/crates/fabro-agent/src/skills.rs b/lib/components/fabro-agent/src/skills.rs similarity index 100% rename from lib/crates/fabro-agent/src/skills.rs rename to lib/components/fabro-agent/src/skills.rs diff --git a/lib/crates/fabro-agent/src/subagent.rs b/lib/components/fabro-agent/src/subagent.rs similarity index 100% rename from lib/crates/fabro-agent/src/subagent.rs rename to lib/components/fabro-agent/src/subagent.rs diff --git a/lib/crates/fabro-agent/src/task_reminder.rs b/lib/components/fabro-agent/src/task_reminder.rs similarity index 100% rename from lib/crates/fabro-agent/src/task_reminder.rs rename to lib/components/fabro-agent/src/task_reminder.rs diff --git a/lib/crates/fabro-agent/src/test_support.rs b/lib/components/fabro-agent/src/test_support.rs similarity index 100% rename from lib/crates/fabro-agent/src/test_support.rs rename to lib/components/fabro-agent/src/test_support.rs diff --git a/lib/crates/fabro-agent/src/todo_runtime.rs b/lib/components/fabro-agent/src/todo_runtime.rs similarity index 100% rename from lib/crates/fabro-agent/src/todo_runtime.rs rename to lib/components/fabro-agent/src/todo_runtime.rs diff --git a/lib/crates/fabro-agent/src/todo_tools.rs b/lib/components/fabro-agent/src/todo_tools.rs similarity index 100% rename from lib/crates/fabro-agent/src/todo_tools.rs rename to lib/components/fabro-agent/src/todo_tools.rs diff --git a/lib/crates/fabro-agent/src/tool_execution.rs b/lib/components/fabro-agent/src/tool_execution.rs similarity index 100% rename from lib/crates/fabro-agent/src/tool_execution.rs rename to lib/components/fabro-agent/src/tool_execution.rs diff --git a/lib/crates/fabro-agent/src/tool_permissions.rs b/lib/components/fabro-agent/src/tool_permissions.rs similarity index 100% rename from lib/crates/fabro-agent/src/tool_permissions.rs rename to lib/components/fabro-agent/src/tool_permissions.rs diff --git a/lib/crates/fabro-agent/src/tool_registry.rs b/lib/components/fabro-agent/src/tool_registry.rs similarity index 100% rename from lib/crates/fabro-agent/src/tool_registry.rs rename to lib/components/fabro-agent/src/tool_registry.rs diff --git a/lib/crates/fabro-agent/src/tools.rs b/lib/components/fabro-agent/src/tools.rs similarity index 100% rename from lib/crates/fabro-agent/src/tools.rs rename to lib/components/fabro-agent/src/tools.rs diff --git a/lib/crates/fabro-agent/src/truncation.rs b/lib/components/fabro-agent/src/truncation.rs similarity index 100% rename from lib/crates/fabro-agent/src/truncation.rs rename to lib/components/fabro-agent/src/truncation.rs diff --git a/lib/crates/fabro-agent/src/types.rs b/lib/components/fabro-agent/src/types.rs similarity index 100% rename from lib/crates/fabro-agent/src/types.rs rename to lib/components/fabro-agent/src/types.rs diff --git a/lib/crates/fabro-agent/tests/it/compaction.rs b/lib/components/fabro-agent/tests/it/compaction.rs similarity index 100% rename from lib/crates/fabro-agent/tests/it/compaction.rs rename to lib/components/fabro-agent/tests/it/compaction.rs diff --git a/lib/crates/fabro-agent/tests/it/guardrails.rs b/lib/components/fabro-agent/tests/it/guardrails.rs similarity index 100% rename from lib/crates/fabro-agent/tests/it/guardrails.rs rename to lib/components/fabro-agent/tests/it/guardrails.rs diff --git a/lib/crates/fabro-agent/tests/it/main.rs b/lib/components/fabro-agent/tests/it/main.rs similarity index 100% rename from lib/crates/fabro-agent/tests/it/main.rs rename to lib/components/fabro-agent/tests/it/main.rs diff --git a/lib/crates/fabro-agent/tests/it/parity_matrix.rs b/lib/components/fabro-agent/tests/it/parity_matrix.rs similarity index 100% rename from lib/crates/fabro-agent/tests/it/parity_matrix.rs rename to lib/components/fabro-agent/tests/it/parity_matrix.rs diff --git a/lib/crates/fabro-automation/Cargo.toml b/lib/components/fabro-automation/Cargo.toml similarity index 92% rename from lib/crates/fabro-automation/Cargo.toml rename to lib/components/fabro-automation/Cargo.toml index 6284862e7..9b1b75575 100644 --- a/lib/crates/fabro-automation/Cargo.toml +++ b/lib/components/fabro-automation/Cargo.toml @@ -15,7 +15,7 @@ workspace = true [dependencies] chrono.workspace = true croner.workspace = true -fabro-db = { path = "../fabro-db" } +fabro-db = { path = "../../foundation/fabro-db" } hex.workspace = true serde.workspace = true sha2.workspace = true diff --git a/lib/crates/fabro-automation/migrations/2026071101_file_definitions_to_sqlite.rs b/lib/components/fabro-automation/migrations/2026071101_file_definitions_to_sqlite.rs similarity index 100% rename from lib/crates/fabro-automation/migrations/2026071101_file_definitions_to_sqlite.rs rename to lib/components/fabro-automation/migrations/2026071101_file_definitions_to_sqlite.rs diff --git a/lib/crates/fabro-automation/src/error.rs b/lib/components/fabro-automation/src/error.rs similarity index 100% rename from lib/crates/fabro-automation/src/error.rs rename to lib/components/fabro-automation/src/error.rs diff --git a/lib/crates/fabro-automation/src/id.rs b/lib/components/fabro-automation/src/id.rs similarity index 100% rename from lib/crates/fabro-automation/src/id.rs rename to lib/components/fabro-automation/src/id.rs diff --git a/lib/crates/fabro-automation/src/lib.rs b/lib/components/fabro-automation/src/lib.rs similarity index 100% rename from lib/crates/fabro-automation/src/lib.rs rename to lib/components/fabro-automation/src/lib.rs diff --git a/lib/crates/fabro-automation/src/migrations.rs b/lib/components/fabro-automation/src/migrations.rs similarity index 100% rename from lib/crates/fabro-automation/src/migrations.rs rename to lib/components/fabro-automation/src/migrations.rs diff --git a/lib/crates/fabro-automation/src/model.rs b/lib/components/fabro-automation/src/model.rs similarity index 100% rename from lib/crates/fabro-automation/src/model.rs rename to lib/components/fabro-automation/src/model.rs diff --git a/lib/crates/fabro-automation/src/store.rs b/lib/components/fabro-automation/src/store.rs similarity index 100% rename from lib/crates/fabro-automation/src/store.rs rename to lib/components/fabro-automation/src/store.rs diff --git a/lib/crates/fabro-automation/tests/store.rs b/lib/components/fabro-automation/tests/store.rs similarity index 100% rename from lib/crates/fabro-automation/tests/store.rs rename to lib/components/fabro-automation/tests/store.rs diff --git a/lib/crates/fabro-checkpoint/Cargo.toml b/lib/components/fabro-checkpoint/Cargo.toml similarity index 82% rename from lib/crates/fabro-checkpoint/Cargo.toml rename to lib/components/fabro-checkpoint/Cargo.toml index 3734d01fb..4578f5345 100644 --- a/lib/crates/fabro-checkpoint/Cargo.toml +++ b/lib/components/fabro-checkpoint/Cargo.toml @@ -14,9 +14,9 @@ doctest = false workspace = true [dependencies] -fabro-config = { path = "../fabro-config" } +fabro-config = { path = "../../foundation/fabro-config" } fabro-store = { path = "../fabro-store" } -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } git2.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/lib/crates/fabro-checkpoint/src/author.rs b/lib/components/fabro-checkpoint/src/author.rs similarity index 100% rename from lib/crates/fabro-checkpoint/src/author.rs rename to lib/components/fabro-checkpoint/src/author.rs diff --git a/lib/crates/fabro-checkpoint/src/branch.rs b/lib/components/fabro-checkpoint/src/branch.rs similarity index 100% rename from lib/crates/fabro-checkpoint/src/branch.rs rename to lib/components/fabro-checkpoint/src/branch.rs diff --git a/lib/crates/fabro-checkpoint/src/error.rs b/lib/components/fabro-checkpoint/src/error.rs similarity index 100% rename from lib/crates/fabro-checkpoint/src/error.rs rename to lib/components/fabro-checkpoint/src/error.rs diff --git a/lib/crates/fabro-checkpoint/src/git.rs b/lib/components/fabro-checkpoint/src/git.rs similarity index 100% rename from lib/crates/fabro-checkpoint/src/git.rs rename to lib/components/fabro-checkpoint/src/git.rs diff --git a/lib/crates/fabro-checkpoint/src/lib.rs b/lib/components/fabro-checkpoint/src/lib.rs similarity index 100% rename from lib/crates/fabro-checkpoint/src/lib.rs rename to lib/components/fabro-checkpoint/src/lib.rs diff --git a/lib/crates/fabro-checkpoint/src/trailer.rs b/lib/components/fabro-checkpoint/src/trailer.rs similarity index 100% rename from lib/crates/fabro-checkpoint/src/trailer.rs rename to lib/components/fabro-checkpoint/src/trailer.rs diff --git a/lib/crates/fabro-dump/Cargo.toml b/lib/components/fabro-dump/Cargo.toml similarity index 75% rename from lib/crates/fabro-dump/Cargo.toml rename to lib/components/fabro-dump/Cargo.toml index d45a6beb9..a630d7cd9 100644 --- a/lib/crates/fabro-dump/Cargo.toml +++ b/lib/components/fabro-dump/Cargo.toml @@ -15,11 +15,11 @@ workspace = true anyhow.workspace = true bytes.workspace = true fabro-store = { path = "../fabro-store" } -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } futures.workspace = true serde.workspace = true serde_json.workspace = true [dev-dependencies] chrono = { workspace = true, features = ["serde"] } -fabro-types = { path = "../fabro-types", features = ["test-support"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] } diff --git a/lib/crates/fabro-dump/src/lib.rs b/lib/components/fabro-dump/src/lib.rs similarity index 100% rename from lib/crates/fabro-dump/src/lib.rs rename to lib/components/fabro-dump/src/lib.rs diff --git a/lib/crates/fabro-environment/Cargo.toml b/lib/components/fabro-environment/Cargo.toml similarity index 80% rename from lib/crates/fabro-environment/Cargo.toml rename to lib/components/fabro-environment/Cargo.toml index ab06a442f..0c153ab04 100644 --- a/lib/crates/fabro-environment/Cargo.toml +++ b/lib/components/fabro-environment/Cargo.toml @@ -14,9 +14,9 @@ workspace = true [dependencies] chrono.workspace = true -fabro-db = { path = "../fabro-db" } -fabro-config = { path = "../fabro-config" } -fabro-types = { path = "../fabro-types" } +fabro-db = { path = "../../foundation/fabro-db" } +fabro-config = { path = "../../foundation/fabro-config" } +fabro-types = { path = "../../foundation/fabro-types" } hex.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/lib/crates/fabro-environment/src/error.rs b/lib/components/fabro-environment/src/error.rs similarity index 100% rename from lib/crates/fabro-environment/src/error.rs rename to lib/components/fabro-environment/src/error.rs diff --git a/lib/crates/fabro-environment/src/id.rs b/lib/components/fabro-environment/src/id.rs similarity index 100% rename from lib/crates/fabro-environment/src/id.rs rename to lib/components/fabro-environment/src/id.rs diff --git a/lib/crates/fabro-environment/src/lib.rs b/lib/components/fabro-environment/src/lib.rs similarity index 100% rename from lib/crates/fabro-environment/src/lib.rs rename to lib/components/fabro-environment/src/lib.rs diff --git a/lib/crates/fabro-environment/src/model.rs b/lib/components/fabro-environment/src/model.rs similarity index 100% rename from lib/crates/fabro-environment/src/model.rs rename to lib/components/fabro-environment/src/model.rs diff --git a/lib/crates/fabro-environment/src/store.rs b/lib/components/fabro-environment/src/store.rs similarity index 100% rename from lib/crates/fabro-environment/src/store.rs rename to lib/components/fabro-environment/src/store.rs diff --git a/lib/crates/fabro-environment/tests/store.rs b/lib/components/fabro-environment/tests/store.rs similarity index 100% rename from lib/crates/fabro-environment/tests/store.rs rename to lib/components/fabro-environment/tests/store.rs diff --git a/lib/crates/fabro-github/Cargo.toml b/lib/components/fabro-github/Cargo.toml similarity index 86% rename from lib/crates/fabro-github/Cargo.toml rename to lib/components/fabro-github/Cargo.toml index b953ee36c..9db73130e 100644 --- a/lib/crates/fabro-github/Cargo.toml +++ b/lib/components/fabro-github/Cargo.toml @@ -19,7 +19,7 @@ serde_json.workspace = true fabro-http.workspace = true fabro-redact.workspace = true fabro-static.workspace = true -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } jsonwebtoken.workspace = true chrono.workspace = true tracing.workspace = true @@ -28,7 +28,7 @@ base64.workspace = true thiserror.workspace = true [dev-dependencies] -fabro-macros = { path = "../fabro-macros" } +fabro-macros = { path = "../../foundation/fabro-macros" } fabro-test = { workspace = true } tokio = { workspace = true, features = ["test-util", "macros"] } tracing-subscriber.workspace = true diff --git a/lib/crates/fabro-github/src/lib.rs b/lib/components/fabro-github/src/lib.rs similarity index 100% rename from lib/crates/fabro-github/src/lib.rs rename to lib/components/fabro-github/src/lib.rs diff --git a/lib/crates/fabro-github/src/testdata/rsa_private.pem b/lib/components/fabro-github/src/testdata/rsa_private.pem similarity index 100% rename from lib/crates/fabro-github/src/testdata/rsa_private.pem rename to lib/components/fabro-github/src/testdata/rsa_private.pem diff --git a/lib/crates/fabro-github/tests/integration.rs b/lib/components/fabro-github/tests/integration.rs similarity index 100% rename from lib/crates/fabro-github/tests/integration.rs rename to lib/components/fabro-github/tests/integration.rs diff --git a/lib/crates/fabro-graphviz/Cargo.toml b/lib/components/fabro-graphviz/Cargo.toml similarity index 89% rename from lib/crates/fabro-graphviz/Cargo.toml rename to lib/components/fabro-graphviz/Cargo.toml index 3b33151d8..f78b3b9c2 100644 --- a/lib/crates/fabro-graphviz/Cargo.toml +++ b/lib/components/fabro-graphviz/Cargo.toml @@ -15,7 +15,7 @@ workspace = true [dependencies] anyhow.workspace = true graphviz-sys.workspace = true -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } nom = "7" regex = { workspace = true } serde = { workspace = true } diff --git a/lib/crates/fabro-graphviz/src/condition.rs b/lib/components/fabro-graphviz/src/condition.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/condition.rs rename to lib/components/fabro-graphviz/src/condition.rs diff --git a/lib/crates/fabro-graphviz/src/error.rs b/lib/components/fabro-graphviz/src/error.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/error.rs rename to lib/components/fabro-graphviz/src/error.rs diff --git a/lib/crates/fabro-graphviz/src/fidelity.rs b/lib/components/fabro-graphviz/src/fidelity.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/fidelity.rs rename to lib/components/fabro-graphviz/src/fidelity.rs diff --git a/lib/crates/fabro-graphviz/src/graph/mod.rs b/lib/components/fabro-graphviz/src/graph/mod.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/graph/mod.rs rename to lib/components/fabro-graphviz/src/graph/mod.rs diff --git a/lib/crates/fabro-graphviz/src/graph/types.rs b/lib/components/fabro-graphviz/src/graph/types.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/graph/types.rs rename to lib/components/fabro-graphviz/src/graph/types.rs diff --git a/lib/crates/fabro-graphviz/src/lib.rs b/lib/components/fabro-graphviz/src/lib.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/lib.rs rename to lib/components/fabro-graphviz/src/lib.rs diff --git a/lib/crates/fabro-graphviz/src/parser/ast.rs b/lib/components/fabro-graphviz/src/parser/ast.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/parser/ast.rs rename to lib/components/fabro-graphviz/src/parser/ast.rs diff --git a/lib/crates/fabro-graphviz/src/parser/grammar.rs b/lib/components/fabro-graphviz/src/parser/grammar.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/parser/grammar.rs rename to lib/components/fabro-graphviz/src/parser/grammar.rs diff --git a/lib/crates/fabro-graphviz/src/parser/lexer.rs b/lib/components/fabro-graphviz/src/parser/lexer.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/parser/lexer.rs rename to lib/components/fabro-graphviz/src/parser/lexer.rs diff --git a/lib/crates/fabro-graphviz/src/parser/mod.rs b/lib/components/fabro-graphviz/src/parser/mod.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/parser/mod.rs rename to lib/components/fabro-graphviz/src/parser/mod.rs diff --git a/lib/crates/fabro-graphviz/src/parser/semantic.rs b/lib/components/fabro-graphviz/src/parser/semantic.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/parser/semantic.rs rename to lib/components/fabro-graphviz/src/parser/semantic.rs diff --git a/lib/crates/fabro-graphviz/src/render.rs b/lib/components/fabro-graphviz/src/render.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/render.rs rename to lib/components/fabro-graphviz/src/render.rs diff --git a/lib/crates/fabro-graphviz/src/stylesheet.rs b/lib/components/fabro-graphviz/src/stylesheet.rs similarity index 100% rename from lib/crates/fabro-graphviz/src/stylesheet.rs rename to lib/components/fabro-graphviz/src/stylesheet.rs diff --git a/lib/crates/fabro-hooks/Cargo.toml b/lib/components/fabro-hooks/Cargo.toml similarity index 75% rename from lib/crates/fabro-hooks/Cargo.toml rename to lib/components/fabro-hooks/Cargo.toml index 559a7499a..02f25fdad 100644 --- a/lib/crates/fabro-hooks/Cargo.toml +++ b/lib/components/fabro-hooks/Cargo.toml @@ -14,12 +14,12 @@ workspace = true [dependencies] fabro-agent = { path = "../fabro-agent" } -fabro-auth = { path = "../fabro-auth" } +fabro-auth = { path = "../../foundation/fabro-auth" } fabro-llm = { path = "../fabro-llm" } -fabro-model = { path = "../fabro-model" } +fabro-model = { path = "../../foundation/fabro-model" } fabro-redact.workspace = true -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } fabro-http.workspace = true serde.workspace = true serde_json.workspace = true diff --git a/lib/crates/fabro-hooks/src/bridge.rs b/lib/components/fabro-hooks/src/bridge.rs similarity index 100% rename from lib/crates/fabro-hooks/src/bridge.rs rename to lib/components/fabro-hooks/src/bridge.rs diff --git a/lib/crates/fabro-hooks/src/config.rs b/lib/components/fabro-hooks/src/config.rs similarity index 100% rename from lib/crates/fabro-hooks/src/config.rs rename to lib/components/fabro-hooks/src/config.rs diff --git a/lib/crates/fabro-hooks/src/executor.rs b/lib/components/fabro-hooks/src/executor.rs similarity index 100% rename from lib/crates/fabro-hooks/src/executor.rs rename to lib/components/fabro-hooks/src/executor.rs diff --git a/lib/crates/fabro-hooks/src/lib.rs b/lib/components/fabro-hooks/src/lib.rs similarity index 100% rename from lib/crates/fabro-hooks/src/lib.rs rename to lib/components/fabro-hooks/src/lib.rs diff --git a/lib/crates/fabro-hooks/src/runner.rs b/lib/components/fabro-hooks/src/runner.rs similarity index 100% rename from lib/crates/fabro-hooks/src/runner.rs rename to lib/components/fabro-hooks/src/runner.rs diff --git a/lib/crates/fabro-hooks/src/types.rs b/lib/components/fabro-hooks/src/types.rs similarity index 100% rename from lib/crates/fabro-hooks/src/types.rs rename to lib/components/fabro-hooks/src/types.rs diff --git a/lib/crates/fabro-hooks/tests/host_command_hooks.rs b/lib/components/fabro-hooks/tests/host_command_hooks.rs similarity index 100% rename from lib/crates/fabro-hooks/tests/host_command_hooks.rs rename to lib/components/fabro-hooks/tests/host_command_hooks.rs diff --git a/lib/crates/fabro-install/Cargo.toml b/lib/components/fabro-install/Cargo.toml similarity index 61% rename from lib/crates/fabro-install/Cargo.toml rename to lib/components/fabro-install/Cargo.toml index ccdd8b38c..d5e9ec416 100644 --- a/lib/crates/fabro-install/Cargo.toml +++ b/lib/components/fabro-install/Cargo.toml @@ -15,13 +15,13 @@ base64.workspace = true ring = "0.17" toml.workspace = true tokio.workspace = true -fabro-config = { path = "../fabro-config" } -fabro-db = { path = "../fabro-db" } +fabro-config = { path = "../../foundation/fabro-config" } +fabro-db = { path = "../../foundation/fabro-db" } fabro-environment.workspace = true fabro-static.workspace = true -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } -fabro-vault = { path = "../fabro-vault" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } +fabro-vault = { path = "../../foundation/fabro-vault" } [dev-dependencies] tempfile = "3" diff --git a/lib/crates/fabro-install/src/lib.rs b/lib/components/fabro-install/src/lib.rs similarity index 100% rename from lib/crates/fabro-install/src/lib.rs rename to lib/components/fabro-install/src/lib.rs diff --git a/lib/crates/fabro-interview/Cargo.toml b/lib/components/fabro-interview/Cargo.toml similarity index 82% rename from lib/crates/fabro-interview/Cargo.toml rename to lib/components/fabro-interview/Cargo.toml index ed18ab877..4c450f54a 100644 --- a/lib/crates/fabro-interview/Cargo.toml +++ b/lib/components/fabro-interview/Cargo.toml @@ -19,8 +19,8 @@ async-trait.workspace = true tokio.workspace = true tracing.workspace = true dialoguer.workspace = true -fabro-util = { path = "../fabro-util" } -fabro-types = { path = "../fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } +fabro-types = { path = "../../foundation/fabro-types" } [dev-dependencies] tokio = { workspace = true, features = ["test-util", "macros"] } diff --git a/lib/crates/fabro-interview/src/auto_approve.rs b/lib/components/fabro-interview/src/auto_approve.rs similarity index 100% rename from lib/crates/fabro-interview/src/auto_approve.rs rename to lib/components/fabro-interview/src/auto_approve.rs diff --git a/lib/crates/fabro-interview/src/callback.rs b/lib/components/fabro-interview/src/callback.rs similarity index 100% rename from lib/crates/fabro-interview/src/callback.rs rename to lib/components/fabro-interview/src/callback.rs diff --git a/lib/crates/fabro-interview/src/console.rs b/lib/components/fabro-interview/src/console.rs similarity index 100% rename from lib/crates/fabro-interview/src/console.rs rename to lib/components/fabro-interview/src/console.rs diff --git a/lib/crates/fabro-interview/src/control.rs b/lib/components/fabro-interview/src/control.rs similarity index 100% rename from lib/crates/fabro-interview/src/control.rs rename to lib/components/fabro-interview/src/control.rs diff --git a/lib/crates/fabro-interview/src/control_protocol.rs b/lib/components/fabro-interview/src/control_protocol.rs similarity index 100% rename from lib/crates/fabro-interview/src/control_protocol.rs rename to lib/components/fabro-interview/src/control_protocol.rs diff --git a/lib/crates/fabro-interview/src/lib.rs b/lib/components/fabro-interview/src/lib.rs similarity index 100% rename from lib/crates/fabro-interview/src/lib.rs rename to lib/components/fabro-interview/src/lib.rs diff --git a/lib/crates/fabro-interview/src/queue.rs b/lib/components/fabro-interview/src/queue.rs similarity index 100% rename from lib/crates/fabro-interview/src/queue.rs rename to lib/components/fabro-interview/src/queue.rs diff --git a/lib/crates/fabro-interview/src/recording.rs b/lib/components/fabro-interview/src/recording.rs similarity index 100% rename from lib/crates/fabro-interview/src/recording.rs rename to lib/components/fabro-interview/src/recording.rs diff --git a/lib/crates/fabro-interview/src/replay.rs b/lib/components/fabro-interview/src/replay.rs similarity index 100% rename from lib/crates/fabro-interview/src/replay.rs rename to lib/components/fabro-interview/src/replay.rs diff --git a/lib/crates/fabro-llm/Cargo.toml b/lib/components/fabro-llm/Cargo.toml similarity index 82% rename from lib/crates/fabro-llm/Cargo.toml rename to lib/components/fabro-llm/Cargo.toml index 9146976b6..b10321253 100644 --- a/lib/crates/fabro-llm/Cargo.toml +++ b/lib/components/fabro-llm/Cargo.toml @@ -39,12 +39,12 @@ aws-smithy-eventstream.workspace = true aws-smithy-runtime-api.workspace = true aws-smithy-types.workspace = true fabro-http.workspace = true -fabro-auth = { path = "../fabro-auth" } -fabro-model = { path = "../fabro-model" } +fabro-auth = { path = "../../foundation/fabro-auth" } +fabro-model = { path = "../../foundation/fabro-model" } fabro-redact.workspace = true fabro-static.workspace = true -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } [dev-dependencies] http = "1" @@ -53,6 +53,6 @@ tokio = { workspace = true, features = ["test-util", "macros"] } httpmock = "0.8" serde_json.workspace = true toml.workspace = true -fabro-macros = { path = "../fabro-macros" } +fabro-macros = { path = "../../foundation/fabro-macros" } fabro-test = { workspace = true } tracing-subscriber.workspace = true diff --git a/lib/crates/fabro-llm/README.md b/lib/components/fabro-llm/README.md similarity index 100% rename from lib/crates/fabro-llm/README.md rename to lib/components/fabro-llm/README.md diff --git a/lib/crates/fabro-llm/src/adapter_registry.rs b/lib/components/fabro-llm/src/adapter_registry.rs similarity index 100% rename from lib/crates/fabro-llm/src/adapter_registry.rs rename to lib/components/fabro-llm/src/adapter_registry.rs diff --git a/lib/crates/fabro-llm/src/attachments.rs b/lib/components/fabro-llm/src/attachments.rs similarity index 100% rename from lib/crates/fabro-llm/src/attachments.rs rename to lib/components/fabro-llm/src/attachments.rs diff --git a/lib/crates/fabro-llm/src/client.rs b/lib/components/fabro-llm/src/client.rs similarity index 100% rename from lib/crates/fabro-llm/src/client.rs rename to lib/components/fabro-llm/src/client.rs diff --git a/lib/crates/fabro-llm/src/codec/anthropic_messages/decode.rs b/lib/components/fabro-llm/src/codec/anthropic_messages/decode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/anthropic_messages/decode.rs rename to lib/components/fabro-llm/src/codec/anthropic_messages/decode.rs diff --git a/lib/crates/fabro-llm/src/codec/anthropic_messages/encode.rs b/lib/components/fabro-llm/src/codec/anthropic_messages/encode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/anthropic_messages/encode.rs rename to lib/components/fabro-llm/src/codec/anthropic_messages/encode.rs diff --git a/lib/crates/fabro-llm/src/codec/anthropic_messages/mod.rs b/lib/components/fabro-llm/src/codec/anthropic_messages/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/anthropic_messages/mod.rs rename to lib/components/fabro-llm/src/codec/anthropic_messages/mod.rs diff --git a/lib/crates/fabro-llm/src/codec/anthropic_messages/stream.rs b/lib/components/fabro-llm/src/codec/anthropic_messages/stream.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/anthropic_messages/stream.rs rename to lib/components/fabro-llm/src/codec/anthropic_messages/stream.rs diff --git a/lib/crates/fabro-llm/src/codec/anthropic_messages/wire.rs b/lib/components/fabro-llm/src/codec/anthropic_messages/wire.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/anthropic_messages/wire.rs rename to lib/components/fabro-llm/src/codec/anthropic_messages/wire.rs diff --git a/lib/crates/fabro-llm/src/codec/bedrock_converse/decode.rs b/lib/components/fabro-llm/src/codec/bedrock_converse/decode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/bedrock_converse/decode.rs rename to lib/components/fabro-llm/src/codec/bedrock_converse/decode.rs diff --git a/lib/crates/fabro-llm/src/codec/bedrock_converse/encode.rs b/lib/components/fabro-llm/src/codec/bedrock_converse/encode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/bedrock_converse/encode.rs rename to lib/components/fabro-llm/src/codec/bedrock_converse/encode.rs diff --git a/lib/crates/fabro-llm/src/codec/bedrock_converse/mod.rs b/lib/components/fabro-llm/src/codec/bedrock_converse/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/bedrock_converse/mod.rs rename to lib/components/fabro-llm/src/codec/bedrock_converse/mod.rs diff --git a/lib/crates/fabro-llm/src/codec/bedrock_converse/stream.rs b/lib/components/fabro-llm/src/codec/bedrock_converse/stream.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/bedrock_converse/stream.rs rename to lib/components/fabro-llm/src/codec/bedrock_converse/stream.rs diff --git a/lib/crates/fabro-llm/src/codec/gemini_generate/decode.rs b/lib/components/fabro-llm/src/codec/gemini_generate/decode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/gemini_generate/decode.rs rename to lib/components/fabro-llm/src/codec/gemini_generate/decode.rs diff --git a/lib/crates/fabro-llm/src/codec/gemini_generate/encode.rs b/lib/components/fabro-llm/src/codec/gemini_generate/encode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/gemini_generate/encode.rs rename to lib/components/fabro-llm/src/codec/gemini_generate/encode.rs diff --git a/lib/crates/fabro-llm/src/codec/gemini_generate/mod.rs b/lib/components/fabro-llm/src/codec/gemini_generate/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/gemini_generate/mod.rs rename to lib/components/fabro-llm/src/codec/gemini_generate/mod.rs diff --git a/lib/crates/fabro-llm/src/codec/gemini_generate/stream.rs b/lib/components/fabro-llm/src/codec/gemini_generate/stream.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/gemini_generate/stream.rs rename to lib/components/fabro-llm/src/codec/gemini_generate/stream.rs diff --git a/lib/crates/fabro-llm/src/codec/gemini_generate/wire.rs b/lib/components/fabro-llm/src/codec/gemini_generate/wire.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/gemini_generate/wire.rs rename to lib/components/fabro-llm/src/codec/gemini_generate/wire.rs diff --git a/lib/crates/fabro-llm/src/codec/mod.rs b/lib/components/fabro-llm/src/codec/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/mod.rs rename to lib/components/fabro-llm/src/codec/mod.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_compatible/mod.rs b/lib/components/fabro-llm/src/codec/openai_compatible/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_compatible/mod.rs rename to lib/components/fabro-llm/src/codec/openai_compatible/mod.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_compatible/request.rs b/lib/components/fabro-llm/src/codec/openai_compatible/request.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_compatible/request.rs rename to lib/components/fabro-llm/src/codec/openai_compatible/request.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_compatible/response.rs b/lib/components/fabro-llm/src/codec/openai_compatible/response.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_compatible/response.rs rename to lib/components/fabro-llm/src/codec/openai_compatible/response.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_compatible/stream.rs b/lib/components/fabro-llm/src/codec/openai_compatible/stream.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_compatible/stream.rs rename to lib/components/fabro-llm/src/codec/openai_compatible/stream.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_compatible/translate.rs b/lib/components/fabro-llm/src/codec/openai_compatible/translate.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_compatible/translate.rs rename to lib/components/fabro-llm/src/codec/openai_compatible/translate.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_compatible/wire.rs b/lib/components/fabro-llm/src/codec/openai_compatible/wire.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_compatible/wire.rs rename to lib/components/fabro-llm/src/codec/openai_compatible/wire.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_responses/decode.rs b/lib/components/fabro-llm/src/codec/openai_responses/decode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_responses/decode.rs rename to lib/components/fabro-llm/src/codec/openai_responses/decode.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_responses/encode.rs b/lib/components/fabro-llm/src/codec/openai_responses/encode.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_responses/encode.rs rename to lib/components/fabro-llm/src/codec/openai_responses/encode.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_responses/mod.rs b/lib/components/fabro-llm/src/codec/openai_responses/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_responses/mod.rs rename to lib/components/fabro-llm/src/codec/openai_responses/mod.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_responses/stream.rs b/lib/components/fabro-llm/src/codec/openai_responses/stream.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_responses/stream.rs rename to lib/components/fabro-llm/src/codec/openai_responses/stream.rs diff --git a/lib/crates/fabro-llm/src/codec/openai_responses/wire.rs b/lib/components/fabro-llm/src/codec/openai_responses/wire.rs similarity index 100% rename from lib/crates/fabro-llm/src/codec/openai_responses/wire.rs rename to lib/components/fabro-llm/src/codec/openai_responses/wire.rs diff --git a/lib/crates/fabro-llm/src/cost.rs b/lib/components/fabro-llm/src/cost.rs similarity index 100% rename from lib/crates/fabro-llm/src/cost.rs rename to lib/components/fabro-llm/src/cost.rs diff --git a/lib/crates/fabro-llm/src/error.rs b/lib/components/fabro-llm/src/error.rs similarity index 100% rename from lib/crates/fabro-llm/src/error.rs rename to lib/components/fabro-llm/src/error.rs diff --git a/lib/crates/fabro-llm/src/generate.rs b/lib/components/fabro-llm/src/generate.rs similarity index 100% rename from lib/crates/fabro-llm/src/generate.rs rename to lib/components/fabro-llm/src/generate.rs diff --git a/lib/crates/fabro-llm/src/lib.rs b/lib/components/fabro-llm/src/lib.rs similarity index 100% rename from lib/crates/fabro-llm/src/lib.rs rename to lib/components/fabro-llm/src/lib.rs diff --git a/lib/crates/fabro-llm/src/middleware.rs b/lib/components/fabro-llm/src/middleware.rs similarity index 100% rename from lib/crates/fabro-llm/src/middleware.rs rename to lib/components/fabro-llm/src/middleware.rs diff --git a/lib/crates/fabro-llm/src/model_test.rs b/lib/components/fabro-llm/src/model_test.rs similarity index 100% rename from lib/crates/fabro-llm/src/model_test.rs rename to lib/components/fabro-llm/src/model_test.rs diff --git a/lib/crates/fabro-llm/src/provider.rs b/lib/components/fabro-llm/src/provider.rs similarity index 100% rename from lib/crates/fabro-llm/src/provider.rs rename to lib/components/fabro-llm/src/provider.rs diff --git a/lib/crates/fabro-llm/src/providers/anthropic.rs b/lib/components/fabro-llm/src/providers/anthropic.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/anthropic.rs rename to lib/components/fabro-llm/src/providers/anthropic.rs diff --git a/lib/crates/fabro-llm/src/providers/bedrock/eventstream.rs b/lib/components/fabro-llm/src/providers/bedrock/eventstream.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/bedrock/eventstream.rs rename to lib/components/fabro-llm/src/providers/bedrock/eventstream.rs diff --git a/lib/crates/fabro-llm/src/providers/bedrock/mod.rs b/lib/components/fabro-llm/src/providers/bedrock/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/bedrock/mod.rs rename to lib/components/fabro-llm/src/providers/bedrock/mod.rs diff --git a/lib/crates/fabro-llm/src/providers/bedrock/sigv4.rs b/lib/components/fabro-llm/src/providers/bedrock/sigv4.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/bedrock/sigv4.rs rename to lib/components/fabro-llm/src/providers/bedrock/sigv4.rs diff --git a/lib/crates/fabro-llm/src/providers/common.rs b/lib/components/fabro-llm/src/providers/common.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/common.rs rename to lib/components/fabro-llm/src/providers/common.rs diff --git a/lib/crates/fabro-llm/src/providers/fabro_server.rs b/lib/components/fabro-llm/src/providers/fabro_server.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/fabro_server.rs rename to lib/components/fabro-llm/src/providers/fabro_server.rs diff --git a/lib/crates/fabro-llm/src/providers/gemini.rs b/lib/components/fabro-llm/src/providers/gemini.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/gemini.rs rename to lib/components/fabro-llm/src/providers/gemini.rs diff --git a/lib/crates/fabro-llm/src/providers/mod.rs b/lib/components/fabro-llm/src/providers/mod.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/mod.rs rename to lib/components/fabro-llm/src/providers/mod.rs diff --git a/lib/crates/fabro-llm/src/providers/openai.rs b/lib/components/fabro-llm/src/providers/openai.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/openai.rs rename to lib/components/fabro-llm/src/providers/openai.rs diff --git a/lib/crates/fabro-llm/src/providers/openai_compatible.rs b/lib/components/fabro-llm/src/providers/openai_compatible.rs similarity index 100% rename from lib/crates/fabro-llm/src/providers/openai_compatible.rs rename to lib/components/fabro-llm/src/providers/openai_compatible.rs diff --git a/lib/crates/fabro-llm/src/retry.rs b/lib/components/fabro-llm/src/retry.rs similarity index 100% rename from lib/crates/fabro-llm/src/retry.rs rename to lib/components/fabro-llm/src/retry.rs diff --git a/lib/crates/fabro-llm/src/token_count.rs b/lib/components/fabro-llm/src/token_count.rs similarity index 100% rename from lib/crates/fabro-llm/src/token_count.rs rename to lib/components/fabro-llm/src/token_count.rs diff --git a/lib/crates/fabro-llm/src/tools.rs b/lib/components/fabro-llm/src/tools.rs similarity index 100% rename from lib/crates/fabro-llm/src/tools.rs rename to lib/components/fabro-llm/src/tools.rs diff --git a/lib/crates/fabro-llm/src/transport.rs b/lib/components/fabro-llm/src/transport.rs similarity index 100% rename from lib/crates/fabro-llm/src/transport.rs rename to lib/components/fabro-llm/src/transport.rs diff --git a/lib/crates/fabro-llm/src/types.rs b/lib/components/fabro-llm/src/types.rs similarity index 100% rename from lib/crates/fabro-llm/src/types.rs rename to lib/components/fabro-llm/src/types.rs diff --git a/lib/crates/fabro-llm/tests/integration.rs b/lib/components/fabro-llm/tests/integration.rs similarity index 100% rename from lib/crates/fabro-llm/tests/integration.rs rename to lib/components/fabro-llm/tests/integration.rs diff --git a/lib/crates/fabro-llm/tests/it/main.rs b/lib/components/fabro-llm/tests/it/main.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/main.rs rename to lib/components/fabro-llm/tests/it/main.rs diff --git a/lib/crates/fabro-llm/tests/it/support.rs b/lib/components/fabro-llm/tests/it/support.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/support.rs rename to lib/components/fabro-llm/tests/it/support.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/anthropic.rs b/lib/components/fabro-llm/tests/it/wire/anthropic.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/wire/anthropic.rs rename to lib/components/fabro-llm/tests/it/wire/anthropic.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/gemini.rs b/lib/components/fabro-llm/tests/it/wire/gemini.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/wire/gemini.rs rename to lib/components/fabro-llm/tests/it/wire/gemini.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/mod.rs b/lib/components/fabro-llm/tests/it/wire/mod.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/wire/mod.rs rename to lib/components/fabro-llm/tests/it/wire/mod.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs b/lib/components/fabro-llm/tests/it/wire/openai_compatible.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs rename to lib/components/fabro-llm/tests/it/wire/openai_compatible.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/openai_responses.rs b/lib/components/fabro-llm/tests/it/wire/openai_responses.rs similarity index 100% rename from lib/crates/fabro-llm/tests/it/wire/openai_responses.rs rename to lib/components/fabro-llm/tests/it/wire/openai_responses.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap index 566a6a703..c3b630136 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__count_tokens_wire_shape.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap similarity index 76% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap index a51d0f135..9fb304d73 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_error_identity.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap index 187e2db49..6bb0e2544 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_identity.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap index 425a60a06..4620d7897 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__custom_named_stream_route.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap index c03f511a7..b10bff658 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_max_tokens_stop_reason.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap index ca01b2a8d..bf89303f3 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_thinking_and_redacted_thinking.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap index b450339fc..2c1ec7d19 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__decode_tool_use_stop_reason.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap similarity index 86% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap index 69a05af0e..54793a2b6 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_audio_attachment.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap similarity index 82% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap index 498b4748b..c2c0acfb3 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_bad_file_path_attachments_dropped.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap index 443e1e221..5fda9d667 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_inline_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap index bc576585a..6042822b8 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_multi_turn.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap index f29eca145..5a6979bd6 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_prompt_cache_with_catalog.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap similarity index 82% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap index 1475f5820..5c5107443 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_provider_options_anthropic_namespace.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap similarity index 85% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap index 59e4b54ef..45d4779ed 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_reasoning_effort_with_levels_catalog.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap similarity index 84% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap index fe60412fb..f505a20d9 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_object.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap index e757af0a9..b8c0aa6a1 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_response_format_json_schema.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap similarity index 86% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap index b50a93df6..c4abd0eda 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_sampling_params.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap index 5fedc6ff1..1619de37c 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_thinking_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap index d181d4796..552c709ce 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_auto.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap index 5d7d5214b..868f115d1 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_named.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap similarity index 81% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap index 4fbbbaa5f..b9119a960 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_none.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap index b114a2048..35eb0a281 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_choice_required.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap index f744b1d64..50cce34a4 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_tool_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap index f4abc02be..438fbc222 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__encode_url_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap similarity index 76% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap index d2b78a3a2..6c8cc6f1a 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_error_event_mid_stream.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap index 5456021f0..04d15c0b8 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_events.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap similarity index 82% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap index 8b641b028..508c9c998 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_text_happy_path_request.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap index a7987f9e5..68e599c83 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_thinking_with_signature_delta.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap index 9eaa938d8..18c46f075 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_tool_call_deltas.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap similarity index 81% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap index a12eec3d6..d2f4d0df0 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__stream_without_message_stop_emits_no_finish.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap index 1d0a970e5..f4afb357d 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_decode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap index 63678178e..50f5a4167 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__anthropic__system_and_tools_encode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/anthropic.rs +source: lib/components/fabro-llm/tests/it/wire/anthropic.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap index 4056e3979..2d75a657c 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__count_tokens_wire_shape.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap similarity index 71% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap index 44df522ff..3f983d663 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_http_error_identity.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap index 2f0106cc6..121057409 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__custom_named_stream_identity.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap index b0aa96702..751e5782b 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_function_call_with_thought_signature.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap new file mode 100644 index 000000000..a8a887691 --- /dev/null +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap @@ -0,0 +1,5 @@ +--- +source: lib/components/fabro-llm/tests/it/wire/gemini.rs +expression: rendered +--- +"length" diff --git a/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap new file mode 100644 index 000000000..627e69083 --- /dev/null +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap @@ -0,0 +1,5 @@ +--- +source: lib/components/fabro-llm/tests/it/wire/gemini.rs +expression: rendered +--- +"content_filter" diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap index 4a45d6508..b20aec438 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_thought_parts.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap index eacc7a47f..d32b27d72 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_usage_arithmetic.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap similarity index 89% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap index d3f6c4a7f..03246da8b 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_audio_attachment.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap similarity index 86% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap index b4605fdbb..a27b54528 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_bad_file_path_attachments_dropped.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap index 130c517ee..2db4f67e3 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_inline_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap index af95759cb..a8a547cd6 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_multi_turn.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap similarity index 80% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap index 105e76111..6e2744c76 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_can_override_safety_settings.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap similarity index 87% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap index e6b616613..71baf9f7a 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_provider_options_gemini_namespace.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap similarity index 85% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap index 83f70e81f..2e71f5623 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_reasoning_effort_with_levels_catalog.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap similarity index 87% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap index d16ceda4c..e04165dfd 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_object.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap similarity index 90% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap index 7a6a39742..e8fc16720 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_response_format_json_schema.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap similarity index 88% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap index 1e9350fcd..87e6756df 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_sampling_params.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap index c0cdbd040..20f0d4724 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_thinking_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap index 186a9afce..9682d4bd0 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_auto.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap index d31af7c7d..ebab86778 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_named.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap index 7bb3b0bfa..9e7fe12ce 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_none.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap index 7832bc141..0fee7b81d 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_choice_required.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap similarity index 97% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap index d0fdee6ce..245c3cd85 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_tool_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap index dcf7ef4e2..c3f9bdee7 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__encode_url_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap index de753baf2..5ceb7e1d0 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_end_synthesizes_finish_without_finish_reason.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap index 7ff680eb5..22807bad4 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_function_call.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap index f3db67d70..f240b1c76 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_events.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap index cb853aaf9..90edf2a99 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_text_happy_path_request.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap index 88f094ab8..bf9e067fd 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__stream_thought_parts.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap index e6748c07e..f5e0bd096 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_decode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap index c6d3c6a48..2a445751f 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__system_and_tools_encode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs +source: lib/components/fabro-llm/tests/it/wire/gemini.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap index ff075964d..bd1327b8f 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_reasoning_content_as_thinking.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap index 900b50942..0d52c2d73 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_tool_calls_with_string_arguments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap index f473db75a..cff1eaf40 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_openrouter_cost_and_cache_write.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap index c212ac7c2..8e2239f87 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__decode_usage_parses_token_details.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap similarity index 75% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap index f647c24c0..101179520 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_audio_attachment.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap similarity index 78% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap index 7b3833469..485ae8446 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_bad_file_path_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap similarity index 78% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap index fcc58e5cf..10995e1e8 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_inline_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap similarity index 85% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap index 6e4c35fa0..cbb42e14d 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_multi_turn.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap similarity index 73% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap index 2b0718398..75a4a2634 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_keyed_by_adapter_name.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap similarity index 69% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap index bb8c27f58..f3e189bfe 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_provider_options_other_namespace_ignored.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap similarity index 75% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap index 84f716422..24763c82f 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_object.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap similarity index 87% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap index 13961444e..7e35babc2 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_response_format_json_schema.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap similarity index 76% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap index 6a345a9bf..74e26fcd1 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_sampling_params.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap similarity index 84% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap index 210eaa446..86c83a213 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_thinking_round_trip_as_reasoning_content.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap index 7b9bdab82..ea913ebfb 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_auto.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap index 5da2b548a..442e8a42d 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_named.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap index a7ace0225..919c82db5 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_none.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap index d77d00bef..665fa3c5a 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_choice_required.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap index 43e81924f..d601c24dc 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_tool_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap similarity index 78% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap index fcc58e5cf..10995e1e8 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__encode_url_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap index 29f670850..ee27dbea7 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_reasoning_deltas.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap index 0178193a9..0bb05a55b 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_events.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap similarity index 72% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap index 502647610..fa711fab9 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_text_happy_path_request.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap index fa79eefb0..fdce5d082 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_tool_call_deltas.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap index da24b9b97..a560e0d83 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_usage_openrouter_cost.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- [ diff --git a/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap new file mode 100644 index 000000000..082fdf19c --- /dev/null +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap @@ -0,0 +1,5 @@ +--- +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs +expression: rendered +--- +[] diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap index dc7dcfe6a..85127a104 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_synthesizes_finish_when_content_started.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap index 078f9bb3b..eb24f04e8 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_decode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap index a732b5d44..675c550b4 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__system_and_tools_encode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs +source: lib/components/fabro-llm/tests/it/wire/openai_compatible.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap index 8524cc347..6491674c9 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__count_tokens_wire_shape.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap similarity index 74% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap index 5241566c3..3fb9cbd0b 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__custom_named_stream_failed_event_identity.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap index bb1e06744..fa27da4b8 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_incomplete_status_maps_to_length.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap index 48a5b2b8f..e4597626a 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_reasoning_and_function_call_items.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap index 4c65c6906..98813798b 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__decode_usage_subtracts_cached_and_reasoning.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap similarity index 87% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap index 5e12b469e..52d5331bf 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_audio_attachment.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap similarity index 88% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap index 93b5f16a3..5fd2a64fd 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_bad_file_path_attachments_dropped.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap index 655b2e204..f57e05f8b 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_codex_mode_forces_streaming_and_omits_params.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap index 990bf91a8..5c98c82d4 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_dual_id_tool_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap similarity index 90% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap index 3d74e1cdd..172b57110 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_inline_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap index 3e049c7fe..473ce2c5d 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_multi_turn.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap similarity index 92% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap index acfb705af..d672689b1 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_opaque_items_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap similarity index 83% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap index cd69aff6a..c2f03af2c 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_provider_options_openai_namespace.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap similarity index 85% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap index c9efcd60f..57d01b2f9 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_reasoning_effort_with_levels_catalog.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap similarity index 85% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap index f4ccc269d..05ffc5a7d 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_object.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap similarity index 90% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap index 3fa0b83e2..1fe952e6c 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_response_format_json_schema.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap similarity index 87% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap index 3634e5fb3..783c7ab18 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_sampling_params.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap similarity index 91% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap index e4b3593b0..a232e2e6a 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_thinking_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap index af2dfe6a9..b4b6aef6c 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_auto.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap index cc00b7891..cb462f295 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_named.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap index fda379759..9c11e0609 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_none.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap similarity index 93% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap index b9e9d82e0..3b9ad1745 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_choice_required.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap similarity index 96% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap index 97c1654d9..f542622fb 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_tool_round_trip.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap similarity index 90% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap index 9b67b8abc..b85c3da20 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__encode_url_attachments.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap similarity index 73% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap index 68057a6b7..191a90c06 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_failed_event_maps_to_error.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap index b09f7ef94..e274eb534 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_incomplete_maps_to_length.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap index 62cc38280..47f067f13 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_reasoning_summary_deltas.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap index 68b18e7c2..cde7ca175 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_events.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap similarity index 84% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap index c5f2d85eb..1dbf93c1a 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_text_happy_path_request.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap similarity index 97% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap index 66a9c3d89..a4cc2e686 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__stream_tool_call_deltas.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- [ diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap similarity index 95% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap index d5d935100..01d4e4fd4 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_decode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap similarity index 94% rename from lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap rename to lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap index 5c7aca225..165c53cc3 100644 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap +++ b/lib/components/fabro-llm/tests/it/wire/snapshots/it__wire__openai_responses__system_and_tools_encode.snap @@ -1,5 +1,5 @@ --- -source: lib/crates/fabro-llm/tests/it/wire/openai_responses.rs +source: lib/components/fabro-llm/tests/it/wire/openai_responses.rs expression: rendered --- { diff --git a/lib/crates/fabro-manifest/Cargo.toml b/lib/components/fabro-manifest/Cargo.toml similarity index 68% rename from lib/crates/fabro-manifest/Cargo.toml rename to lib/components/fabro-manifest/Cargo.toml index 417dc9af0..0cc8a695a 100644 --- a/lib/crates/fabro-manifest/Cargo.toml +++ b/lib/components/fabro-manifest/Cargo.toml @@ -14,12 +14,12 @@ workspace = true [dependencies] anyhow.workspace = true -fabro-api = { path = "../fabro-api" } -fabro-config = { path = "../fabro-config" } +fabro-api = { path = "../../foundation/fabro-api" } +fabro-config = { path = "../../foundation/fabro-config" } fabro-github = { path = "../fabro-github" } fabro-graphviz = { path = "../fabro-graphviz" } -fabro-template = { path = "../fabro-template" } -fabro-types = { path = "../fabro-types" } +fabro-template = { path = "../../foundation/fabro-template" } +fabro-types = { path = "../../foundation/fabro-types" } fabro-workflow = { path = "../fabro-workflow" } git2.workspace = true toml.workspace = true diff --git a/lib/crates/fabro-manifest/src/lib.rs b/lib/components/fabro-manifest/src/lib.rs similarity index 100% rename from lib/crates/fabro-manifest/src/lib.rs rename to lib/components/fabro-manifest/src/lib.rs diff --git a/lib/crates/fabro-mcp-store/Cargo.toml b/lib/components/fabro-mcp-store/Cargo.toml similarity index 84% rename from lib/crates/fabro-mcp-store/Cargo.toml rename to lib/components/fabro-mcp-store/Cargo.toml index 0172d9bae..7fd46b3f0 100644 --- a/lib/crates/fabro-mcp-store/Cargo.toml +++ b/lib/components/fabro-mcp-store/Cargo.toml @@ -14,8 +14,8 @@ workspace = true [dependencies] chrono.workspace = true -fabro-db = { path = "../fabro-db" } -fabro-types = { path = "../fabro-types" } +fabro-db = { path = "../../foundation/fabro-db" } +fabro-types = { path = "../../foundation/fabro-types" } serde.workspace = true serde_json.workspace = true sqlx.workspace = true diff --git a/lib/crates/fabro-mcp-store/src/error.rs b/lib/components/fabro-mcp-store/src/error.rs similarity index 100% rename from lib/crates/fabro-mcp-store/src/error.rs rename to lib/components/fabro-mcp-store/src/error.rs diff --git a/lib/crates/fabro-mcp-store/src/lib.rs b/lib/components/fabro-mcp-store/src/lib.rs similarity index 100% rename from lib/crates/fabro-mcp-store/src/lib.rs rename to lib/components/fabro-mcp-store/src/lib.rs diff --git a/lib/crates/fabro-mcp-store/src/model.rs b/lib/components/fabro-mcp-store/src/model.rs similarity index 100% rename from lib/crates/fabro-mcp-store/src/model.rs rename to lib/components/fabro-mcp-store/src/model.rs diff --git a/lib/crates/fabro-mcp-store/src/store.rs b/lib/components/fabro-mcp-store/src/store.rs similarity index 100% rename from lib/crates/fabro-mcp-store/src/store.rs rename to lib/components/fabro-mcp-store/src/store.rs diff --git a/lib/crates/fabro-mcp-store/tests/store.rs b/lib/components/fabro-mcp-store/tests/store.rs similarity index 100% rename from lib/crates/fabro-mcp-store/tests/store.rs rename to lib/components/fabro-mcp-store/tests/store.rs diff --git a/lib/crates/fabro-mcp/Cargo.toml b/lib/components/fabro-mcp/Cargo.toml similarity index 87% rename from lib/crates/fabro-mcp/Cargo.toml rename to lib/components/fabro-mcp/Cargo.toml index 12f0b551c..78db96688 100644 --- a/lib/crates/fabro-mcp/Cargo.toml +++ b/lib/components/fabro-mcp/Cargo.toml @@ -14,9 +14,9 @@ workspace = true [dependencies] anyhow.workspace = true -fabro-config = { path = "../fabro-config" } +fabro-config = { path = "../../foundation/fabro-config" } fabro-http.workspace = true -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } serde.workspace = true serde_json.workspace = true tokio.workspace = true diff --git a/lib/crates/fabro-mcp/src/client.rs b/lib/components/fabro-mcp/src/client.rs similarity index 100% rename from lib/crates/fabro-mcp/src/client.rs rename to lib/components/fabro-mcp/src/client.rs diff --git a/lib/crates/fabro-mcp/src/client_handler.rs b/lib/components/fabro-mcp/src/client_handler.rs similarity index 100% rename from lib/crates/fabro-mcp/src/client_handler.rs rename to lib/components/fabro-mcp/src/client_handler.rs diff --git a/lib/crates/fabro-mcp/src/config.rs b/lib/components/fabro-mcp/src/config.rs similarity index 100% rename from lib/crates/fabro-mcp/src/config.rs rename to lib/components/fabro-mcp/src/config.rs diff --git a/lib/crates/fabro-mcp/src/connection_manager.rs b/lib/components/fabro-mcp/src/connection_manager.rs similarity index 100% rename from lib/crates/fabro-mcp/src/connection_manager.rs rename to lib/components/fabro-mcp/src/connection_manager.rs diff --git a/lib/crates/fabro-mcp/src/http_transport.rs b/lib/components/fabro-mcp/src/http_transport.rs similarity index 100% rename from lib/crates/fabro-mcp/src/http_transport.rs rename to lib/components/fabro-mcp/src/http_transport.rs diff --git a/lib/crates/fabro-mcp/src/lib.rs b/lib/components/fabro-mcp/src/lib.rs similarity index 100% rename from lib/crates/fabro-mcp/src/lib.rs rename to lib/components/fabro-mcp/src/lib.rs diff --git a/lib/crates/fabro-mcp/src/sse_client.rs b/lib/components/fabro-mcp/src/sse_client.rs similarity index 100% rename from lib/crates/fabro-mcp/src/sse_client.rs rename to lib/components/fabro-mcp/src/sse_client.rs diff --git a/lib/crates/fabro-mcp/tests/stdio_integration.rs b/lib/components/fabro-mcp/tests/stdio_integration.rs similarity index 100% rename from lib/crates/fabro-mcp/tests/stdio_integration.rs rename to lib/components/fabro-mcp/tests/stdio_integration.rs diff --git a/lib/crates/fabro-mcp/tests/test_mcp_server.py b/lib/components/fabro-mcp/tests/test_mcp_server.py similarity index 100% rename from lib/crates/fabro-mcp/tests/test_mcp_server.py rename to lib/components/fabro-mcp/tests/test_mcp_server.py diff --git a/lib/crates/fabro-sandbox/Cargo.toml b/lib/components/fabro-sandbox/Cargo.toml similarity index 89% rename from lib/crates/fabro-sandbox/Cargo.toml rename to lib/components/fabro-sandbox/Cargo.toml index dd90d2f0e..c2346d5ef 100644 --- a/lib/crates/fabro-sandbox/Cargo.toml +++ b/lib/components/fabro-sandbox/Cargo.toml @@ -34,9 +34,9 @@ hmac.workspace = true sha2.workspace = true hex.workspace = true uuid.workspace = true -fabro-proc = { path = "../fabro-proc" } +fabro-proc = { path = "../../foundation/fabro-proc" } fabro-static.workspace = true -fabro-util = { path = "../fabro-util" } +fabro-util = { path = "../../foundation/fabro-util" } fabro-redact.workspace = true # local @@ -49,9 +49,9 @@ bollard = { workspace = true, optional = true } tar = { workspace = true, optional = true } # daytona -fabro-config = { path = "../fabro-config", optional = true } +fabro-config = { path = "../../foundation/fabro-config", optional = true } fabro-github = { path = "../fabro-github", optional = true } -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } chrono = { workspace = true } diff --git a/lib/crates/fabro-sandbox/src/clone_source.rs b/lib/components/fabro-sandbox/src/clone_source.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/clone_source.rs rename to lib/components/fabro-sandbox/src/clone_source.rs diff --git a/lib/crates/fabro-sandbox/src/config.rs b/lib/components/fabro-sandbox/src/config.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/config.rs rename to lib/components/fabro-sandbox/src/config.rs diff --git a/lib/crates/fabro-sandbox/src/daytona/mod.rs b/lib/components/fabro-sandbox/src/daytona/mod.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/daytona/mod.rs rename to lib/components/fabro-sandbox/src/daytona/mod.rs diff --git a/lib/crates/fabro-sandbox/src/details.rs b/lib/components/fabro-sandbox/src/details.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/details.rs rename to lib/components/fabro-sandbox/src/details.rs diff --git a/lib/crates/fabro-sandbox/src/docker.rs b/lib/components/fabro-sandbox/src/docker.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/docker.rs rename to lib/components/fabro-sandbox/src/docker.rs diff --git a/lib/crates/fabro-sandbox/src/error.rs b/lib/components/fabro-sandbox/src/error.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/error.rs rename to lib/components/fabro-sandbox/src/error.rs diff --git a/lib/crates/fabro-sandbox/src/from_environment.rs b/lib/components/fabro-sandbox/src/from_environment.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/from_environment.rs rename to lib/components/fabro-sandbox/src/from_environment.rs diff --git a/lib/crates/fabro-sandbox/src/glob_match.rs b/lib/components/fabro-sandbox/src/glob_match.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/glob_match.rs rename to lib/components/fabro-sandbox/src/glob_match.rs diff --git a/lib/crates/fabro-sandbox/src/lib.rs b/lib/components/fabro-sandbox/src/lib.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/lib.rs rename to lib/components/fabro-sandbox/src/lib.rs diff --git a/lib/crates/fabro-sandbox/src/local.rs b/lib/components/fabro-sandbox/src/local.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/local.rs rename to lib/components/fabro-sandbox/src/local.rs diff --git a/lib/crates/fabro-sandbox/src/managed_labels.rs b/lib/components/fabro-sandbox/src/managed_labels.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/managed_labels.rs rename to lib/components/fabro-sandbox/src/managed_labels.rs diff --git a/lib/crates/fabro-sandbox/src/provider.rs b/lib/components/fabro-sandbox/src/provider.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/provider.rs rename to lib/components/fabro-sandbox/src/provider.rs diff --git a/lib/crates/fabro-sandbox/src/provider/daytona.rs b/lib/components/fabro-sandbox/src/provider/daytona.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/provider/daytona.rs rename to lib/components/fabro-sandbox/src/provider/daytona.rs diff --git a/lib/crates/fabro-sandbox/src/provider/docker.rs b/lib/components/fabro-sandbox/src/provider/docker.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/provider/docker.rs rename to lib/components/fabro-sandbox/src/provider/docker.rs diff --git a/lib/crates/fabro-sandbox/src/read_guard.rs b/lib/components/fabro-sandbox/src/read_guard.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/read_guard.rs rename to lib/components/fabro-sandbox/src/read_guard.rs diff --git a/lib/crates/fabro-sandbox/src/reconnect.rs b/lib/components/fabro-sandbox/src/reconnect.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/reconnect.rs rename to lib/components/fabro-sandbox/src/reconnect.rs diff --git a/lib/crates/fabro-sandbox/src/redact.rs b/lib/components/fabro-sandbox/src/redact.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/redact.rs rename to lib/components/fabro-sandbox/src/redact.rs diff --git a/lib/crates/fabro-sandbox/src/sandbox.rs b/lib/components/fabro-sandbox/src/sandbox.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/sandbox.rs rename to lib/components/fabro-sandbox/src/sandbox.rs diff --git a/lib/crates/fabro-sandbox/src/sandbox_spec.rs b/lib/components/fabro-sandbox/src/sandbox_spec.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/sandbox_spec.rs rename to lib/components/fabro-sandbox/src/sandbox_spec.rs diff --git a/lib/crates/fabro-sandbox/src/terminal.rs b/lib/components/fabro-sandbox/src/terminal.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/terminal.rs rename to lib/components/fabro-sandbox/src/terminal.rs diff --git a/lib/crates/fabro-sandbox/src/test_support.rs b/lib/components/fabro-sandbox/src/test_support.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/test_support.rs rename to lib/components/fabro-sandbox/src/test_support.rs diff --git a/lib/crates/fabro-sandbox/src/worktree.rs b/lib/components/fabro-sandbox/src/worktree.rs similarity index 100% rename from lib/crates/fabro-sandbox/src/worktree.rs rename to lib/components/fabro-sandbox/src/worktree.rs diff --git a/lib/crates/fabro-sandbox/tests/daytona_streaming_live.rs b/lib/components/fabro-sandbox/tests/daytona_streaming_live.rs similarity index 100% rename from lib/crates/fabro-sandbox/tests/daytona_streaming_live.rs rename to lib/components/fabro-sandbox/tests/daytona_streaming_live.rs diff --git a/lib/crates/fabro-sandbox/tests/docker_streaming.rs b/lib/components/fabro-sandbox/tests/docker_streaming.rs similarity index 100% rename from lib/crates/fabro-sandbox/tests/docker_streaming.rs rename to lib/components/fabro-sandbox/tests/docker_streaming.rs diff --git a/lib/crates/fabro-sandbox/tests/error.rs b/lib/components/fabro-sandbox/tests/error.rs similarity index 100% rename from lib/crates/fabro-sandbox/tests/error.rs rename to lib/components/fabro-sandbox/tests/error.rs diff --git a/lib/crates/fabro-slack/Cargo.toml b/lib/components/fabro-slack/Cargo.toml similarity index 93% rename from lib/crates/fabro-slack/Cargo.toml rename to lib/components/fabro-slack/Cargo.toml index 660f42dc4..14a5ad3af 100644 --- a/lib/crates/fabro-slack/Cargo.toml +++ b/lib/components/fabro-slack/Cargo.toml @@ -14,7 +14,7 @@ workspace = true [dependencies] fabro-interview = { path = "../fabro-interview" } -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } fabro-workflow = { path = "../fabro-workflow" } fabro-http.workspace = true fabro-static.workspace = true diff --git a/lib/crates/fabro-slack/src/blocks.rs b/lib/components/fabro-slack/src/blocks.rs similarity index 100% rename from lib/crates/fabro-slack/src/blocks.rs rename to lib/components/fabro-slack/src/blocks.rs diff --git a/lib/crates/fabro-slack/src/client.rs b/lib/components/fabro-slack/src/client.rs similarity index 100% rename from lib/crates/fabro-slack/src/client.rs rename to lib/components/fabro-slack/src/client.rs diff --git a/lib/crates/fabro-slack/src/config.rs b/lib/components/fabro-slack/src/config.rs similarity index 100% rename from lib/crates/fabro-slack/src/config.rs rename to lib/components/fabro-slack/src/config.rs diff --git a/lib/crates/fabro-slack/src/connection.rs b/lib/components/fabro-slack/src/connection.rs similarity index 100% rename from lib/crates/fabro-slack/src/connection.rs rename to lib/components/fabro-slack/src/connection.rs diff --git a/lib/crates/fabro-slack/src/dispatch.rs b/lib/components/fabro-slack/src/dispatch.rs similarity index 100% rename from lib/crates/fabro-slack/src/dispatch.rs rename to lib/components/fabro-slack/src/dispatch.rs diff --git a/lib/crates/fabro-slack/src/interaction.rs b/lib/components/fabro-slack/src/interaction.rs similarity index 100% rename from lib/crates/fabro-slack/src/interaction.rs rename to lib/components/fabro-slack/src/interaction.rs diff --git a/lib/crates/fabro-slack/src/lib.rs b/lib/components/fabro-slack/src/lib.rs similarity index 100% rename from lib/crates/fabro-slack/src/lib.rs rename to lib/components/fabro-slack/src/lib.rs diff --git a/lib/crates/fabro-slack/src/payload.rs b/lib/components/fabro-slack/src/payload.rs similarity index 100% rename from lib/crates/fabro-slack/src/payload.rs rename to lib/components/fabro-slack/src/payload.rs diff --git a/lib/crates/fabro-slack/src/socket.rs b/lib/components/fabro-slack/src/socket.rs similarity index 100% rename from lib/crates/fabro-slack/src/socket.rs rename to lib/components/fabro-slack/src/socket.rs diff --git a/lib/crates/fabro-slack/src/threads.rs b/lib/components/fabro-slack/src/threads.rs similarity index 100% rename from lib/crates/fabro-slack/src/threads.rs rename to lib/components/fabro-slack/src/threads.rs diff --git a/lib/crates/fabro-store/Cargo.toml b/lib/components/fabro-store/Cargo.toml similarity index 77% rename from lib/crates/fabro-store/Cargo.toml rename to lib/components/fabro-store/Cargo.toml index 234da7ad4..796119e18 100644 --- a/lib/crates/fabro-store/Cargo.toml +++ b/lib/components/fabro-store/Cargo.toml @@ -12,8 +12,8 @@ doctest = false workspace = true [dependencies] -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } hex.workspace = true slatedb.workspace = true object_store.workspace = true @@ -34,9 +34,9 @@ futures.workspace = true uuid.workspace = true [dev-dependencies] -fabro-types = { path = "../fabro-types", features = ["test-support"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] } tokio = { workspace = true, features = ["test-util", "macros"] } tempfile = "3" ulid.workspace = true insta = { workspace = true } -fabro-db = { path = "../fabro-db" } +fabro-db = { path = "../../foundation/fabro-db" } diff --git a/lib/crates/fabro-store/src/artifact_store.rs b/lib/components/fabro-store/src/artifact_store.rs similarity index 100% rename from lib/crates/fabro-store/src/artifact_store.rs rename to lib/components/fabro-store/src/artifact_store.rs diff --git a/lib/crates/fabro-store/src/error.rs b/lib/components/fabro-store/src/error.rs similarity index 100% rename from lib/crates/fabro-store/src/error.rs rename to lib/components/fabro-store/src/error.rs diff --git a/lib/crates/fabro-store/src/keyed_mutex.rs b/lib/components/fabro-store/src/keyed_mutex.rs similarity index 100% rename from lib/crates/fabro-store/src/keyed_mutex.rs rename to lib/components/fabro-store/src/keyed_mutex.rs diff --git a/lib/crates/fabro-store/src/keys.rs b/lib/components/fabro-store/src/keys.rs similarity index 100% rename from lib/crates/fabro-store/src/keys.rs rename to lib/components/fabro-store/src/keys.rs diff --git a/lib/crates/fabro-store/src/lib.rs b/lib/components/fabro-store/src/lib.rs similarity index 100% rename from lib/crates/fabro-store/src/lib.rs rename to lib/components/fabro-store/src/lib.rs diff --git a/lib/crates/fabro-store/src/record/codec.rs b/lib/components/fabro-store/src/record/codec.rs similarity index 100% rename from lib/crates/fabro-store/src/record/codec.rs rename to lib/components/fabro-store/src/record/codec.rs diff --git a/lib/crates/fabro-store/src/record/mod.rs b/lib/components/fabro-store/src/record/mod.rs similarity index 100% rename from lib/crates/fabro-store/src/record/mod.rs rename to lib/components/fabro-store/src/record/mod.rs diff --git a/lib/crates/fabro-store/src/record/record_id.rs b/lib/components/fabro-store/src/record/record_id.rs similarity index 100% rename from lib/crates/fabro-store/src/record/record_id.rs rename to lib/components/fabro-store/src/record/record_id.rs diff --git a/lib/crates/fabro-store/src/record/repository.rs b/lib/components/fabro-store/src/record/repository.rs similarity index 100% rename from lib/crates/fabro-store/src/record/repository.rs rename to lib/components/fabro-store/src/record/repository.rs diff --git a/lib/crates/fabro-store/src/record/transaction.rs b/lib/components/fabro-store/src/record/transaction.rs similarity index 100% rename from lib/crates/fabro-store/src/record/transaction.rs rename to lib/components/fabro-store/src/record/transaction.rs diff --git a/lib/crates/fabro-store/src/run_sessions.rs b/lib/components/fabro-store/src/run_sessions.rs similarity index 100% rename from lib/crates/fabro-store/src/run_sessions.rs rename to lib/components/fabro-store/src/run_sessions.rs diff --git a/lib/crates/fabro-store/src/run_state.rs b/lib/components/fabro-store/src/run_state.rs similarity index 100% rename from lib/crates/fabro-store/src/run_state.rs rename to lib/components/fabro-store/src/run_state.rs diff --git a/lib/crates/fabro-store/src/run_summary_store.rs b/lib/components/fabro-store/src/run_summary_store.rs similarity index 100% rename from lib/crates/fabro-store/src/run_summary_store.rs rename to lib/components/fabro-store/src/run_summary_store.rs diff --git a/lib/crates/fabro-store/src/serializable_projection.rs b/lib/components/fabro-store/src/serializable_projection.rs similarity index 100% rename from lib/crates/fabro-store/src/serializable_projection.rs rename to lib/components/fabro-store/src/serializable_projection.rs diff --git a/lib/crates/fabro-store/src/slate/auth_codes.rs b/lib/components/fabro-store/src/slate/auth_codes.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/auth_codes.rs rename to lib/components/fabro-store/src/slate/auth_codes.rs diff --git a/lib/crates/fabro-store/src/slate/auth_tokens.rs b/lib/components/fabro-store/src/slate/auth_tokens.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/auth_tokens.rs rename to lib/components/fabro-store/src/slate/auth_tokens.rs diff --git a/lib/crates/fabro-store/src/slate/blob_store.rs b/lib/components/fabro-store/src/slate/blob_store.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/blob_store.rs rename to lib/components/fabro-store/src/slate/blob_store.rs diff --git a/lib/crates/fabro-store/src/slate/mod.rs b/lib/components/fabro-store/src/slate/mod.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/mod.rs rename to lib/components/fabro-store/src/slate/mod.rs diff --git a/lib/crates/fabro-store/src/slate/projection_cache.rs b/lib/components/fabro-store/src/slate/projection_cache.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/projection_cache.rs rename to lib/components/fabro-store/src/slate/projection_cache.rs diff --git a/lib/crates/fabro-store/src/slate/run_catalog_index.rs b/lib/components/fabro-store/src/slate/run_catalog_index.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/run_catalog_index.rs rename to lib/components/fabro-store/src/slate/run_catalog_index.rs diff --git a/lib/crates/fabro-store/src/slate/run_store.rs b/lib/components/fabro-store/src/slate/run_store.rs similarity index 100% rename from lib/crates/fabro-store/src/slate/run_store.rs rename to lib/components/fabro-store/src/slate/run_store.rs diff --git a/lib/crates/fabro-store/src/test_util.rs b/lib/components/fabro-store/src/test_util.rs similarity index 100% rename from lib/crates/fabro-store/src/test_util.rs rename to lib/components/fabro-store/src/test_util.rs diff --git a/lib/crates/fabro-store/src/types.rs b/lib/components/fabro-store/src/types.rs similarity index 100% rename from lib/crates/fabro-store/src/types.rs rename to lib/components/fabro-store/src/types.rs diff --git a/lib/crates/fabro-store/tests/serializable_projection.rs b/lib/components/fabro-store/tests/serializable_projection.rs similarity index 100% rename from lib/crates/fabro-store/tests/serializable_projection.rs rename to lib/components/fabro-store/tests/serializable_projection.rs diff --git a/lib/crates/fabro-tool/Cargo.toml b/lib/components/fabro-tool/Cargo.toml similarity index 64% rename from lib/crates/fabro-tool/Cargo.toml rename to lib/components/fabro-tool/Cargo.toml index c50ea6a38..0d3a2862d 100644 --- a/lib/crates/fabro-tool/Cargo.toml +++ b/lib/components/fabro-tool/Cargo.toml @@ -16,10 +16,10 @@ workspace = true anyhow.workspace = true async-trait.workspace = true chrono = { workspace = true, features = ["serde"] } -fabro-api = { path = "../fabro-api" } -fabro-client = { path = "../fabro-client" } -fabro-types = { path = "../fabro-types" } -fabro-util = { path = "../fabro-util" } +fabro-api = { path = "../../foundation/fabro-api" } +fabro-client = { path = "../../foundation/fabro-client" } +fabro-types = { path = "../../foundation/fabro-types" } +fabro-util = { path = "../../foundation/fabro-util" } futures.workspace = true schemars = "1.2.1" serde.workspace = true @@ -29,5 +29,5 @@ tokio.workspace = true toml.workspace = true [dev-dependencies] -fabro-types = { path = "../fabro-types", features = ["test-support"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] } tempfile = "3" diff --git a/lib/crates/fabro-tool/src/common.rs b/lib/components/fabro-tool/src/common.rs similarity index 100% rename from lib/crates/fabro-tool/src/common.rs rename to lib/components/fabro-tool/src/common.rs diff --git a/lib/crates/fabro-tool/src/create.rs b/lib/components/fabro-tool/src/create.rs similarity index 100% rename from lib/crates/fabro-tool/src/create.rs rename to lib/components/fabro-tool/src/create.rs diff --git a/lib/crates/fabro-tool/src/events.rs b/lib/components/fabro-tool/src/events.rs similarity index 100% rename from lib/crates/fabro-tool/src/events.rs rename to lib/components/fabro-tool/src/events.rs diff --git a/lib/crates/fabro-tool/src/fabro_client.rs b/lib/components/fabro-tool/src/fabro_client.rs similarity index 100% rename from lib/crates/fabro-tool/src/fabro_client.rs rename to lib/components/fabro-tool/src/fabro_client.rs diff --git a/lib/crates/fabro-tool/src/gather.rs b/lib/components/fabro-tool/src/gather.rs similarity index 100% rename from lib/crates/fabro-tool/src/gather.rs rename to lib/components/fabro-tool/src/gather.rs diff --git a/lib/crates/fabro-tool/src/get.rs b/lib/components/fabro-tool/src/get.rs similarity index 100% rename from lib/crates/fabro-tool/src/get.rs rename to lib/components/fabro-tool/src/get.rs diff --git a/lib/crates/fabro-tool/src/interact.rs b/lib/components/fabro-tool/src/interact.rs similarity index 100% rename from lib/crates/fabro-tool/src/interact.rs rename to lib/components/fabro-tool/src/interact.rs diff --git a/lib/crates/fabro-tool/src/lib.rs b/lib/components/fabro-tool/src/lib.rs similarity index 100% rename from lib/crates/fabro-tool/src/lib.rs rename to lib/components/fabro-tool/src/lib.rs diff --git a/lib/crates/fabro-tool/src/manifest.rs b/lib/components/fabro-tool/src/manifest.rs similarity index 100% rename from lib/crates/fabro-tool/src/manifest.rs rename to lib/components/fabro-tool/src/manifest.rs diff --git a/lib/crates/fabro-tool/src/pair.rs b/lib/components/fabro-tool/src/pair.rs similarity index 100% rename from lib/crates/fabro-tool/src/pair.rs rename to lib/components/fabro-tool/src/pair.rs diff --git a/lib/crates/fabro-tool/src/search.rs b/lib/components/fabro-tool/src/search.rs similarity index 100% rename from lib/crates/fabro-tool/src/search.rs rename to lib/components/fabro-tool/src/search.rs diff --git a/lib/crates/fabro-tracker/Cargo.toml b/lib/components/fabro-tracker/Cargo.toml similarity index 100% rename from lib/crates/fabro-tracker/Cargo.toml rename to lib/components/fabro-tracker/Cargo.toml diff --git a/lib/crates/fabro-tracker/src/fixtures/github-app-test-key.pem b/lib/components/fabro-tracker/src/fixtures/github-app-test-key.pem similarity index 100% rename from lib/crates/fabro-tracker/src/fixtures/github-app-test-key.pem rename to lib/components/fabro-tracker/src/fixtures/github-app-test-key.pem diff --git a/lib/crates/fabro-tracker/src/github.rs b/lib/components/fabro-tracker/src/github.rs similarity index 100% rename from lib/crates/fabro-tracker/src/github.rs rename to lib/components/fabro-tracker/src/github.rs diff --git a/lib/crates/fabro-tracker/src/lib.rs b/lib/components/fabro-tracker/src/lib.rs similarity index 100% rename from lib/crates/fabro-tracker/src/lib.rs rename to lib/components/fabro-tracker/src/lib.rs diff --git a/lib/crates/fabro-tracker/src/linear.rs b/lib/components/fabro-tracker/src/linear.rs similarity index 100% rename from lib/crates/fabro-tracker/src/linear.rs rename to lib/components/fabro-tracker/src/linear.rs diff --git a/lib/crates/fabro-validate/Cargo.toml b/lib/components/fabro-validate/Cargo.toml similarity index 81% rename from lib/crates/fabro-validate/Cargo.toml rename to lib/components/fabro-validate/Cargo.toml index a6c3ef3f9..4287fd1f1 100644 --- a/lib/crates/fabro-validate/Cargo.toml +++ b/lib/components/fabro-validate/Cargo.toml @@ -15,8 +15,8 @@ workspace = true [dependencies] fabro-acp = { path = "../fabro-acp", default-features = false } fabro-graphviz = { path = "../fabro-graphviz" } -fabro-model = { path = "../fabro-model" } -fabro-types = { path = "../fabro-types" } +fabro-model = { path = "../../foundation/fabro-model" } +fabro-types = { path = "../../foundation/fabro-types" } serde = { workspace = true } thiserror = { workspace = true } diff --git a/lib/crates/fabro-validate/src/lib.rs b/lib/components/fabro-validate/src/lib.rs similarity index 100% rename from lib/crates/fabro-validate/src/lib.rs rename to lib/components/fabro-validate/src/lib.rs diff --git a/lib/crates/fabro-validate/src/rules/all_conditional_edges.rs b/lib/components/fabro-validate/src/rules/all_conditional_edges.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/all_conditional_edges.rs rename to lib/components/fabro-validate/src/rules/all_conditional_edges.rs diff --git a/lib/crates/fabro-validate/src/rules/backend_valid.rs b/lib/components/fabro-validate/src/rules/backend_valid.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/backend_valid.rs rename to lib/components/fabro-validate/src/rules/backend_valid.rs diff --git a/lib/crates/fabro-validate/src/rules/condition_syntax.rs b/lib/components/fabro-validate/src/rules/condition_syntax.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/condition_syntax.rs rename to lib/components/fabro-validate/src/rules/condition_syntax.rs diff --git a/lib/crates/fabro-validate/src/rules/direction_valid.rs b/lib/components/fabro-validate/src/rules/direction_valid.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/direction_valid.rs rename to lib/components/fabro-validate/src/rules/direction_valid.rs diff --git a/lib/crates/fabro-validate/src/rules/edge_target_exists.rs b/lib/components/fabro-validate/src/rules/edge_target_exists.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/edge_target_exists.rs rename to lib/components/fabro-validate/src/rules/edge_target_exists.rs diff --git a/lib/crates/fabro-validate/src/rules/exit_no_outgoing.rs b/lib/components/fabro-validate/src/rules/exit_no_outgoing.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/exit_no_outgoing.rs rename to lib/components/fabro-validate/src/rules/exit_no_outgoing.rs diff --git a/lib/crates/fabro-validate/src/rules/fidelity_valid.rs b/lib/components/fabro-validate/src/rules/fidelity_valid.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/fidelity_valid.rs rename to lib/components/fabro-validate/src/rules/fidelity_valid.rs diff --git a/lib/crates/fabro-validate/src/rules/freeform_edge_count.rs b/lib/components/fabro-validate/src/rules/freeform_edge_count.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/freeform_edge_count.rs rename to lib/components/fabro-validate/src/rules/freeform_edge_count.rs diff --git a/lib/crates/fabro-validate/src/rules/goal_gate_has_retry.rs b/lib/components/fabro-validate/src/rules/goal_gate_has_retry.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/goal_gate_has_retry.rs rename to lib/components/fabro-validate/src/rules/goal_gate_has_retry.rs diff --git a/lib/crates/fabro-validate/src/rules/import_error.rs b/lib/components/fabro-validate/src/rules/import_error.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/import_error.rs rename to lib/components/fabro-validate/src/rules/import_error.rs diff --git a/lib/crates/fabro-validate/src/rules/inert_attribute.rs b/lib/components/fabro-validate/src/rules/inert_attribute.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/inert_attribute.rs rename to lib/components/fabro-validate/src/rules/inert_attribute.rs diff --git a/lib/crates/fabro-validate/src/rules/mod.rs b/lib/components/fabro-validate/src/rules/mod.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/mod.rs rename to lib/components/fabro-validate/src/rules/mod.rs diff --git a/lib/crates/fabro-validate/src/rules/model_support.rs b/lib/components/fabro-validate/src/rules/model_support.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/model_support.rs rename to lib/components/fabro-validate/src/rules/model_support.rs diff --git a/lib/crates/fabro-validate/src/rules/node_model_known.rs b/lib/components/fabro-validate/src/rules/node_model_known.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/node_model_known.rs rename to lib/components/fabro-validate/src/rules/node_model_known.rs diff --git a/lib/crates/fabro-validate/src/rules/orphan_custom_outcome.rs b/lib/components/fabro-validate/src/rules/orphan_custom_outcome.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/orphan_custom_outcome.rs rename to lib/components/fabro-validate/src/rules/orphan_custom_outcome.rs diff --git a/lib/crates/fabro-validate/src/rules/parallel_branch.rs b/lib/components/fabro-validate/src/rules/parallel_branch.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/parallel_branch.rs rename to lib/components/fabro-validate/src/rules/parallel_branch.rs diff --git a/lib/crates/fabro-validate/src/rules/parallel_branch_inert_attribute.rs b/lib/components/fabro-validate/src/rules/parallel_branch_inert_attribute.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/parallel_branch_inert_attribute.rs rename to lib/components/fabro-validate/src/rules/parallel_branch_inert_attribute.rs diff --git a/lib/crates/fabro-validate/src/rules/prompt_on_llm_nodes.rs b/lib/components/fabro-validate/src/rules/prompt_on_llm_nodes.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/prompt_on_llm_nodes.rs rename to lib/components/fabro-validate/src/rules/prompt_on_llm_nodes.rs diff --git a/lib/crates/fabro-validate/src/rules/random_selection_no_conditions.rs b/lib/components/fabro-validate/src/rules/random_selection_no_conditions.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/random_selection_no_conditions.rs rename to lib/components/fabro-validate/src/rules/random_selection_no_conditions.rs diff --git a/lib/crates/fabro-validate/src/rules/reachability.rs b/lib/components/fabro-validate/src/rules/reachability.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/reachability.rs rename to lib/components/fabro-validate/src/rules/reachability.rs diff --git a/lib/crates/fabro-validate/src/rules/reserved_keyword_node_id.rs b/lib/components/fabro-validate/src/rules/reserved_keyword_node_id.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/reserved_keyword_node_id.rs rename to lib/components/fabro-validate/src/rules/reserved_keyword_node_id.rs diff --git a/lib/crates/fabro-validate/src/rules/retry_target_exists.rs b/lib/components/fabro-validate/src/rules/retry_target_exists.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/retry_target_exists.rs rename to lib/components/fabro-validate/src/rules/retry_target_exists.rs diff --git a/lib/crates/fabro-validate/src/rules/script_absolute_cd.rs b/lib/components/fabro-validate/src/rules/script_absolute_cd.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/script_absolute_cd.rs rename to lib/components/fabro-validate/src/rules/script_absolute_cd.rs diff --git a/lib/crates/fabro-validate/src/rules/selection_valid.rs b/lib/components/fabro-validate/src/rules/selection_valid.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/selection_valid.rs rename to lib/components/fabro-validate/src/rules/selection_valid.rs diff --git a/lib/crates/fabro-validate/src/rules/start_no_incoming.rs b/lib/components/fabro-validate/src/rules/start_no_incoming.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/start_no_incoming.rs rename to lib/components/fabro-validate/src/rules/start_no_incoming.rs diff --git a/lib/crates/fabro-validate/src/rules/start_node.rs b/lib/components/fabro-validate/src/rules/start_node.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/start_node.rs rename to lib/components/fabro-validate/src/rules/start_node.rs diff --git a/lib/crates/fabro-validate/src/rules/stylesheet_model_known.rs b/lib/components/fabro-validate/src/rules/stylesheet_model_known.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/stylesheet_model_known.rs rename to lib/components/fabro-validate/src/rules/stylesheet_model_known.rs diff --git a/lib/crates/fabro-validate/src/rules/stylesheet_syntax.rs b/lib/components/fabro-validate/src/rules/stylesheet_syntax.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/stylesheet_syntax.rs rename to lib/components/fabro-validate/src/rules/stylesheet_syntax.rs diff --git a/lib/crates/fabro-validate/src/rules/terminal_node.rs b/lib/components/fabro-validate/src/rules/terminal_node.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/terminal_node.rs rename to lib/components/fabro-validate/src/rules/terminal_node.rs diff --git a/lib/crates/fabro-validate/src/rules/test_support.rs b/lib/components/fabro-validate/src/rules/test_support.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/test_support.rs rename to lib/components/fabro-validate/src/rules/test_support.rs diff --git a/lib/crates/fabro-validate/src/rules/thread_id_requires_fidelity_full.rs b/lib/components/fabro-validate/src/rules/thread_id_requires_fidelity_full.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/thread_id_requires_fidelity_full.rs rename to lib/components/fabro-validate/src/rules/thread_id_requires_fidelity_full.rs diff --git a/lib/crates/fabro-validate/src/rules/type_known.rs b/lib/components/fabro-validate/src/rules/type_known.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/type_known.rs rename to lib/components/fabro-validate/src/rules/type_known.rs diff --git a/lib/crates/fabro-validate/src/rules/unresolved_file_ref.rs b/lib/components/fabro-validate/src/rules/unresolved_file_ref.rs similarity index 100% rename from lib/crates/fabro-validate/src/rules/unresolved_file_ref.rs rename to lib/components/fabro-validate/src/rules/unresolved_file_ref.rs diff --git a/lib/crates/fabro-variable/Cargo.toml b/lib/components/fabro-variable/Cargo.toml similarity index 82% rename from lib/crates/fabro-variable/Cargo.toml rename to lib/components/fabro-variable/Cargo.toml index f709d06a0..7de3fe2a6 100644 --- a/lib/crates/fabro-variable/Cargo.toml +++ b/lib/components/fabro-variable/Cargo.toml @@ -14,8 +14,8 @@ workspace = true [dependencies] chrono.workspace = true -fabro-db = { path = "../fabro-db" } -fabro-types = { path = "../fabro-types" } +fabro-db = { path = "../../foundation/fabro-db" } +fabro-types = { path = "../../foundation/fabro-types" } serde.workspace = true serde_json.workspace = true sqlx.workspace = true diff --git a/lib/crates/fabro-variable/src/lib.rs b/lib/components/fabro-variable/src/lib.rs similarity index 100% rename from lib/crates/fabro-variable/src/lib.rs rename to lib/components/fabro-variable/src/lib.rs diff --git a/lib/crates/fabro-variable/tests/store.rs b/lib/components/fabro-variable/tests/store.rs similarity index 100% rename from lib/crates/fabro-variable/tests/store.rs rename to lib/components/fabro-variable/tests/store.rs diff --git a/lib/crates/fabro-workflow/Cargo.toml b/lib/components/fabro-workflow/Cargo.toml similarity index 78% rename from lib/crates/fabro-workflow/Cargo.toml rename to lib/components/fabro-workflow/Cargo.toml index e719de2fd..932bb0071 100644 --- a/lib/crates/fabro-workflow/Cargo.toml +++ b/lib/components/fabro-workflow/Cargo.toml @@ -21,10 +21,10 @@ workspace = true [dependencies] anyhow.workspace = true -fabro-auth = { path = "../fabro-auth" } +fabro-auth = { path = "../../foundation/fabro-auth" } fabro-acp = { path = "../fabro-acp" } fabro-agent = { path = "../fabro-agent" } -fabro-config = { path = "../fabro-config" } +fabro-config = { path = "../../foundation/fabro-config" } fabro-graphviz = { path = "../fabro-graphviz" } fabro-hooks = { path = "../fabro-hooks" } fabro-validate = { path = "../fabro-validate" } @@ -33,17 +33,17 @@ fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona"] } fabro-mcp = { path = "../fabro-mcp" } fabro-github = { path = "../fabro-github" } fabro-interview = { path = "../fabro-interview" } -fabro-template = { path = "../fabro-template" } +fabro-template = { path = "../../foundation/fabro-template" } fabro-tool = { path = "../fabro-tool" } -fabro-util = { path = "../fabro-util" } +fabro-util = { path = "../../foundation/fabro-util" } fabro-redact.workspace = true fabro-checkpoint = { path = "../fabro-checkpoint" } fabro-llm = { path = "../fabro-llm" } -fabro-model = { path = "../fabro-model" } -fabro-core = { path = "../fabro-core" } +fabro-model = { path = "../../foundation/fabro-model" } +fabro-core = { path = "../../foundation/fabro-core" } fabro-store = { path = "../fabro-store" } fabro-static.workspace = true -fabro-types = { path = "../fabro-types" } +fabro-types = { path = "../../foundation/fabro-types" } fabro-http.workspace = true thiserror.workspace = true serde.workspace = true @@ -72,12 +72,12 @@ tracing.workspace = true walkdir.workspace = true tempfile = "3" toml.workspace = true -fabro-vault = { path = "../fabro-vault" } +fabro-vault = { path = "../../foundation/fabro-vault" } [dev-dependencies] base64.workspace = true fabro-acp = { path = "../fabro-acp", features = ["test-support"] } fabro-workflow = { path = ".", features = ["test-support"] } -fabro-api = { path = "../fabro-api" } +fabro-api = { path = "../../foundation/fabro-api" } fabro-environment = { path = "../fabro-environment" } fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona", "docker", "test-support"] } fabro-mcp = { path = "../fabro-mcp" } @@ -86,7 +86,7 @@ object_store.workspace = true assert_cmd = "2" predicates = "3" httpmock = "0.8" -fabro-macros = { path = "../fabro-macros" } +fabro-macros = { path = "../../foundation/fabro-macros" } fabro-test = { workspace = true } -fabro-types = { path = "../fabro-types", features = ["test-support"] } +fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] } shlex = "1" diff --git a/lib/crates/fabro-workflow/README.md b/lib/components/fabro-workflow/README.md similarity index 100% rename from lib/crates/fabro-workflow/README.md rename to lib/components/fabro-workflow/README.md diff --git a/lib/crates/fabro-workflow/src/artifact.rs b/lib/components/fabro-workflow/src/artifact.rs similarity index 100% rename from lib/crates/fabro-workflow/src/artifact.rs rename to lib/components/fabro-workflow/src/artifact.rs diff --git a/lib/crates/fabro-workflow/src/artifact_snapshot.rs b/lib/components/fabro-workflow/src/artifact_snapshot.rs similarity index 100% rename from lib/crates/fabro-workflow/src/artifact_snapshot.rs rename to lib/components/fabro-workflow/src/artifact_snapshot.rs diff --git a/lib/crates/fabro-workflow/src/artifact_upload.rs b/lib/components/fabro-workflow/src/artifact_upload.rs similarity index 100% rename from lib/crates/fabro-workflow/src/artifact_upload.rs rename to lib/components/fabro-workflow/src/artifact_upload.rs diff --git a/lib/crates/fabro-workflow/src/billing_rollup.rs b/lib/components/fabro-workflow/src/billing_rollup.rs similarity index 100% rename from lib/crates/fabro-workflow/src/billing_rollup.rs rename to lib/components/fabro-workflow/src/billing_rollup.rs diff --git a/lib/crates/fabro-workflow/src/command_log.rs b/lib/components/fabro-workflow/src/command_log.rs similarity index 100% rename from lib/crates/fabro-workflow/src/command_log.rs rename to lib/components/fabro-workflow/src/command_log.rs diff --git a/lib/crates/fabro-workflow/src/condition.rs b/lib/components/fabro-workflow/src/condition.rs similarity index 100% rename from lib/crates/fabro-workflow/src/condition.rs rename to lib/components/fabro-workflow/src/condition.rs diff --git a/lib/crates/fabro-workflow/src/context.rs b/lib/components/fabro-workflow/src/context.rs similarity index 100% rename from lib/crates/fabro-workflow/src/context.rs rename to lib/components/fabro-workflow/src/context.rs diff --git a/lib/crates/fabro-workflow/src/error.rs b/lib/components/fabro-workflow/src/error.rs similarity index 100% rename from lib/crates/fabro-workflow/src/error.rs rename to lib/components/fabro-workflow/src/error.rs diff --git a/lib/crates/fabro-workflow/src/event.rs b/lib/components/fabro-workflow/src/event.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event.rs rename to lib/components/fabro-workflow/src/event.rs diff --git a/lib/crates/fabro-workflow/src/event/convert.rs b/lib/components/fabro-workflow/src/event/convert.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/convert.rs rename to lib/components/fabro-workflow/src/event/convert.rs diff --git a/lib/crates/fabro-workflow/src/event/emitter.rs b/lib/components/fabro-workflow/src/event/emitter.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/emitter.rs rename to lib/components/fabro-workflow/src/event/emitter.rs diff --git a/lib/crates/fabro-workflow/src/event/events.rs b/lib/components/fabro-workflow/src/event/events.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/events.rs rename to lib/components/fabro-workflow/src/event/events.rs diff --git a/lib/crates/fabro-workflow/src/event/names.rs b/lib/components/fabro-workflow/src/event/names.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/names.rs rename to lib/components/fabro-workflow/src/event/names.rs diff --git a/lib/crates/fabro-workflow/src/event/redaction.rs b/lib/components/fabro-workflow/src/event/redaction.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/redaction.rs rename to lib/components/fabro-workflow/src/event/redaction.rs diff --git a/lib/crates/fabro-workflow/src/event/sink.rs b/lib/components/fabro-workflow/src/event/sink.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/sink.rs rename to lib/components/fabro-workflow/src/event/sink.rs diff --git a/lib/crates/fabro-workflow/src/event/stored_fields.rs b/lib/components/fabro-workflow/src/event/stored_fields.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/stored_fields.rs rename to lib/components/fabro-workflow/src/event/stored_fields.rs diff --git a/lib/crates/fabro-workflow/src/event/test_support.rs b/lib/components/fabro-workflow/src/event/test_support.rs similarity index 100% rename from lib/crates/fabro-workflow/src/event/test_support.rs rename to lib/components/fabro-workflow/src/event/test_support.rs diff --git a/lib/crates/fabro-workflow/src/file_resolver.rs b/lib/components/fabro-workflow/src/file_resolver.rs similarity index 100% rename from lib/crates/fabro-workflow/src/file_resolver.rs rename to lib/components/fabro-workflow/src/file_resolver.rs diff --git a/lib/crates/fabro-workflow/src/git.rs b/lib/components/fabro-workflow/src/git.rs similarity index 100% rename from lib/crates/fabro-workflow/src/git.rs rename to lib/components/fabro-workflow/src/git.rs diff --git a/lib/crates/fabro-workflow/src/github_token_source.rs b/lib/components/fabro-workflow/src/github_token_source.rs similarity index 100% rename from lib/crates/fabro-workflow/src/github_token_source.rs rename to lib/components/fabro-workflow/src/github_token_source.rs diff --git a/lib/crates/fabro-workflow/src/graph.rs b/lib/components/fabro-workflow/src/graph.rs similarity index 100% rename from lib/crates/fabro-workflow/src/graph.rs rename to lib/components/fabro-workflow/src/graph.rs diff --git a/lib/crates/fabro-workflow/src/graph/routing.rs b/lib/components/fabro-workflow/src/graph/routing.rs similarity index 100% rename from lib/crates/fabro-workflow/src/graph/routing.rs rename to lib/components/fabro-workflow/src/graph/routing.rs diff --git a/lib/crates/fabro-workflow/src/handler/agent.rs b/lib/components/fabro-workflow/src/handler/agent.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/agent.rs rename to lib/components/fabro-workflow/src/handler/agent.rs diff --git a/lib/crates/fabro-workflow/src/handler/command.rs b/lib/components/fabro-workflow/src/handler/command.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/command.rs rename to lib/components/fabro-workflow/src/handler/command.rs diff --git a/lib/crates/fabro-workflow/src/handler/conditional.rs b/lib/components/fabro-workflow/src/handler/conditional.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/conditional.rs rename to lib/components/fabro-workflow/src/handler/conditional.rs diff --git a/lib/crates/fabro-workflow/src/handler/exit.rs b/lib/components/fabro-workflow/src/handler/exit.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/exit.rs rename to lib/components/fabro-workflow/src/handler/exit.rs diff --git a/lib/crates/fabro-workflow/src/handler/fan_in.rs b/lib/components/fabro-workflow/src/handler/fan_in.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/fan_in.rs rename to lib/components/fabro-workflow/src/handler/fan_in.rs diff --git a/lib/crates/fabro-workflow/src/handler/human.rs b/lib/components/fabro-workflow/src/handler/human.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/human.rs rename to lib/components/fabro-workflow/src/handler/human.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/acp.rs b/lib/components/fabro-workflow/src/handler/llm/acp.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/acp.rs rename to lib/components/fabro-workflow/src/handler/llm/acp.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/activation_lease.rs b/lib/components/fabro-workflow/src/handler/llm/activation_lease.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/activation_lease.rs rename to lib/components/fabro-workflow/src/handler/llm/activation_lease.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/api.rs b/lib/components/fabro-workflow/src/handler/llm/api.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/api.rs rename to lib/components/fabro-workflow/src/handler/llm/api.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/changed_files.rs b/lib/components/fabro-workflow/src/handler/llm/changed_files.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/changed_files.rs rename to lib/components/fabro-workflow/src/handler/llm/changed_files.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/mod.rs b/lib/components/fabro-workflow/src/handler/llm/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/mod.rs rename to lib/components/fabro-workflow/src/handler/llm/mod.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/preamble.rs b/lib/components/fabro-workflow/src/handler/llm/preamble.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/preamble.rs rename to lib/components/fabro-workflow/src/handler/llm/preamble.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/router.rs b/lib/components/fabro-workflow/src/handler/llm/router.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/router.rs rename to lib/components/fabro-workflow/src/handler/llm/router.rs diff --git a/lib/crates/fabro-workflow/src/handler/llm/routing.rs b/lib/components/fabro-workflow/src/handler/llm/routing.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/llm/routing.rs rename to lib/components/fabro-workflow/src/handler/llm/routing.rs diff --git a/lib/crates/fabro-workflow/src/handler/manager_loop.rs b/lib/components/fabro-workflow/src/handler/manager_loop.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/manager_loop.rs rename to lib/components/fabro-workflow/src/handler/manager_loop.rs diff --git a/lib/crates/fabro-workflow/src/handler/mod.rs b/lib/components/fabro-workflow/src/handler/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/mod.rs rename to lib/components/fabro-workflow/src/handler/mod.rs diff --git a/lib/crates/fabro-workflow/src/handler/parallel.rs b/lib/components/fabro-workflow/src/handler/parallel.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/parallel.rs rename to lib/components/fabro-workflow/src/handler/parallel.rs diff --git a/lib/crates/fabro-workflow/src/handler/prompt.rs b/lib/components/fabro-workflow/src/handler/prompt.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/prompt.rs rename to lib/components/fabro-workflow/src/handler/prompt.rs diff --git a/lib/crates/fabro-workflow/src/handler/start.rs b/lib/components/fabro-workflow/src/handler/start.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/start.rs rename to lib/components/fabro-workflow/src/handler/start.rs diff --git a/lib/crates/fabro-workflow/src/handler/structured_output.rs b/lib/components/fabro-workflow/src/handler/structured_output.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/structured_output.rs rename to lib/components/fabro-workflow/src/handler/structured_output.rs diff --git a/lib/crates/fabro-workflow/src/handler/wait.rs b/lib/components/fabro-workflow/src/handler/wait.rs similarity index 100% rename from lib/crates/fabro-workflow/src/handler/wait.rs rename to lib/components/fabro-workflow/src/handler/wait.rs diff --git a/lib/crates/fabro-workflow/src/hook_context.rs b/lib/components/fabro-workflow/src/hook_context.rs similarity index 100% rename from lib/crates/fabro-workflow/src/hook_context.rs rename to lib/components/fabro-workflow/src/hook_context.rs diff --git a/lib/crates/fabro-workflow/src/interview_runtime.rs b/lib/components/fabro-workflow/src/interview_runtime.rs similarity index 100% rename from lib/crates/fabro-workflow/src/interview_runtime.rs rename to lib/components/fabro-workflow/src/interview_runtime.rs diff --git a/lib/crates/fabro-workflow/src/lib.rs b/lib/components/fabro-workflow/src/lib.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lib.rs rename to lib/components/fabro-workflow/src/lib.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/artifact.rs b/lib/components/fabro-workflow/src/lifecycle/artifact.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/artifact.rs rename to lib/components/fabro-workflow/src/lifecycle/artifact.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/auto_status.rs b/lib/components/fabro-workflow/src/lifecycle/auto_status.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/auto_status.rs rename to lib/components/fabro-workflow/src/lifecycle/auto_status.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/circuit_breaker.rs b/lib/components/fabro-workflow/src/lifecycle/circuit_breaker.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/circuit_breaker.rs rename to lib/components/fabro-workflow/src/lifecycle/circuit_breaker.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/event.rs b/lib/components/fabro-workflow/src/lifecycle/event.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/event.rs rename to lib/components/fabro-workflow/src/lifecycle/event.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/fidelity.rs b/lib/components/fabro-workflow/src/lifecycle/fidelity.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/fidelity.rs rename to lib/components/fabro-workflow/src/lifecycle/fidelity.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/git.rs b/lib/components/fabro-workflow/src/lifecycle/git.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/git.rs rename to lib/components/fabro-workflow/src/lifecycle/git.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/hook.rs b/lib/components/fabro-workflow/src/lifecycle/hook.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/hook.rs rename to lib/components/fabro-workflow/src/lifecycle/hook.rs diff --git a/lib/crates/fabro-workflow/src/lifecycle/mod.rs b/lib/components/fabro-workflow/src/lifecycle/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/lifecycle/mod.rs rename to lib/components/fabro-workflow/src/lifecycle/mod.rs diff --git a/lib/crates/fabro-workflow/src/node_handler.rs b/lib/components/fabro-workflow/src/node_handler.rs similarity index 100% rename from lib/crates/fabro-workflow/src/node_handler.rs rename to lib/components/fabro-workflow/src/node_handler.rs diff --git a/lib/crates/fabro-workflow/src/operations/archive.rs b/lib/components/fabro-workflow/src/operations/archive.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/archive.rs rename to lib/components/fabro-workflow/src/operations/archive.rs diff --git a/lib/crates/fabro-workflow/src/operations/create.rs b/lib/components/fabro-workflow/src/operations/create.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/create.rs rename to lib/components/fabro-workflow/src/operations/create.rs diff --git a/lib/crates/fabro-workflow/src/operations/fork.rs b/lib/components/fabro-workflow/src/operations/fork.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/fork.rs rename to lib/components/fabro-workflow/src/operations/fork.rs diff --git a/lib/crates/fabro-workflow/src/operations/mod.rs b/lib/components/fabro-workflow/src/operations/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/mod.rs rename to lib/components/fabro-workflow/src/operations/mod.rs diff --git a/lib/crates/fabro-workflow/src/operations/resume.rs b/lib/components/fabro-workflow/src/operations/resume.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/resume.rs rename to lib/components/fabro-workflow/src/operations/resume.rs diff --git a/lib/crates/fabro-workflow/src/operations/retry.rs b/lib/components/fabro-workflow/src/operations/retry.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/retry.rs rename to lib/components/fabro-workflow/src/operations/retry.rs diff --git a/lib/crates/fabro-workflow/src/operations/rewind.rs b/lib/components/fabro-workflow/src/operations/rewind.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/rewind.rs rename to lib/components/fabro-workflow/src/operations/rewind.rs diff --git a/lib/crates/fabro-workflow/src/operations/run_store.rs b/lib/components/fabro-workflow/src/operations/run_store.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/run_store.rs rename to lib/components/fabro-workflow/src/operations/run_store.rs diff --git a/lib/crates/fabro-workflow/src/operations/source.rs b/lib/components/fabro-workflow/src/operations/source.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/source.rs rename to lib/components/fabro-workflow/src/operations/source.rs diff --git a/lib/crates/fabro-workflow/src/operations/start.rs b/lib/components/fabro-workflow/src/operations/start.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/start.rs rename to lib/components/fabro-workflow/src/operations/start.rs diff --git a/lib/crates/fabro-workflow/src/operations/timeline.rs b/lib/components/fabro-workflow/src/operations/timeline.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/timeline.rs rename to lib/components/fabro-workflow/src/operations/timeline.rs diff --git a/lib/crates/fabro-workflow/src/operations/validate.rs b/lib/components/fabro-workflow/src/operations/validate.rs similarity index 100% rename from lib/crates/fabro-workflow/src/operations/validate.rs rename to lib/components/fabro-workflow/src/operations/validate.rs diff --git a/lib/crates/fabro-workflow/src/outcome.rs b/lib/components/fabro-workflow/src/outcome.rs similarity index 100% rename from lib/crates/fabro-workflow/src/outcome.rs rename to lib/components/fabro-workflow/src/outcome.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/execute.rs b/lib/components/fabro-workflow/src/pipeline/execute.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/execute.rs rename to lib/components/fabro-workflow/src/pipeline/execute.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/execute/tests.rs b/lib/components/fabro-workflow/src/pipeline/execute/tests.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/execute/tests.rs rename to lib/components/fabro-workflow/src/pipeline/execute/tests.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/finalize.rs b/lib/components/fabro-workflow/src/pipeline/finalize.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/finalize.rs rename to lib/components/fabro-workflow/src/pipeline/finalize.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/initialize.rs b/lib/components/fabro-workflow/src/pipeline/initialize.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/initialize.rs rename to lib/components/fabro-workflow/src/pipeline/initialize.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/mod.rs b/lib/components/fabro-workflow/src/pipeline/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/mod.rs rename to lib/components/fabro-workflow/src/pipeline/mod.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/parse.rs b/lib/components/fabro-workflow/src/pipeline/parse.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/parse.rs rename to lib/components/fabro-workflow/src/pipeline/parse.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/persist.rs b/lib/components/fabro-workflow/src/pipeline/persist.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/persist.rs rename to lib/components/fabro-workflow/src/pipeline/persist.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/prompts/pr_body.md b/lib/components/fabro-workflow/src/pipeline/prompts/pr_body.md similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/prompts/pr_body.md rename to lib/components/fabro-workflow/src/pipeline/prompts/pr_body.md diff --git a/lib/crates/fabro-workflow/src/pipeline/pull_request.rs b/lib/components/fabro-workflow/src/pipeline/pull_request.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/pull_request.rs rename to lib/components/fabro-workflow/src/pipeline/pull_request.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/transform.rs b/lib/components/fabro-workflow/src/pipeline/transform.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/transform.rs rename to lib/components/fabro-workflow/src/pipeline/transform.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/types.rs b/lib/components/fabro-workflow/src/pipeline/types.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/types.rs rename to lib/components/fabro-workflow/src/pipeline/types.rs diff --git a/lib/crates/fabro-workflow/src/pipeline/validate.rs b/lib/components/fabro-workflow/src/pipeline/validate.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pipeline/validate.rs rename to lib/components/fabro-workflow/src/pipeline/validate.rs diff --git a/lib/crates/fabro-workflow/src/pull_request.rs b/lib/components/fabro-workflow/src/pull_request.rs similarity index 100% rename from lib/crates/fabro-workflow/src/pull_request.rs rename to lib/components/fabro-workflow/src/pull_request.rs diff --git a/lib/crates/fabro-workflow/src/records/checkpoint.rs b/lib/components/fabro-workflow/src/records/checkpoint.rs similarity index 100% rename from lib/crates/fabro-workflow/src/records/checkpoint.rs rename to lib/components/fabro-workflow/src/records/checkpoint.rs diff --git a/lib/crates/fabro-workflow/src/records/conclusion.rs b/lib/components/fabro-workflow/src/records/conclusion.rs similarity index 100% rename from lib/crates/fabro-workflow/src/records/conclusion.rs rename to lib/components/fabro-workflow/src/records/conclusion.rs diff --git a/lib/crates/fabro-workflow/src/records/mod.rs b/lib/components/fabro-workflow/src/records/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/records/mod.rs rename to lib/components/fabro-workflow/src/records/mod.rs diff --git a/lib/crates/fabro-workflow/src/records/run.rs b/lib/components/fabro-workflow/src/records/run.rs similarity index 100% rename from lib/crates/fabro-workflow/src/records/run.rs rename to lib/components/fabro-workflow/src/records/run.rs diff --git a/lib/crates/fabro-workflow/src/records/start.rs b/lib/components/fabro-workflow/src/records/start.rs similarity index 100% rename from lib/crates/fabro-workflow/src/records/start.rs rename to lib/components/fabro-workflow/src/records/start.rs diff --git a/lib/crates/fabro-workflow/src/retry.rs b/lib/components/fabro-workflow/src/retry.rs similarity index 100% rename from lib/crates/fabro-workflow/src/retry.rs rename to lib/components/fabro-workflow/src/retry.rs diff --git a/lib/crates/fabro-workflow/src/run_control.rs b/lib/components/fabro-workflow/src/run_control.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_control.rs rename to lib/components/fabro-workflow/src/run_control.rs diff --git a/lib/crates/fabro-workflow/src/run_dir.rs b/lib/components/fabro-workflow/src/run_dir.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_dir.rs rename to lib/components/fabro-workflow/src/run_dir.rs diff --git a/lib/crates/fabro-workflow/src/run_lookup.rs b/lib/components/fabro-workflow/src/run_lookup.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_lookup.rs rename to lib/components/fabro-workflow/src/run_lookup.rs diff --git a/lib/crates/fabro-workflow/src/run_materialization.rs b/lib/components/fabro-workflow/src/run_materialization.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_materialization.rs rename to lib/components/fabro-workflow/src/run_materialization.rs diff --git a/lib/crates/fabro-workflow/src/run_metadata.rs b/lib/components/fabro-workflow/src/run_metadata.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_metadata.rs rename to lib/components/fabro-workflow/src/run_metadata.rs diff --git a/lib/crates/fabro-workflow/src/run_options.rs b/lib/components/fabro-workflow/src/run_options.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_options.rs rename to lib/components/fabro-workflow/src/run_options.rs diff --git a/lib/crates/fabro-workflow/src/run_status.rs b/lib/components/fabro-workflow/src/run_status.rs similarity index 100% rename from lib/crates/fabro-workflow/src/run_status.rs rename to lib/components/fabro-workflow/src/run_status.rs diff --git a/lib/crates/fabro-workflow/src/runtime_store.rs b/lib/components/fabro-workflow/src/runtime_store.rs similarity index 100% rename from lib/crates/fabro-workflow/src/runtime_store.rs rename to lib/components/fabro-workflow/src/runtime_store.rs diff --git a/lib/crates/fabro-workflow/src/sandbox_git.rs b/lib/components/fabro-workflow/src/sandbox_git.rs similarity index 100% rename from lib/crates/fabro-workflow/src/sandbox_git.rs rename to lib/components/fabro-workflow/src/sandbox_git.rs diff --git a/lib/crates/fabro-workflow/src/sandbox_git_runtime.rs b/lib/components/fabro-workflow/src/sandbox_git_runtime.rs similarity index 100% rename from lib/crates/fabro-workflow/src/sandbox_git_runtime.rs rename to lib/components/fabro-workflow/src/sandbox_git_runtime.rs diff --git a/lib/crates/fabro-workflow/src/services.rs b/lib/components/fabro-workflow/src/services.rs similarity index 100% rename from lib/crates/fabro-workflow/src/services.rs rename to lib/components/fabro-workflow/src/services.rs diff --git a/lib/crates/fabro-workflow/src/stage_scope.rs b/lib/components/fabro-workflow/src/stage_scope.rs similarity index 100% rename from lib/crates/fabro-workflow/src/stage_scope.rs rename to lib/components/fabro-workflow/src/stage_scope.rs diff --git a/lib/crates/fabro-workflow/src/static_reference.rs b/lib/components/fabro-workflow/src/static_reference.rs similarity index 100% rename from lib/crates/fabro-workflow/src/static_reference.rs rename to lib/components/fabro-workflow/src/static_reference.rs diff --git a/lib/crates/fabro-workflow/src/steering_hub.rs b/lib/components/fabro-workflow/src/steering_hub.rs similarity index 100% rename from lib/crates/fabro-workflow/src/steering_hub.rs rename to lib/components/fabro-workflow/src/steering_hub.rs diff --git a/lib/crates/fabro-workflow/src/test_support.rs b/lib/components/fabro-workflow/src/test_support.rs similarity index 100% rename from lib/crates/fabro-workflow/src/test_support.rs rename to lib/components/fabro-workflow/src/test_support.rs diff --git a/lib/crates/fabro-workflow/src/transforms/file_inlining.rs b/lib/components/fabro-workflow/src/transforms/file_inlining.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/file_inlining.rs rename to lib/components/fabro-workflow/src/transforms/file_inlining.rs diff --git a/lib/crates/fabro-workflow/src/transforms/import.rs b/lib/components/fabro-workflow/src/transforms/import.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/import.rs rename to lib/components/fabro-workflow/src/transforms/import.rs diff --git a/lib/crates/fabro-workflow/src/transforms/importable_field.rs b/lib/components/fabro-workflow/src/transforms/importable_field.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/importable_field.rs rename to lib/components/fabro-workflow/src/transforms/importable_field.rs diff --git a/lib/crates/fabro-workflow/src/transforms/mod.rs b/lib/components/fabro-workflow/src/transforms/mod.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/mod.rs rename to lib/components/fabro-workflow/src/transforms/mod.rs diff --git a/lib/crates/fabro-workflow/src/transforms/model_resolution.rs b/lib/components/fabro-workflow/src/transforms/model_resolution.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/model_resolution.rs rename to lib/components/fabro-workflow/src/transforms/model_resolution.rs diff --git a/lib/crates/fabro-workflow/src/transforms/preamble.rs b/lib/components/fabro-workflow/src/transforms/preamble.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/preamble.rs rename to lib/components/fabro-workflow/src/transforms/preamble.rs diff --git a/lib/crates/fabro-workflow/src/transforms/stylesheet.rs b/lib/components/fabro-workflow/src/transforms/stylesheet.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/stylesheet.rs rename to lib/components/fabro-workflow/src/transforms/stylesheet.rs diff --git a/lib/crates/fabro-workflow/src/transforms/stylesheet_application.rs b/lib/components/fabro-workflow/src/transforms/stylesheet_application.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/stylesheet_application.rs rename to lib/components/fabro-workflow/src/transforms/stylesheet_application.rs diff --git a/lib/crates/fabro-workflow/src/transforms/variable_expansion.rs b/lib/components/fabro-workflow/src/transforms/variable_expansion.rs similarity index 100% rename from lib/crates/fabro-workflow/src/transforms/variable_expansion.rs rename to lib/components/fabro-workflow/src/transforms/variable_expansion.rs diff --git a/lib/crates/fabro-workflow/src/workflow_bundle.rs b/lib/components/fabro-workflow/src/workflow_bundle.rs similarity index 100% rename from lib/crates/fabro-workflow/src/workflow_bundle.rs rename to lib/components/fabro-workflow/src/workflow_bundle.rs diff --git a/lib/crates/fabro-workflow/tests/it/attractor_compat.rs b/lib/components/fabro-workflow/tests/it/attractor_compat.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/it/attractor_compat.rs rename to lib/components/fabro-workflow/tests/it/attractor_compat.rs diff --git a/lib/crates/fabro-workflow/tests/it/cp_integration.rs b/lib/components/fabro-workflow/tests/it/cp_integration.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/it/cp_integration.rs rename to lib/components/fabro-workflow/tests/it/cp_integration.rs diff --git a/lib/crates/fabro-workflow/tests/it/daytona_integration.rs b/lib/components/fabro-workflow/tests/it/daytona_integration.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/it/daytona_integration.rs rename to lib/components/fabro-workflow/tests/it/daytona_integration.rs diff --git a/lib/crates/fabro-workflow/tests/it/git_integration.rs b/lib/components/fabro-workflow/tests/it/git_integration.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/it/git_integration.rs rename to lib/components/fabro-workflow/tests/it/git_integration.rs diff --git a/lib/crates/fabro-workflow/tests/it/integration.rs b/lib/components/fabro-workflow/tests/it/integration.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/it/integration.rs rename to lib/components/fabro-workflow/tests/it/integration.rs diff --git a/lib/crates/fabro-workflow/tests/it/main.rs b/lib/components/fabro-workflow/tests/it/main.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/it/main.rs rename to lib/components/fabro-workflow/tests/it/main.rs diff --git a/lib/crates/fabro-workflow/tests/materialize_run.rs b/lib/components/fabro-workflow/tests/materialize_run.rs similarity index 100% rename from lib/crates/fabro-workflow/tests/materialize_run.rs rename to lib/components/fabro-workflow/tests/materialize_run.rs diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap b/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap deleted file mode 100644 index f80ff0a94..000000000 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_max_tokens_finish_reason.snap +++ /dev/null @@ -1,5 +0,0 @@ ---- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs -expression: rendered ---- -"length" diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap b/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap deleted file mode 100644 index aedfd4696..000000000 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__gemini__decode_safety_finish_reason.snap +++ /dev/null @@ -1,5 +0,0 @@ ---- -source: lib/crates/fabro-llm/tests/it/wire/gemini.rs -expression: rendered ---- -"content_filter" diff --git a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap b/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap deleted file mode 100644 index 4c107d93b..000000000 --- a/lib/crates/fabro-llm/tests/it/wire/snapshots/it__wire__openai_compatible__stream_without_done_or_content_synthesizes_nothing.snap +++ /dev/null @@ -1,5 +0,0 @@ ---- -source: lib/crates/fabro-llm/tests/it/wire/openai_compatible.rs -expression: rendered ---- -[] diff --git a/lib/crates/build-support/Cargo.toml b/lib/foundation/build-support/Cargo.toml similarity index 100% rename from lib/crates/build-support/Cargo.toml rename to lib/foundation/build-support/Cargo.toml diff --git a/lib/crates/build-support/git_metadata.rs b/lib/foundation/build-support/git_metadata.rs similarity index 100% rename from lib/crates/build-support/git_metadata.rs rename to lib/foundation/build-support/git_metadata.rs diff --git a/lib/crates/fabro-api/Cargo.toml b/lib/foundation/fabro-api/Cargo.toml similarity index 93% rename from lib/crates/fabro-api/Cargo.toml rename to lib/foundation/fabro-api/Cargo.toml index 298dad17c..bc28670af 100644 --- a/lib/crates/fabro-api/Cargo.toml +++ b/lib/foundation/fabro-api/Cargo.toml @@ -15,7 +15,7 @@ wildcard_imports = "warn" [dependencies] chrono = { workspace = true, features = ["serde"] } -fabro-automation = { path = "../fabro-automation" } +fabro-automation = { path = "../../components/fabro-automation" } fabro-config = { path = "../fabro-config" } fabro-environment.workspace = true fabro-model = { path = "../fabro-model" } diff --git a/lib/crates/fabro-api/build.rs b/lib/foundation/fabro-api/build.rs similarity index 99% rename from lib/crates/fabro-api/build.rs rename to lib/foundation/fabro-api/build.rs index 0a81b9845..d6ebad38c 100644 --- a/lib/crates/fabro-api/build.rs +++ b/lib/foundation/fabro-api/build.rs @@ -155,7 +155,7 @@ fn spec_path_from_manifest_dir(manifest_dir: &Path) -> PathBuf { manifest_dir .ancestors() .nth(3) - .expect("fabro-api manifest dir should be nested under /lib/crates/fabro-api") + .expect("fabro-api manifest dir should be nested under /lib/foundation/fabro-api") .join("docs/public/api-reference/fabro-api.yaml") } diff --git a/lib/crates/fabro-api/src/lib.rs b/lib/foundation/fabro-api/src/lib.rs similarity index 100% rename from lib/crates/fabro-api/src/lib.rs rename to lib/foundation/fabro-api/src/lib.rs diff --git a/lib/crates/fabro-api/tests/agent_session_activated_props_round_trip.rs b/lib/foundation/fabro-api/tests/agent_session_activated_props_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/agent_session_activated_props_round_trip.rs rename to lib/foundation/fabro-api/tests/agent_session_activated_props_round_trip.rs diff --git a/lib/crates/fabro-api/tests/automation_round_trip.rs b/lib/foundation/fabro-api/tests/automation_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/automation_round_trip.rs rename to lib/foundation/fabro-api/tests/automation_round_trip.rs diff --git a/lib/crates/fabro-api/tests/billed_token_counts_round_trip.rs b/lib/foundation/fabro-api/tests/billed_token_counts_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/billed_token_counts_round_trip.rs rename to lib/foundation/fabro-api/tests/billed_token_counts_round_trip.rs diff --git a/lib/crates/fabro-api/tests/command_termination_round_trip.rs b/lib/foundation/fabro-api/tests/command_termination_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/command_termination_round_trip.rs rename to lib/foundation/fabro-api/tests/command_termination_round_trip.rs diff --git a/lib/crates/fabro-api/tests/completion_message_round_trip.rs b/lib/foundation/fabro-api/tests/completion_message_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/completion_message_round_trip.rs rename to lib/foundation/fabro-api/tests/completion_message_round_trip.rs diff --git a/lib/crates/fabro-api/tests/cost_source_round_trip.rs b/lib/foundation/fabro-api/tests/cost_source_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/cost_source_round_trip.rs rename to lib/foundation/fabro-api/tests/cost_source_round_trip.rs diff --git a/lib/crates/fabro-api/tests/diff_stats_round_trip.rs b/lib/foundation/fabro-api/tests/diff_stats_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/diff_stats_round_trip.rs rename to lib/foundation/fabro-api/tests/diff_stats_round_trip.rs diff --git a/lib/crates/fabro-api/tests/diff_summary_round_trip.rs b/lib/foundation/fabro-api/tests/diff_summary_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/diff_summary_round_trip.rs rename to lib/foundation/fabro-api/tests/diff_summary_round_trip.rs diff --git a/lib/crates/fabro-api/tests/environment_round_trip.rs b/lib/foundation/fabro-api/tests/environment_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/environment_round_trip.rs rename to lib/foundation/fabro-api/tests/environment_round_trip.rs diff --git a/lib/crates/fabro-api/tests/event_envelope_round_trip.rs b/lib/foundation/fabro-api/tests/event_envelope_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/event_envelope_round_trip.rs rename to lib/foundation/fabro-api/tests/event_envelope_round_trip.rs diff --git a/lib/crates/fabro-api/tests/git_context_round_trip.rs b/lib/foundation/fabro-api/tests/git_context_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/git_context_round_trip.rs rename to lib/foundation/fabro-api/tests/git_context_round_trip.rs diff --git a/lib/crates/fabro-api/tests/interview_option_round_trip.rs b/lib/foundation/fabro-api/tests/interview_option_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/interview_option_round_trip.rs rename to lib/foundation/fabro-api/tests/interview_option_round_trip.rs diff --git a/lib/crates/fabro-api/tests/interview_question_record_round_trip.rs b/lib/foundation/fabro-api/tests/interview_question_record_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/interview_question_record_round_trip.rs rename to lib/foundation/fabro-api/tests/interview_question_record_round_trip.rs diff --git a/lib/crates/fabro-api/tests/mcp_server_round_trip.rs b/lib/foundation/fabro-api/tests/mcp_server_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/mcp_server_round_trip.rs rename to lib/foundation/fabro-api/tests/mcp_server_round_trip.rs diff --git a/lib/crates/fabro-api/tests/mcp_transport_round_trip.rs b/lib/foundation/fabro-api/tests/mcp_transport_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/mcp_transport_round_trip.rs rename to lib/foundation/fabro-api/tests/mcp_transport_round_trip.rs diff --git a/lib/crates/fabro-api/tests/model_costs_round_trip.rs b/lib/foundation/fabro-api/tests/model_costs_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/model_costs_round_trip.rs rename to lib/foundation/fabro-api/tests/model_costs_round_trip.rs diff --git a/lib/crates/fabro-api/tests/model_features_round_trip.rs b/lib/foundation/fabro-api/tests/model_features_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/model_features_round_trip.rs rename to lib/foundation/fabro-api/tests/model_features_round_trip.rs diff --git a/lib/crates/fabro-api/tests/model_limits_round_trip.rs b/lib/foundation/fabro-api/tests/model_limits_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/model_limits_round_trip.rs rename to lib/foundation/fabro-api/tests/model_limits_round_trip.rs diff --git a/lib/crates/fabro-api/tests/model_round_trip.rs b/lib/foundation/fabro-api/tests/model_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/model_round_trip.rs rename to lib/foundation/fabro-api/tests/model_round_trip.rs diff --git a/lib/crates/fabro-api/tests/model_test_mode_round_trip.rs b/lib/foundation/fabro-api/tests/model_test_mode_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/model_test_mode_round_trip.rs rename to lib/foundation/fabro-api/tests/model_test_mode_round_trip.rs diff --git a/lib/crates/fabro-api/tests/pair_round_trip.rs b/lib/foundation/fabro-api/tests/pair_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/pair_round_trip.rs rename to lib/foundation/fabro-api/tests/pair_round_trip.rs diff --git a/lib/crates/fabro-api/tests/pending_interview_record_round_trip.rs b/lib/foundation/fabro-api/tests/pending_interview_record_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/pending_interview_record_round_trip.rs rename to lib/foundation/fabro-api/tests/pending_interview_record_round_trip.rs diff --git a/lib/crates/fabro-api/tests/pre_run_push_outcome_round_trip.rs b/lib/foundation/fabro-api/tests/pre_run_push_outcome_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/pre_run_push_outcome_round_trip.rs rename to lib/foundation/fabro-api/tests/pre_run_push_outcome_round_trip.rs diff --git a/lib/crates/fabro-api/tests/principal_round_trip.rs b/lib/foundation/fabro-api/tests/principal_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/principal_round_trip.rs rename to lib/foundation/fabro-api/tests/principal_round_trip.rs diff --git a/lib/crates/fabro-api/tests/provider_id_round_trip.rs b/lib/foundation/fabro-api/tests/provider_id_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/provider_id_round_trip.rs rename to lib/foundation/fabro-api/tests/provider_id_round_trip.rs diff --git a/lib/crates/fabro-api/tests/provider_round_trip.rs b/lib/foundation/fabro-api/tests/provider_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/provider_round_trip.rs rename to lib/foundation/fabro-api/tests/provider_round_trip.rs diff --git a/lib/crates/fabro-api/tests/pull_request_round_trip.rs b/lib/foundation/fabro-api/tests/pull_request_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/pull_request_round_trip.rs rename to lib/foundation/fabro-api/tests/pull_request_round_trip.rs diff --git a/lib/crates/fabro-api/tests/question_type_round_trip.rs b/lib/foundation/fabro-api/tests/question_type_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/question_type_round_trip.rs rename to lib/foundation/fabro-api/tests/question_type_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_billing_stage_round_trip.rs b/lib/foundation/fabro-api/tests/run_billing_stage_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_billing_stage_round_trip.rs rename to lib/foundation/fabro-api/tests/run_billing_stage_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_event_round_trip.rs b/lib/foundation/fabro-api/tests/run_event_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_event_round_trip.rs rename to lib/foundation/fabro-api/tests/run_event_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_failure_round_trip.rs b/lib/foundation/fabro-api/tests/run_failure_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_failure_round_trip.rs rename to lib/foundation/fabro-api/tests/run_failure_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_integrations_round_trip.rs b/lib/foundation/fabro-api/tests/run_integrations_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_integrations_round_trip.rs rename to lib/foundation/fabro-api/tests/run_integrations_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_projection_round_trip.rs b/lib/foundation/fabro-api/tests/run_projection_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_projection_round_trip.rs rename to lib/foundation/fabro-api/tests/run_projection_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_sandbox_round_trip.rs b/lib/foundation/fabro-api/tests/run_sandbox_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_sandbox_round_trip.rs rename to lib/foundation/fabro-api/tests/run_sandbox_round_trip.rs diff --git a/lib/crates/fabro-api/tests/run_summary_round_trip.rs b/lib/foundation/fabro-api/tests/run_summary_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/run_summary_round_trip.rs rename to lib/foundation/fabro-api/tests/run_summary_round_trip.rs diff --git a/lib/crates/fabro-api/tests/sandbox_details_round_trip.rs b/lib/foundation/fabro-api/tests/sandbox_details_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/sandbox_details_round_trip.rs rename to lib/foundation/fabro-api/tests/sandbox_details_round_trip.rs diff --git a/lib/crates/fabro-api/tests/sandbox_inventory_round_trip.rs b/lib/foundation/fabro-api/tests/sandbox_inventory_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/sandbox_inventory_round_trip.rs rename to lib/foundation/fabro-api/tests/sandbox_inventory_round_trip.rs diff --git a/lib/crates/fabro-api/tests/sandbox_services_round_trip.rs b/lib/foundation/fabro-api/tests/sandbox_services_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/sandbox_services_round_trip.rs rename to lib/foundation/fabro-api/tests/sandbox_services_round_trip.rs diff --git a/lib/crates/fabro-api/tests/secret_metadata_round_trip.rs b/lib/foundation/fabro-api/tests/secret_metadata_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/secret_metadata_round_trip.rs rename to lib/foundation/fabro-api/tests/secret_metadata_round_trip.rs diff --git a/lib/crates/fabro-api/tests/secret_type_round_trip.rs b/lib/foundation/fabro-api/tests/secret_type_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/secret_type_round_trip.rs rename to lib/foundation/fabro-api/tests/secret_type_round_trip.rs diff --git a/lib/crates/fabro-api/tests/server_settings_round_trip.rs b/lib/foundation/fabro-api/tests/server_settings_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/server_settings_round_trip.rs rename to lib/foundation/fabro-api/tests/server_settings_round_trip.rs diff --git a/lib/crates/fabro-api/tests/session_contract_round_trip.rs b/lib/foundation/fabro-api/tests/session_contract_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/session_contract_round_trip.rs rename to lib/foundation/fabro-api/tests/session_contract_round_trip.rs diff --git a/lib/crates/fabro-api/tests/stage_completion_round_trip.rs b/lib/foundation/fabro-api/tests/stage_completion_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/stage_completion_round_trip.rs rename to lib/foundation/fabro-api/tests/stage_completion_round_trip.rs diff --git a/lib/crates/fabro-api/tests/stage_handler_round_trip.rs b/lib/foundation/fabro-api/tests/stage_handler_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/stage_handler_round_trip.rs rename to lib/foundation/fabro-api/tests/stage_handler_round_trip.rs diff --git a/lib/crates/fabro-api/tests/stage_model_usage_round_trip.rs b/lib/foundation/fabro-api/tests/stage_model_usage_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/stage_model_usage_round_trip.rs rename to lib/foundation/fabro-api/tests/stage_model_usage_round_trip.rs diff --git a/lib/crates/fabro-api/tests/stage_outcome_round_trip.rs b/lib/foundation/fabro-api/tests/stage_outcome_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/stage_outcome_round_trip.rs rename to lib/foundation/fabro-api/tests/stage_outcome_round_trip.rs diff --git a/lib/crates/fabro-api/tests/stage_projection_round_trip.rs b/lib/foundation/fabro-api/tests/stage_projection_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/stage_projection_round_trip.rs rename to lib/foundation/fabro-api/tests/stage_projection_round_trip.rs diff --git a/lib/crates/fabro-api/tests/stage_state_round_trip.rs b/lib/foundation/fabro-api/tests/stage_state_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/stage_state_round_trip.rs rename to lib/foundation/fabro-api/tests/stage_state_round_trip.rs diff --git a/lib/crates/fabro-api/tests/status_round_trip.rs b/lib/foundation/fabro-api/tests/status_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/status_round_trip.rs rename to lib/foundation/fabro-api/tests/status_round_trip.rs diff --git a/lib/crates/fabro-api/tests/submit_answer_request_round_trip.rs b/lib/foundation/fabro-api/tests/submit_answer_request_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/submit_answer_request_round_trip.rs rename to lib/foundation/fabro-api/tests/submit_answer_request_round_trip.rs diff --git a/lib/crates/fabro-api/tests/system_integrations_round_trip.rs b/lib/foundation/fabro-api/tests/system_integrations_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/system_integrations_round_trip.rs rename to lib/foundation/fabro-api/tests/system_integrations_round_trip.rs diff --git a/lib/crates/fabro-api/tests/variable_round_trip.rs b/lib/foundation/fabro-api/tests/variable_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/variable_round_trip.rs rename to lib/foundation/fabro-api/tests/variable_round_trip.rs diff --git a/lib/crates/fabro-api/tests/workflow_settings_round_trip.rs b/lib/foundation/fabro-api/tests/workflow_settings_round_trip.rs similarity index 100% rename from lib/crates/fabro-api/tests/workflow_settings_round_trip.rs rename to lib/foundation/fabro-api/tests/workflow_settings_round_trip.rs diff --git a/lib/crates/fabro-auth/Cargo.toml b/lib/foundation/fabro-auth/Cargo.toml similarity index 100% rename from lib/crates/fabro-auth/Cargo.toml rename to lib/foundation/fabro-auth/Cargo.toml diff --git a/lib/crates/fabro-auth/src/context.rs b/lib/foundation/fabro-auth/src/context.rs similarity index 100% rename from lib/crates/fabro-auth/src/context.rs rename to lib/foundation/fabro-auth/src/context.rs diff --git a/lib/crates/fabro-auth/src/credential.rs b/lib/foundation/fabro-auth/src/credential.rs similarity index 100% rename from lib/crates/fabro-auth/src/credential.rs rename to lib/foundation/fabro-auth/src/credential.rs diff --git a/lib/crates/fabro-auth/src/credential_source.rs b/lib/foundation/fabro-auth/src/credential_source.rs similarity index 100% rename from lib/crates/fabro-auth/src/credential_source.rs rename to lib/foundation/fabro-auth/src/credential_source.rs diff --git a/lib/crates/fabro-auth/src/env_source.rs b/lib/foundation/fabro-auth/src/env_source.rs similarity index 100% rename from lib/crates/fabro-auth/src/env_source.rs rename to lib/foundation/fabro-auth/src/env_source.rs diff --git a/lib/crates/fabro-auth/src/extra_headers_source.rs b/lib/foundation/fabro-auth/src/extra_headers_source.rs similarity index 100% rename from lib/crates/fabro-auth/src/extra_headers_source.rs rename to lib/foundation/fabro-auth/src/extra_headers_source.rs diff --git a/lib/crates/fabro-auth/src/lib.rs b/lib/foundation/fabro-auth/src/lib.rs similarity index 100% rename from lib/crates/fabro-auth/src/lib.rs rename to lib/foundation/fabro-auth/src/lib.rs diff --git a/lib/crates/fabro-auth/src/refresh.rs b/lib/foundation/fabro-auth/src/refresh.rs similarity index 100% rename from lib/crates/fabro-auth/src/refresh.rs rename to lib/foundation/fabro-auth/src/refresh.rs diff --git a/lib/crates/fabro-auth/src/resolve.rs b/lib/foundation/fabro-auth/src/resolve.rs similarity index 100% rename from lib/crates/fabro-auth/src/resolve.rs rename to lib/foundation/fabro-auth/src/resolve.rs diff --git a/lib/crates/fabro-auth/src/sql_vault_source.rs b/lib/foundation/fabro-auth/src/sql_vault_source.rs similarity index 100% rename from lib/crates/fabro-auth/src/sql_vault_source.rs rename to lib/foundation/fabro-auth/src/sql_vault_source.rs diff --git a/lib/crates/fabro-auth/src/strategies/api_key.rs b/lib/foundation/fabro-auth/src/strategies/api_key.rs similarity index 100% rename from lib/crates/fabro-auth/src/strategies/api_key.rs rename to lib/foundation/fabro-auth/src/strategies/api_key.rs diff --git a/lib/crates/fabro-auth/src/strategies/codex_device.rs b/lib/foundation/fabro-auth/src/strategies/codex_device.rs similarity index 100% rename from lib/crates/fabro-auth/src/strategies/codex_device.rs rename to lib/foundation/fabro-auth/src/strategies/codex_device.rs diff --git a/lib/crates/fabro-auth/src/strategies/mod.rs b/lib/foundation/fabro-auth/src/strategies/mod.rs similarity index 100% rename from lib/crates/fabro-auth/src/strategies/mod.rs rename to lib/foundation/fabro-auth/src/strategies/mod.rs diff --git a/lib/crates/fabro-auth/src/strategy.rs b/lib/foundation/fabro-auth/src/strategy.rs similarity index 100% rename from lib/crates/fabro-auth/src/strategy.rs rename to lib/foundation/fabro-auth/src/strategy.rs diff --git a/lib/crates/fabro-auth/src/vault_ext.rs b/lib/foundation/fabro-auth/src/vault_ext.rs similarity index 100% rename from lib/crates/fabro-auth/src/vault_ext.rs rename to lib/foundation/fabro-auth/src/vault_ext.rs diff --git a/lib/crates/fabro-auth/src/vault_source.rs b/lib/foundation/fabro-auth/src/vault_source.rs similarity index 100% rename from lib/crates/fabro-auth/src/vault_source.rs rename to lib/foundation/fabro-auth/src/vault_source.rs diff --git a/lib/crates/fabro-client/Cargo.toml b/lib/foundation/fabro-client/Cargo.toml similarity index 100% rename from lib/crates/fabro-client/Cargo.toml rename to lib/foundation/fabro-client/Cargo.toml diff --git a/lib/crates/fabro-client/src/auth_store.rs b/lib/foundation/fabro-client/src/auth_store.rs similarity index 100% rename from lib/crates/fabro-client/src/auth_store.rs rename to lib/foundation/fabro-client/src/auth_store.rs diff --git a/lib/crates/fabro-client/src/client.rs b/lib/foundation/fabro-client/src/client.rs similarity index 100% rename from lib/crates/fabro-client/src/client.rs rename to lib/foundation/fabro-client/src/client.rs diff --git a/lib/crates/fabro-client/src/credential.rs b/lib/foundation/fabro-client/src/credential.rs similarity index 100% rename from lib/crates/fabro-client/src/credential.rs rename to lib/foundation/fabro-client/src/credential.rs diff --git a/lib/crates/fabro-client/src/error.rs b/lib/foundation/fabro-client/src/error.rs similarity index 100% rename from lib/crates/fabro-client/src/error.rs rename to lib/foundation/fabro-client/src/error.rs diff --git a/lib/crates/fabro-client/src/lib.rs b/lib/foundation/fabro-client/src/lib.rs similarity index 100% rename from lib/crates/fabro-client/src/lib.rs rename to lib/foundation/fabro-client/src/lib.rs diff --git a/lib/crates/fabro-client/src/session.rs b/lib/foundation/fabro-client/src/session.rs similarity index 100% rename from lib/crates/fabro-client/src/session.rs rename to lib/foundation/fabro-client/src/session.rs diff --git a/lib/crates/fabro-client/src/sse.rs b/lib/foundation/fabro-client/src/sse.rs similarity index 100% rename from lib/crates/fabro-client/src/sse.rs rename to lib/foundation/fabro-client/src/sse.rs diff --git a/lib/crates/fabro-client/src/target.rs b/lib/foundation/fabro-client/src/target.rs similarity index 100% rename from lib/crates/fabro-client/src/target.rs rename to lib/foundation/fabro-client/src/target.rs diff --git a/lib/crates/fabro-config/Cargo.toml b/lib/foundation/fabro-config/Cargo.toml similarity index 100% rename from lib/crates/fabro-config/Cargo.toml rename to lib/foundation/fabro-config/Cargo.toml diff --git a/lib/crates/fabro-config/migrations/2026050101_legacy_sandbox_to_environments.rs b/lib/foundation/fabro-config/migrations/2026050101_legacy_sandbox_to_environments.rs similarity index 100% rename from lib/crates/fabro-config/migrations/2026050101_legacy_sandbox_to_environments.rs rename to lib/foundation/fabro-config/migrations/2026050101_legacy_sandbox_to_environments.rs diff --git a/lib/crates/fabro-config/migrations/2026052801_settings_environments_to_server_files.rs b/lib/foundation/fabro-config/migrations/2026052801_settings_environments_to_server_files.rs similarity index 100% rename from lib/crates/fabro-config/migrations/2026052801_settings_environments_to_server_files.rs rename to lib/foundation/fabro-config/migrations/2026052801_settings_environments_to_server_files.rs diff --git a/lib/crates/fabro-config/src/bind.rs b/lib/foundation/fabro-config/src/bind.rs similarity index 100% rename from lib/crates/fabro-config/src/bind.rs rename to lib/foundation/fabro-config/src/bind.rs diff --git a/lib/crates/fabro-config/src/builders.rs b/lib/foundation/fabro-config/src/builders.rs similarity index 100% rename from lib/crates/fabro-config/src/builders.rs rename to lib/foundation/fabro-config/src/builders.rs diff --git a/lib/crates/fabro-config/src/daemon.rs b/lib/foundation/fabro-config/src/daemon.rs similarity index 100% rename from lib/crates/fabro-config/src/daemon.rs rename to lib/foundation/fabro-config/src/daemon.rs diff --git a/lib/crates/fabro-config/src/defaults.rs b/lib/foundation/fabro-config/src/defaults.rs similarity index 100% rename from lib/crates/fabro-config/src/defaults.rs rename to lib/foundation/fabro-config/src/defaults.rs diff --git a/lib/crates/fabro-config/src/defaults.toml b/lib/foundation/fabro-config/src/defaults.toml similarity index 100% rename from lib/crates/fabro-config/src/defaults.toml rename to lib/foundation/fabro-config/src/defaults.toml diff --git a/lib/crates/fabro-config/src/envfile.rs b/lib/foundation/fabro-config/src/envfile.rs similarity index 100% rename from lib/crates/fabro-config/src/envfile.rs rename to lib/foundation/fabro-config/src/envfile.rs diff --git a/lib/crates/fabro-config/src/error.rs b/lib/foundation/fabro-config/src/error.rs similarity index 100% rename from lib/crates/fabro-config/src/error.rs rename to lib/foundation/fabro-config/src/error.rs diff --git a/lib/crates/fabro-config/src/home.rs b/lib/foundation/fabro-config/src/home.rs similarity index 100% rename from lib/crates/fabro-config/src/home.rs rename to lib/foundation/fabro-config/src/home.rs diff --git a/lib/crates/fabro-config/src/input_overrides.rs b/lib/foundation/fabro-config/src/input_overrides.rs similarity index 100% rename from lib/crates/fabro-config/src/input_overrides.rs rename to lib/foundation/fabro-config/src/input_overrides.rs diff --git a/lib/crates/fabro-config/src/layers/cli.rs b/lib/foundation/fabro-config/src/layers/cli.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/cli.rs rename to lib/foundation/fabro-config/src/layers/cli.rs diff --git a/lib/crates/fabro-config/src/layers/combine.rs b/lib/foundation/fabro-config/src/layers/combine.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/combine.rs rename to lib/foundation/fabro-config/src/layers/combine.rs diff --git a/lib/crates/fabro-config/src/layers/environment.rs b/lib/foundation/fabro-config/src/layers/environment.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/environment.rs rename to lib/foundation/fabro-config/src/layers/environment.rs diff --git a/lib/crates/fabro-config/src/layers/llm.rs b/lib/foundation/fabro-config/src/layers/llm.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/llm.rs rename to lib/foundation/fabro-config/src/layers/llm.rs diff --git a/lib/crates/fabro-config/src/layers/log_filter.rs b/lib/foundation/fabro-config/src/layers/log_filter.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/log_filter.rs rename to lib/foundation/fabro-config/src/layers/log_filter.rs diff --git a/lib/crates/fabro-config/src/layers/maps.rs b/lib/foundation/fabro-config/src/layers/maps.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/maps.rs rename to lib/foundation/fabro-config/src/layers/maps.rs diff --git a/lib/crates/fabro-config/src/layers/mod.rs b/lib/foundation/fabro-config/src/layers/mod.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/mod.rs rename to lib/foundation/fabro-config/src/layers/mod.rs diff --git a/lib/crates/fabro-config/src/layers/project.rs b/lib/foundation/fabro-config/src/layers/project.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/project.rs rename to lib/foundation/fabro-config/src/layers/project.rs diff --git a/lib/crates/fabro-config/src/layers/run.rs b/lib/foundation/fabro-config/src/layers/run.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/run.rs rename to lib/foundation/fabro-config/src/layers/run.rs diff --git a/lib/crates/fabro-config/src/layers/server.rs b/lib/foundation/fabro-config/src/layers/server.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/server.rs rename to lib/foundation/fabro-config/src/layers/server.rs diff --git a/lib/crates/fabro-config/src/layers/settings.rs b/lib/foundation/fabro-config/src/layers/settings.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/settings.rs rename to lib/foundation/fabro-config/src/layers/settings.rs diff --git a/lib/crates/fabro-config/src/layers/splice_array.rs b/lib/foundation/fabro-config/src/layers/splice_array.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/splice_array.rs rename to lib/foundation/fabro-config/src/layers/splice_array.rs diff --git a/lib/crates/fabro-config/src/layers/workflow.rs b/lib/foundation/fabro-config/src/layers/workflow.rs similarity index 100% rename from lib/crates/fabro-config/src/layers/workflow.rs rename to lib/foundation/fabro-config/src/layers/workflow.rs diff --git a/lib/crates/fabro-config/src/lib.rs b/lib/foundation/fabro-config/src/lib.rs similarity index 100% rename from lib/crates/fabro-config/src/lib.rs rename to lib/foundation/fabro-config/src/lib.rs diff --git a/lib/crates/fabro-config/src/load.rs b/lib/foundation/fabro-config/src/load.rs similarity index 100% rename from lib/crates/fabro-config/src/load.rs rename to lib/foundation/fabro-config/src/load.rs diff --git a/lib/crates/fabro-config/src/logging.rs b/lib/foundation/fabro-config/src/logging.rs similarity index 100% rename from lib/crates/fabro-config/src/logging.rs rename to lib/foundation/fabro-config/src/logging.rs diff --git a/lib/crates/fabro-config/src/migrations.rs b/lib/foundation/fabro-config/src/migrations.rs similarity index 100% rename from lib/crates/fabro-config/src/migrations.rs rename to lib/foundation/fabro-config/src/migrations.rs diff --git a/lib/crates/fabro-config/src/parse.rs b/lib/foundation/fabro-config/src/parse.rs similarity index 100% rename from lib/crates/fabro-config/src/parse.rs rename to lib/foundation/fabro-config/src/parse.rs diff --git a/lib/crates/fabro-config/src/project.rs b/lib/foundation/fabro-config/src/project.rs similarity index 100% rename from lib/crates/fabro-config/src/project.rs rename to lib/foundation/fabro-config/src/project.rs diff --git a/lib/crates/fabro-config/src/resolve/cli.rs b/lib/foundation/fabro-config/src/resolve/cli.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/cli.rs rename to lib/foundation/fabro-config/src/resolve/cli.rs diff --git a/lib/crates/fabro-config/src/resolve/environment.rs b/lib/foundation/fabro-config/src/resolve/environment.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/environment.rs rename to lib/foundation/fabro-config/src/resolve/environment.rs diff --git a/lib/crates/fabro-config/src/resolve/error.rs b/lib/foundation/fabro-config/src/resolve/error.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/error.rs rename to lib/foundation/fabro-config/src/resolve/error.rs diff --git a/lib/crates/fabro-config/src/resolve/mod.rs b/lib/foundation/fabro-config/src/resolve/mod.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/mod.rs rename to lib/foundation/fabro-config/src/resolve/mod.rs diff --git a/lib/crates/fabro-config/src/resolve/project.rs b/lib/foundation/fabro-config/src/resolve/project.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/project.rs rename to lib/foundation/fabro-config/src/resolve/project.rs diff --git a/lib/crates/fabro-config/src/resolve/run.rs b/lib/foundation/fabro-config/src/resolve/run.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/run.rs rename to lib/foundation/fabro-config/src/resolve/run.rs diff --git a/lib/crates/fabro-config/src/resolve/server.rs b/lib/foundation/fabro-config/src/resolve/server.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/server.rs rename to lib/foundation/fabro-config/src/resolve/server.rs diff --git a/lib/crates/fabro-config/src/resolve/workflow.rs b/lib/foundation/fabro-config/src/resolve/workflow.rs similarity index 100% rename from lib/crates/fabro-config/src/resolve/workflow.rs rename to lib/foundation/fabro-config/src/resolve/workflow.rs diff --git a/lib/crates/fabro-config/src/run.rs b/lib/foundation/fabro-config/src/run.rs similarity index 100% rename from lib/crates/fabro-config/src/run.rs rename to lib/foundation/fabro-config/src/run.rs diff --git a/lib/crates/fabro-config/src/storage.rs b/lib/foundation/fabro-config/src/storage.rs similarity index 100% rename from lib/crates/fabro-config/src/storage.rs rename to lib/foundation/fabro-config/src/storage.rs diff --git a/lib/crates/fabro-config/src/tests/combine.rs b/lib/foundation/fabro-config/src/tests/combine.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/combine.rs rename to lib/foundation/fabro-config/src/tests/combine.rs diff --git a/lib/crates/fabro-config/src/tests/defaults.rs b/lib/foundation/fabro-config/src/tests/defaults.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/defaults.rs rename to lib/foundation/fabro-config/src/tests/defaults.rs diff --git a/lib/crates/fabro-config/src/tests/log_filter.rs b/lib/foundation/fabro-config/src/tests/log_filter.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/log_filter.rs rename to lib/foundation/fabro-config/src/tests/log_filter.rs diff --git a/lib/crates/fabro-config/src/tests/mod.rs b/lib/foundation/fabro-config/src/tests/mod.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/mod.rs rename to lib/foundation/fabro-config/src/tests/mod.rs diff --git a/lib/crates/fabro-config/src/tests/resolve_cli.rs b/lib/foundation/fabro-config/src/tests/resolve_cli.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/resolve_cli.rs rename to lib/foundation/fabro-config/src/tests/resolve_cli.rs diff --git a/lib/crates/fabro-config/src/tests/resolve_project.rs b/lib/foundation/fabro-config/src/tests/resolve_project.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/resolve_project.rs rename to lib/foundation/fabro-config/src/tests/resolve_project.rs diff --git a/lib/crates/fabro-config/src/tests/resolve_root.rs b/lib/foundation/fabro-config/src/tests/resolve_root.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/resolve_root.rs rename to lib/foundation/fabro-config/src/tests/resolve_root.rs diff --git a/lib/crates/fabro-config/src/tests/resolve_run.rs b/lib/foundation/fabro-config/src/tests/resolve_run.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/resolve_run.rs rename to lib/foundation/fabro-config/src/tests/resolve_run.rs diff --git a/lib/crates/fabro-config/src/tests/resolve_server.rs b/lib/foundation/fabro-config/src/tests/resolve_server.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/resolve_server.rs rename to lib/foundation/fabro-config/src/tests/resolve_server.rs diff --git a/lib/crates/fabro-config/src/tests/resolve_workflow.rs b/lib/foundation/fabro-config/src/tests/resolve_workflow.rs similarity index 100% rename from lib/crates/fabro-config/src/tests/resolve_workflow.rs rename to lib/foundation/fabro-config/src/tests/resolve_workflow.rs diff --git a/lib/crates/fabro-config/src/user.rs b/lib/foundation/fabro-config/src/user.rs similarity index 100% rename from lib/crates/fabro-config/src/user.rs rename to lib/foundation/fabro-config/src/user.rs diff --git a/lib/crates/fabro-core/Cargo.toml b/lib/foundation/fabro-core/Cargo.toml similarity index 100% rename from lib/crates/fabro-core/Cargo.toml rename to lib/foundation/fabro-core/Cargo.toml diff --git a/lib/crates/fabro-core/src/context.rs b/lib/foundation/fabro-core/src/context.rs similarity index 100% rename from lib/crates/fabro-core/src/context.rs rename to lib/foundation/fabro-core/src/context.rs diff --git a/lib/crates/fabro-core/src/error.rs b/lib/foundation/fabro-core/src/error.rs similarity index 100% rename from lib/crates/fabro-core/src/error.rs rename to lib/foundation/fabro-core/src/error.rs diff --git a/lib/crates/fabro-core/src/executor.rs b/lib/foundation/fabro-core/src/executor.rs similarity index 100% rename from lib/crates/fabro-core/src/executor.rs rename to lib/foundation/fabro-core/src/executor.rs diff --git a/lib/crates/fabro-core/src/graph.rs b/lib/foundation/fabro-core/src/graph.rs similarity index 100% rename from lib/crates/fabro-core/src/graph.rs rename to lib/foundation/fabro-core/src/graph.rs diff --git a/lib/crates/fabro-core/src/handler.rs b/lib/foundation/fabro-core/src/handler.rs similarity index 100% rename from lib/crates/fabro-core/src/handler.rs rename to lib/foundation/fabro-core/src/handler.rs diff --git a/lib/crates/fabro-core/src/lib.rs b/lib/foundation/fabro-core/src/lib.rs similarity index 100% rename from lib/crates/fabro-core/src/lib.rs rename to lib/foundation/fabro-core/src/lib.rs diff --git a/lib/crates/fabro-core/src/lifecycle.rs b/lib/foundation/fabro-core/src/lifecycle.rs similarity index 100% rename from lib/crates/fabro-core/src/lifecycle.rs rename to lib/foundation/fabro-core/src/lifecycle.rs diff --git a/lib/crates/fabro-core/src/outcome.rs b/lib/foundation/fabro-core/src/outcome.rs similarity index 100% rename from lib/crates/fabro-core/src/outcome.rs rename to lib/foundation/fabro-core/src/outcome.rs diff --git a/lib/crates/fabro-core/src/retry.rs b/lib/foundation/fabro-core/src/retry.rs similarity index 100% rename from lib/crates/fabro-core/src/retry.rs rename to lib/foundation/fabro-core/src/retry.rs diff --git a/lib/crates/fabro-core/src/stall.rs b/lib/foundation/fabro-core/src/stall.rs similarity index 100% rename from lib/crates/fabro-core/src/stall.rs rename to lib/foundation/fabro-core/src/stall.rs diff --git a/lib/crates/fabro-core/src/state.rs b/lib/foundation/fabro-core/src/state.rs similarity index 100% rename from lib/crates/fabro-core/src/state.rs rename to lib/foundation/fabro-core/src/state.rs diff --git a/lib/crates/fabro-core/src/test_fixtures.rs b/lib/foundation/fabro-core/src/test_fixtures.rs similarity index 100% rename from lib/crates/fabro-core/src/test_fixtures.rs rename to lib/foundation/fabro-core/src/test_fixtures.rs diff --git a/lib/crates/fabro-db/Cargo.toml b/lib/foundation/fabro-db/Cargo.toml similarity index 100% rename from lib/crates/fabro-db/Cargo.toml rename to lib/foundation/fabro-db/Cargo.toml diff --git a/lib/crates/fabro-db/migrations/2026063001_variables.sql b/lib/foundation/fabro-db/migrations/2026063001_variables.sql similarity index 100% rename from lib/crates/fabro-db/migrations/2026063001_variables.sql rename to lib/foundation/fabro-db/migrations/2026063001_variables.sql diff --git a/lib/crates/fabro-db/migrations/2026063002_environments.sql b/lib/foundation/fabro-db/migrations/2026063002_environments.sql similarity index 100% rename from lib/crates/fabro-db/migrations/2026063002_environments.sql rename to lib/foundation/fabro-db/migrations/2026063002_environments.sql diff --git a/lib/crates/fabro-db/migrations/2026071101_secrets.sql b/lib/foundation/fabro-db/migrations/2026071101_secrets.sql similarity index 100% rename from lib/crates/fabro-db/migrations/2026071101_secrets.sql rename to lib/foundation/fabro-db/migrations/2026071101_secrets.sql diff --git a/lib/crates/fabro-db/migrations/2026071102_mcp_servers.sql b/lib/foundation/fabro-db/migrations/2026071102_mcp_servers.sql similarity index 100% rename from lib/crates/fabro-db/migrations/2026071102_mcp_servers.sql rename to lib/foundation/fabro-db/migrations/2026071102_mcp_servers.sql diff --git a/lib/crates/fabro-db/migrations/2026071103_automations.sql b/lib/foundation/fabro-db/migrations/2026071103_automations.sql similarity index 100% rename from lib/crates/fabro-db/migrations/2026071103_automations.sql rename to lib/foundation/fabro-db/migrations/2026071103_automations.sql diff --git a/lib/crates/fabro-db/migrations/2026071104_runs.sql b/lib/foundation/fabro-db/migrations/2026071104_runs.sql similarity index 100% rename from lib/crates/fabro-db/migrations/2026071104_runs.sql rename to lib/foundation/fabro-db/migrations/2026071104_runs.sql diff --git a/lib/crates/fabro-db/src/lib.rs b/lib/foundation/fabro-db/src/lib.rs similarity index 100% rename from lib/crates/fabro-db/src/lib.rs rename to lib/foundation/fabro-db/src/lib.rs diff --git a/lib/crates/fabro-db/tests/sqlite.rs b/lib/foundation/fabro-db/tests/sqlite.rs similarity index 100% rename from lib/crates/fabro-db/tests/sqlite.rs rename to lib/foundation/fabro-db/tests/sqlite.rs diff --git a/lib/crates/fabro-dev/Cargo.toml b/lib/foundation/fabro-dev/Cargo.toml similarity index 100% rename from lib/crates/fabro-dev/Cargo.toml rename to lib/foundation/fabro-dev/Cargo.toml diff --git a/lib/crates/fabro-dev/src/commands/bench_tests.rs b/lib/foundation/fabro-dev/src/commands/bench_tests.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/bench_tests.rs rename to lib/foundation/fabro-dev/src/commands/bench_tests.rs diff --git a/lib/crates/fabro-dev/src/commands/build.rs b/lib/foundation/fabro-dev/src/commands/build.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/build.rs rename to lib/foundation/fabro-dev/src/commands/build.rs diff --git a/lib/crates/fabro-dev/src/commands/docker_build.rs b/lib/foundation/fabro-dev/src/commands/docker_build.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/docker_build.rs rename to lib/foundation/fabro-dev/src/commands/docker_build.rs diff --git a/lib/crates/fabro-dev/src/commands/docs.rs b/lib/foundation/fabro-dev/src/commands/docs.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/docs.rs rename to lib/foundation/fabro-dev/src/commands/docs.rs diff --git a/lib/crates/fabro-dev/src/commands/docs_cli_reference.rs b/lib/foundation/fabro-dev/src/commands/docs_cli_reference.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/docs_cli_reference.rs rename to lib/foundation/fabro-dev/src/commands/docs_cli_reference.rs diff --git a/lib/crates/fabro-dev/src/commands/docs_options_reference.rs b/lib/foundation/fabro-dev/src/commands/docs_options_reference.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/docs_options_reference.rs rename to lib/foundation/fabro-dev/src/commands/docs_options_reference.rs diff --git a/lib/crates/fabro-dev/src/commands/mod.rs b/lib/foundation/fabro-dev/src/commands/mod.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/mod.rs rename to lib/foundation/fabro-dev/src/commands/mod.rs diff --git a/lib/crates/fabro-dev/src/commands/release.rs b/lib/foundation/fabro-dev/src/commands/release.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/release.rs rename to lib/foundation/fabro-dev/src/commands/release.rs diff --git a/lib/crates/fabro-dev/src/commands/spa.rs b/lib/foundation/fabro-dev/src/commands/spa.rs similarity index 100% rename from lib/crates/fabro-dev/src/commands/spa.rs rename to lib/foundation/fabro-dev/src/commands/spa.rs diff --git a/lib/crates/fabro-dev/src/commands/spa_check.rs b/lib/foundation/fabro-dev/src/commands/spa_check.rs similarity index 97% rename from lib/crates/fabro-dev/src/commands/spa_check.rs rename to lib/foundation/fabro-dev/src/commands/spa_check.rs index 1fa93ea14..6ac315a79 100644 --- a/lib/crates/fabro-dev/src/commands/spa_check.rs +++ b/lib/foundation/fabro-dev/src/commands/spa_check.rs @@ -14,7 +14,7 @@ const DEFAULT_PAYLOAD_BUDGET_BYTES: u64 = 5 * 1024 * 1024; #[derive(Debug, Args)] pub(crate) struct SpaCheckArgs { - /// Repository root containing lib/crates/fabro-spa/assets. + /// Repository root containing lib/apps/fabro-spa/assets. #[arg(long, hide = true)] root: Option, /// Override the raw asset budget. @@ -36,7 +36,7 @@ pub(crate) fn spa_check(args: SpaCheckArgs) -> Result<()> { let root = args.root.unwrap_or_else(workspace_root); let web_dir = root.join("apps/fabro-web"); let dist_dir = web_dir.join("dist"); - let asset_dir = root.join("lib/crates/fabro-spa/assets"); + let asset_dir = root.join("lib/apps/fabro-spa/assets"); check_spa_asset_budgets( &asset_dir, args.asset_budget_bytes, diff --git a/lib/crates/fabro-dev/src/commands/spa_refresh.rs b/lib/foundation/fabro-dev/src/commands/spa_refresh.rs similarity index 97% rename from lib/crates/fabro-dev/src/commands/spa_refresh.rs rename to lib/foundation/fabro-dev/src/commands/spa_refresh.rs index 2174392ae..a8709ff65 100644 --- a/lib/crates/fabro-dev/src/commands/spa_refresh.rs +++ b/lib/foundation/fabro-dev/src/commands/spa_refresh.rs @@ -14,7 +14,7 @@ const DEFAULT_PAYLOAD_BUDGET_BYTES: u64 = 5 * 1024 * 1024; #[derive(Debug, Args)] pub(crate) struct SpaRefreshArgs { - /// Repository root containing apps/fabro-web and lib/crates/fabro-spa. + /// Repository root containing apps/fabro-web and lib/apps/fabro-spa. #[arg(long, hide = true)] root: Option, /// Override the raw asset budget. @@ -49,7 +49,7 @@ fn spa_refresh_root_with_budgets( ) -> Result<()> { let web_dir = root.join("apps/fabro-web"); let dist_dir = web_dir.join("dist"); - let asset_dir = root.join("lib/crates/fabro-spa/assets"); + let asset_dir = root.join("lib/apps/fabro-spa/assets"); println!("Running bun run build in apps/fabro-web..."); run_bun_build(&web_dir)?; @@ -61,7 +61,7 @@ fn spa_refresh_root_with_budgets( asset_budget_bytes, payload_budget_bytes, )?; - println!("Refreshed lib/crates/fabro-spa/assets"); + println!("Refreshed lib/apps/fabro-spa/assets"); Ok(()) } @@ -411,14 +411,14 @@ mod tests { write_file(fixture.path(), "apps/fabro-web/dist/index.html", b"hello"); write_file( fixture.path(), - "lib/crates/fabro-spa/assets/index.html", + "lib/apps/fabro-spa/assets/index.html", b"embedded", ); let error = refresh_from_dist( fixture.path(), &fixture.path().join("apps/fabro-web/dist"), - &fixture.path().join("lib/crates/fabro-spa/assets"), + &fixture.path().join("lib/apps/fabro-spa/assets"), 4, 100, ) @@ -431,7 +431,7 @@ mod tests { "budget failure should report raw byte overage: {error:#}" ); assert_eq!( - read_bytes(fixture.path(), "lib/crates/fabro-spa/assets/index.html"), + read_bytes(fixture.path(), "lib/apps/fabro-spa/assets/index.html"), b"embedded" ); } diff --git a/lib/crates/fabro-dev/src/lib.rs b/lib/foundation/fabro-dev/src/lib.rs similarity index 100% rename from lib/crates/fabro-dev/src/lib.rs rename to lib/foundation/fabro-dev/src/lib.rs diff --git a/lib/crates/fabro-dev/src/main.rs b/lib/foundation/fabro-dev/src/main.rs similarity index 100% rename from lib/crates/fabro-dev/src/main.rs rename to lib/foundation/fabro-dev/src/main.rs diff --git a/lib/crates/fabro-dev/tests/it/docker_build.rs b/lib/foundation/fabro-dev/tests/it/docker_build.rs similarity index 100% rename from lib/crates/fabro-dev/tests/it/docker_build.rs rename to lib/foundation/fabro-dev/tests/it/docker_build.rs diff --git a/lib/crates/fabro-dev/tests/it/docker_entrypoint.rs b/lib/foundation/fabro-dev/tests/it/docker_entrypoint.rs similarity index 100% rename from lib/crates/fabro-dev/tests/it/docker_entrypoint.rs rename to lib/foundation/fabro-dev/tests/it/docker_entrypoint.rs diff --git a/lib/crates/fabro-dev/tests/it/docs.rs b/lib/foundation/fabro-dev/tests/it/docs.rs similarity index 100% rename from lib/crates/fabro-dev/tests/it/docs.rs rename to lib/foundation/fabro-dev/tests/it/docs.rs diff --git a/lib/crates/fabro-dev/tests/it/main.rs b/lib/foundation/fabro-dev/tests/it/main.rs similarity index 98% rename from lib/crates/fabro-dev/tests/it/main.rs rename to lib/foundation/fabro-dev/tests/it/main.rs index cbf952b4a..ee503d466 100644 --- a/lib/crates/fabro-dev/tests/it/main.rs +++ b/lib/foundation/fabro-dev/tests/it/main.rs @@ -144,7 +144,7 @@ fn cargo_dev_alias_points_at_fabro_dev() { #[test] fn fabro_dev_does_not_depend_on_fabro_cli() { - let manifest = read_file(&workspace_root(), "lib/crates/fabro-dev/Cargo.toml"); + let manifest = read_file(&workspace_root(), "lib/foundation/fabro-dev/Cargo.toml"); assert!( !manifest.contains("fabro-cli"), "fabro-dev should shell out to fabro-cli instead of depending on it:\n{manifest}" diff --git a/lib/crates/fabro-dev/tests/it/policy.rs b/lib/foundation/fabro-dev/tests/it/policy.rs similarity index 93% rename from lib/crates/fabro-dev/tests/it/policy.rs rename to lib/foundation/fabro-dev/tests/it/policy.rs index 3043c43b2..2f2da24b6 100644 --- a/lib/crates/fabro-dev/tests/it/policy.rs +++ b/lib/foundation/fabro-dev/tests/it/policy.rs @@ -21,15 +21,15 @@ use crate::workspace_root; /// markdown) are not part of the allowlist. const BOOTSTRAP_CATALOG_ALLOWED_PATH_FRAGMENTS: &[&str] = &[ // The bootstrap module itself. - "lib/crates/fabro-model/src/bootstrap_catalog", + "lib/foundation/fabro-model/src/bootstrap_catalog", // Public module declaration for the bootstrap hatch. - "lib/crates/fabro-model/src/lib.rs", + "lib/foundation/fabro-model/src/lib.rs", // Install / first-run / API-key validation flows that legitimately need // a built-in catalog before any project settings have been loaded. - "lib/crates/fabro-install/", - "lib/crates/fabro-cli/src/commands/install/", - "lib/crates/fabro-cli/src/shared/install_", - "lib/crates/fabro-cli/src/shared/api_key_validation", + "lib/components/fabro-install/", + "lib/apps/fabro-cli/src/commands/install/", + "lib/apps/fabro-cli/src/shared/install_", + "lib/apps/fabro-cli/src/shared/api_key_validation", // Test support modules. "tests/", "test_support", @@ -42,7 +42,7 @@ const BOOTSTRAP_CATALOG_ALLOWED_PATH_FRAGMENTS: &[&str] = &[ /// `Catalog::builtin()` is reserved for `fabro-model` internals and tests. const CATALOG_BUILTIN_ALLOWED_PATH_FRAGMENTS: &[&str] = &[ // The catalog owner may define and test the built-in/default catalog. - "lib/crates/fabro-model/", + "lib/foundation/fabro-model/", // Tests and test support may use built-ins as fixtures. "/tests/", "/tests/it/", @@ -52,11 +52,11 @@ const CATALOG_BUILTIN_ALLOWED_PATH_FRAGMENTS: &[&str] = &[ const TEMPLATE_RENDER_ALLOWED_PATH_FRAGMENTS: &[&str] = &[ // The template crate owns the rendering API and its tests. - "lib/crates/fabro-template/src/lib.rs", + "lib/foundation/fabro-template/src/lib.rs", // Workflow-definition rendering must stay centralized here. - "lib/crates/fabro-workflow/src/transforms/variable_expansion.rs", + "lib/components/fabro-workflow/src/transforms/variable_expansion.rs", // Hook header/env interpolation is a separate system. - "lib/crates/fabro-hooks/src/executor.rs", + "lib/components/fabro-hooks/src/executor.rs", // This policy test names the forbidden patterns. "/tests/it/policy.rs", ]; @@ -79,7 +79,7 @@ fn bootstrap_catalog_references_stay_in_allowlist() { assert!( violations.is_empty(), - "bootstrap_catalog (install-only) referenced from non-allowlisted source files:\n{}\n\nIf this is intentional, add the path fragment to BOOTSTRAP_CATALOG_ALLOWED_PATH_FRAGMENTS in lib/crates/fabro-dev/tests/it/policy.rs.", + "bootstrap_catalog (install-only) referenced from non-allowlisted source files:\n{}\n\nIf this is intentional, add the path fragment to BOOTSTRAP_CATALOG_ALLOWED_PATH_FRAGMENTS in lib/foundation/fabro-dev/tests/it/policy.rs.", format_violations(violations), ); } @@ -91,7 +91,7 @@ fn catalog_builtin_references_stay_in_allowlist() { assert!( violations.is_empty(), - "Catalog::builtin() referenced from non-allowlisted production source files:\n{}\n\nRuntime code should use a resolved settings catalog via `Catalog::from_builtin_with_overrides(...)` or an injected `Arc`. If this is intentional test/bootstrap code, add the path fragment to CATALOG_BUILTIN_ALLOWED_PATH_FRAGMENTS in lib/crates/fabro-dev/tests/it/policy.rs.", + "Catalog::builtin() referenced from non-allowlisted production source files:\n{}\n\nRuntime code should use a resolved settings catalog via `Catalog::from_builtin_with_overrides(...)` or an injected `Arc`. If this is intentional test/bootstrap code, add the path fragment to CATALOG_BUILTIN_ALLOWED_PATH_FRAGMENTS in lib/foundation/fabro-dev/tests/it/policy.rs.", format_violations(violations), ); } diff --git a/lib/crates/fabro-dev/tests/it/release.rs b/lib/foundation/fabro-dev/tests/it/release.rs similarity index 98% rename from lib/crates/fabro-dev/tests/it/release.rs rename to lib/foundation/fabro-dev/tests/it/release.rs index f6949725e..28fb4cf94 100644 --- a/lib/crates/fabro-dev/tests/it/release.rs +++ b/lib/foundation/fabro-dev/tests/it/release.rs @@ -100,7 +100,7 @@ fn dry_run_computes_stable_version_from_date() { "dry-run should print one SPA refresh command:\n{stdout}" ); assert!( - !stdout.contains("git diff --exit-code -- lib/crates/fabro-spa/assets"), + !stdout.contains("git diff --exit-code -- lib/apps/fabro-spa/assets"), "dry-run should not print a separate SPA asset diff command:\n{stdout}" ); assert!( diff --git a/lib/crates/fabro-dev/tests/it/spa.rs b/lib/foundation/fabro-dev/tests/it/spa.rs similarity index 93% rename from lib/crates/fabro-dev/tests/it/spa.rs rename to lib/foundation/fabro-dev/tests/it/spa.rs index 6eeba4194..dd3749c3f 100644 --- a/lib/crates/fabro-dev/tests/it/spa.rs +++ b/lib/foundation/fabro-dev/tests/it/spa.rs @@ -23,10 +23,10 @@ fn check_passes_when_dist_matches_assets_and_budgets_pass() { write_file(fixture.path(), "apps/fabro-web/dist/index.html", b"hello"); write_file( fixture.path(), - "lib/crates/fabro-spa/assets/index.html", + "lib/apps/fabro-spa/assets/index.html", b"hello", ); - write_file(fixture.path(), "lib/crates/fabro-spa/assets/.gitkeep", b""); + write_file(fixture.path(), "lib/apps/fabro-spa/assets/.gitkeep", b""); let output = fabro_dev() .args([ @@ -65,7 +65,7 @@ fn check_fails_when_assets_exceed_budget() { write_file(fixture.path(), "apps/fabro-web/dist/index.html", b"hello"); write_file( fixture.path(), - "lib/crates/fabro-spa/assets/index.html", + "lib/apps/fabro-spa/assets/index.html", b"hello", ); @@ -102,7 +102,7 @@ fn check_fails_when_assets_do_not_match_dist() { write_file(fixture.path(), "apps/fabro-web/dist/index.html", b"current"); write_file( fixture.path(), - "lib/crates/fabro-spa/assets/index.html", + "lib/apps/fabro-spa/assets/index.html", b"embedded", ); @@ -129,7 +129,7 @@ fn check_fails_when_assets_do_not_match_dist() { "stale assets should fail the check:\n{stderr}" ); assert_eq!( - read_bytes(fixture.path(), "lib/crates/fabro-spa/assets/index.html"), + read_bytes(fixture.path(), "lib/apps/fabro-spa/assets/index.html"), b"embedded" ); } @@ -140,7 +140,7 @@ fn check_fails_when_source_map_is_present_in_assets() { write_file(fixture.path(), "apps/fabro-web/dist/index.html", b"hello"); write_file( fixture.path(), - "lib/crates/fabro-spa/assets/assets/app.js.map", + "lib/apps/fabro-spa/assets/assets/app.js.map", b"map", ); diff --git a/lib/crates/fabro-http/Cargo.toml b/lib/foundation/fabro-http/Cargo.toml similarity index 100% rename from lib/crates/fabro-http/Cargo.toml rename to lib/foundation/fabro-http/Cargo.toml diff --git a/lib/crates/fabro-http/src/lib.rs b/lib/foundation/fabro-http/src/lib.rs similarity index 100% rename from lib/crates/fabro-http/src/lib.rs rename to lib/foundation/fabro-http/src/lib.rs diff --git a/lib/crates/fabro-macros/Cargo.toml b/lib/foundation/fabro-macros/Cargo.toml similarity index 100% rename from lib/crates/fabro-macros/Cargo.toml rename to lib/foundation/fabro-macros/Cargo.toml diff --git a/lib/crates/fabro-macros/src/lib.rs b/lib/foundation/fabro-macros/src/lib.rs similarity index 100% rename from lib/crates/fabro-macros/src/lib.rs rename to lib/foundation/fabro-macros/src/lib.rs diff --git a/lib/crates/fabro-macros/src/options_metadata.rs b/lib/foundation/fabro-macros/src/options_metadata.rs similarity index 100% rename from lib/crates/fabro-macros/src/options_metadata.rs rename to lib/foundation/fabro-macros/src/options_metadata.rs diff --git a/lib/crates/fabro-macros/tests/options_metadata.rs b/lib/foundation/fabro-macros/tests/options_metadata.rs similarity index 100% rename from lib/crates/fabro-macros/tests/options_metadata.rs rename to lib/foundation/fabro-macros/tests/options_metadata.rs diff --git a/lib/crates/fabro-model/Cargo.toml b/lib/foundation/fabro-model/Cargo.toml similarity index 100% rename from lib/crates/fabro-model/Cargo.toml rename to lib/foundation/fabro-model/Cargo.toml diff --git a/lib/crates/fabro-model/src/adapter.rs b/lib/foundation/fabro-model/src/adapter.rs similarity index 100% rename from lib/crates/fabro-model/src/adapter.rs rename to lib/foundation/fabro-model/src/adapter.rs diff --git a/lib/crates/fabro-model/src/billing.rs b/lib/foundation/fabro-model/src/billing.rs similarity index 100% rename from lib/crates/fabro-model/src/billing.rs rename to lib/foundation/fabro-model/src/billing.rs diff --git a/lib/crates/fabro-model/src/bootstrap_catalog.rs b/lib/foundation/fabro-model/src/bootstrap_catalog.rs similarity index 100% rename from lib/crates/fabro-model/src/bootstrap_catalog.rs rename to lib/foundation/fabro-model/src/bootstrap_catalog.rs diff --git a/lib/crates/fabro-model/src/catalog.rs b/lib/foundation/fabro-model/src/catalog.rs similarity index 100% rename from lib/crates/fabro-model/src/catalog.rs rename to lib/foundation/fabro-model/src/catalog.rs diff --git a/lib/crates/fabro-model/src/catalog/providers/anthropic.toml b/lib/foundation/fabro-model/src/catalog/providers/anthropic.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/anthropic.toml rename to lib/foundation/fabro-model/src/catalog/providers/anthropic.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/bedrock-openai.toml b/lib/foundation/fabro-model/src/catalog/providers/bedrock-openai.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/bedrock-openai.toml rename to lib/foundation/fabro-model/src/catalog/providers/bedrock-openai.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/bedrock.toml b/lib/foundation/fabro-model/src/catalog/providers/bedrock.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/bedrock.toml rename to lib/foundation/fabro-model/src/catalog/providers/bedrock.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/gemini.toml b/lib/foundation/fabro-model/src/catalog/providers/gemini.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/gemini.toml rename to lib/foundation/fabro-model/src/catalog/providers/gemini.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/inception.toml b/lib/foundation/fabro-model/src/catalog/providers/inception.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/inception.toml rename to lib/foundation/fabro-model/src/catalog/providers/inception.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/kimi.toml b/lib/foundation/fabro-model/src/catalog/providers/kimi.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/kimi.toml rename to lib/foundation/fabro-model/src/catalog/providers/kimi.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/litellm.toml b/lib/foundation/fabro-model/src/catalog/providers/litellm.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/litellm.toml rename to lib/foundation/fabro-model/src/catalog/providers/litellm.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/minimax.toml b/lib/foundation/fabro-model/src/catalog/providers/minimax.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/minimax.toml rename to lib/foundation/fabro-model/src/catalog/providers/minimax.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/ollama.toml b/lib/foundation/fabro-model/src/catalog/providers/ollama.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/ollama.toml rename to lib/foundation/fabro-model/src/catalog/providers/ollama.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/openai.toml b/lib/foundation/fabro-model/src/catalog/providers/openai.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/openai.toml rename to lib/foundation/fabro-model/src/catalog/providers/openai.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/openrouter.toml b/lib/foundation/fabro-model/src/catalog/providers/openrouter.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/openrouter.toml rename to lib/foundation/fabro-model/src/catalog/providers/openrouter.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/poolside.toml b/lib/foundation/fabro-model/src/catalog/providers/poolside.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/poolside.toml rename to lib/foundation/fabro-model/src/catalog/providers/poolside.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/venice.toml b/lib/foundation/fabro-model/src/catalog/providers/venice.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/venice.toml rename to lib/foundation/fabro-model/src/catalog/providers/venice.toml diff --git a/lib/crates/fabro-model/src/catalog/providers/zai.toml b/lib/foundation/fabro-model/src/catalog/providers/zai.toml similarity index 100% rename from lib/crates/fabro-model/src/catalog/providers/zai.toml rename to lib/foundation/fabro-model/src/catalog/providers/zai.toml diff --git a/lib/crates/fabro-model/src/codec.rs b/lib/foundation/fabro-model/src/codec.rs similarity index 100% rename from lib/crates/fabro-model/src/codec.rs rename to lib/foundation/fabro-model/src/codec.rs diff --git a/lib/crates/fabro-model/src/ids.rs b/lib/foundation/fabro-model/src/ids.rs similarity index 100% rename from lib/crates/fabro-model/src/ids.rs rename to lib/foundation/fabro-model/src/ids.rs diff --git a/lib/crates/fabro-model/src/lib.rs b/lib/foundation/fabro-model/src/lib.rs similarity index 100% rename from lib/crates/fabro-model/src/lib.rs rename to lib/foundation/fabro-model/src/lib.rs diff --git a/lib/crates/fabro-model/src/model_ref.rs b/lib/foundation/fabro-model/src/model_ref.rs similarity index 100% rename from lib/crates/fabro-model/src/model_ref.rs rename to lib/foundation/fabro-model/src/model_ref.rs diff --git a/lib/crates/fabro-model/src/model_test.rs b/lib/foundation/fabro-model/src/model_test.rs similarity index 100% rename from lib/crates/fabro-model/src/model_test.rs rename to lib/foundation/fabro-model/src/model_test.rs diff --git a/lib/crates/fabro-model/src/provider.rs b/lib/foundation/fabro-model/src/provider.rs similarity index 100% rename from lib/crates/fabro-model/src/provider.rs rename to lib/foundation/fabro-model/src/provider.rs diff --git a/lib/crates/fabro-model/src/reasoning.rs b/lib/foundation/fabro-model/src/reasoning.rs similarity index 100% rename from lib/crates/fabro-model/src/reasoning.rs rename to lib/foundation/fabro-model/src/reasoning.rs diff --git a/lib/crates/fabro-model/src/types.rs b/lib/foundation/fabro-model/src/types.rs similarity index 100% rename from lib/crates/fabro-model/src/types.rs rename to lib/foundation/fabro-model/src/types.rs diff --git a/lib/crates/fabro-oauth/Cargo.toml b/lib/foundation/fabro-oauth/Cargo.toml similarity index 100% rename from lib/crates/fabro-oauth/Cargo.toml rename to lib/foundation/fabro-oauth/Cargo.toml diff --git a/lib/crates/fabro-oauth/examples/login.rs b/lib/foundation/fabro-oauth/examples/login.rs similarity index 100% rename from lib/crates/fabro-oauth/examples/login.rs rename to lib/foundation/fabro-oauth/examples/login.rs diff --git a/lib/crates/fabro-oauth/src/lib.rs b/lib/foundation/fabro-oauth/src/lib.rs similarity index 100% rename from lib/crates/fabro-oauth/src/lib.rs rename to lib/foundation/fabro-oauth/src/lib.rs diff --git a/lib/crates/fabro-options-metadata/Cargo.toml b/lib/foundation/fabro-options-metadata/Cargo.toml similarity index 100% rename from lib/crates/fabro-options-metadata/Cargo.toml rename to lib/foundation/fabro-options-metadata/Cargo.toml diff --git a/lib/crates/fabro-options-metadata/src/lib.rs b/lib/foundation/fabro-options-metadata/src/lib.rs similarity index 100% rename from lib/crates/fabro-options-metadata/src/lib.rs rename to lib/foundation/fabro-options-metadata/src/lib.rs diff --git a/lib/crates/fabro-proc/Cargo.toml b/lib/foundation/fabro-proc/Cargo.toml similarity index 100% rename from lib/crates/fabro-proc/Cargo.toml rename to lib/foundation/fabro-proc/Cargo.toml diff --git a/lib/crates/fabro-proc/build.rs b/lib/foundation/fabro-proc/build.rs similarity index 100% rename from lib/crates/fabro-proc/build.rs rename to lib/foundation/fabro-proc/build.rs diff --git a/lib/crates/fabro-proc/c/capture_argv.c b/lib/foundation/fabro-proc/c/capture_argv.c similarity index 100% rename from lib/crates/fabro-proc/c/capture_argv.c rename to lib/foundation/fabro-proc/c/capture_argv.c diff --git a/lib/crates/fabro-proc/src/flock.rs b/lib/foundation/fabro-proc/src/flock.rs similarity index 100% rename from lib/crates/fabro-proc/src/flock.rs rename to lib/foundation/fabro-proc/src/flock.rs diff --git a/lib/crates/fabro-proc/src/lib.rs b/lib/foundation/fabro-proc/src/lib.rs similarity index 100% rename from lib/crates/fabro-proc/src/lib.rs rename to lib/foundation/fabro-proc/src/lib.rs diff --git a/lib/crates/fabro-proc/src/pre_exec.rs b/lib/foundation/fabro-proc/src/pre_exec.rs similarity index 100% rename from lib/crates/fabro-proc/src/pre_exec.rs rename to lib/foundation/fabro-proc/src/pre_exec.rs diff --git a/lib/crates/fabro-proc/src/signal.rs b/lib/foundation/fabro-proc/src/signal.rs similarity index 100% rename from lib/crates/fabro-proc/src/signal.rs rename to lib/foundation/fabro-proc/src/signal.rs diff --git a/lib/crates/fabro-proc/src/title.rs b/lib/foundation/fabro-proc/src/title.rs similarity index 100% rename from lib/crates/fabro-proc/src/title.rs rename to lib/foundation/fabro-proc/src/title.rs diff --git a/lib/crates/fabro-redact/Cargo.toml b/lib/foundation/fabro-redact/Cargo.toml similarity index 100% rename from lib/crates/fabro-redact/Cargo.toml rename to lib/foundation/fabro-redact/Cargo.toml diff --git a/lib/crates/fabro-redact/build.rs b/lib/foundation/fabro-redact/build.rs similarity index 100% rename from lib/crates/fabro-redact/build.rs rename to lib/foundation/fabro-redact/build.rs diff --git a/lib/crates/fabro-redact/data/gitleaks.toml b/lib/foundation/fabro-redact/data/gitleaks.toml similarity index 100% rename from lib/crates/fabro-redact/data/gitleaks.toml rename to lib/foundation/fabro-redact/data/gitleaks.toml diff --git a/lib/crates/fabro-redact/src/entropy.rs b/lib/foundation/fabro-redact/src/entropy.rs similarity index 100% rename from lib/crates/fabro-redact/src/entropy.rs rename to lib/foundation/fabro-redact/src/entropy.rs diff --git a/lib/crates/fabro-redact/src/gitleaks.rs b/lib/foundation/fabro-redact/src/gitleaks.rs similarity index 100% rename from lib/crates/fabro-redact/src/gitleaks.rs rename to lib/foundation/fabro-redact/src/gitleaks.rs diff --git a/lib/crates/fabro-redact/src/jsonl.rs b/lib/foundation/fabro-redact/src/jsonl.rs similarity index 100% rename from lib/crates/fabro-redact/src/jsonl.rs rename to lib/foundation/fabro-redact/src/jsonl.rs diff --git a/lib/crates/fabro-redact/src/lib.rs b/lib/foundation/fabro-redact/src/lib.rs similarity index 100% rename from lib/crates/fabro-redact/src/lib.rs rename to lib/foundation/fabro-redact/src/lib.rs diff --git a/lib/crates/fabro-redact/src/safe_url.rs b/lib/foundation/fabro-redact/src/safe_url.rs similarity index 100% rename from lib/crates/fabro-redact/src/safe_url.rs rename to lib/foundation/fabro-redact/src/safe_url.rs diff --git a/lib/crates/fabro-static/Cargo.toml b/lib/foundation/fabro-static/Cargo.toml similarity index 100% rename from lib/crates/fabro-static/Cargo.toml rename to lib/foundation/fabro-static/Cargo.toml diff --git a/lib/crates/fabro-static/src/env_vars.rs b/lib/foundation/fabro-static/src/env_vars.rs similarity index 100% rename from lib/crates/fabro-static/src/env_vars.rs rename to lib/foundation/fabro-static/src/env_vars.rs diff --git a/lib/crates/fabro-static/src/lib.rs b/lib/foundation/fabro-static/src/lib.rs similarity index 100% rename from lib/crates/fabro-static/src/lib.rs rename to lib/foundation/fabro-static/src/lib.rs diff --git a/lib/crates/fabro-static/src/secret_registry.rs b/lib/foundation/fabro-static/src/secret_registry.rs similarity index 100% rename from lib/crates/fabro-static/src/secret_registry.rs rename to lib/foundation/fabro-static/src/secret_registry.rs diff --git a/lib/crates/fabro-telemetry/Cargo.toml b/lib/foundation/fabro-telemetry/Cargo.toml similarity index 100% rename from lib/crates/fabro-telemetry/Cargo.toml rename to lib/foundation/fabro-telemetry/Cargo.toml diff --git a/lib/crates/fabro-telemetry/src/anonymous_id.rs b/lib/foundation/fabro-telemetry/src/anonymous_id.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/anonymous_id.rs rename to lib/foundation/fabro-telemetry/src/anonymous_id.rs diff --git a/lib/crates/fabro-telemetry/src/buffer.rs b/lib/foundation/fabro-telemetry/src/buffer.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/buffer.rs rename to lib/foundation/fabro-telemetry/src/buffer.rs diff --git a/lib/crates/fabro-telemetry/src/context.rs b/lib/foundation/fabro-telemetry/src/context.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/context.rs rename to lib/foundation/fabro-telemetry/src/context.rs diff --git a/lib/crates/fabro-telemetry/src/event.rs b/lib/foundation/fabro-telemetry/src/event.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/event.rs rename to lib/foundation/fabro-telemetry/src/event.rs diff --git a/lib/crates/fabro-telemetry/src/git.rs b/lib/foundation/fabro-telemetry/src/git.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/git.rs rename to lib/foundation/fabro-telemetry/src/git.rs diff --git a/lib/crates/fabro-telemetry/src/lib.rs b/lib/foundation/fabro-telemetry/src/lib.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/lib.rs rename to lib/foundation/fabro-telemetry/src/lib.rs diff --git a/lib/crates/fabro-telemetry/src/panic.rs b/lib/foundation/fabro-telemetry/src/panic.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/panic.rs rename to lib/foundation/fabro-telemetry/src/panic.rs diff --git a/lib/crates/fabro-telemetry/src/sanitize.rs b/lib/foundation/fabro-telemetry/src/sanitize.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/sanitize.rs rename to lib/foundation/fabro-telemetry/src/sanitize.rs diff --git a/lib/crates/fabro-telemetry/src/sender.rs b/lib/foundation/fabro-telemetry/src/sender.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/sender.rs rename to lib/foundation/fabro-telemetry/src/sender.rs diff --git a/lib/crates/fabro-telemetry/src/spawn.rs b/lib/foundation/fabro-telemetry/src/spawn.rs similarity index 100% rename from lib/crates/fabro-telemetry/src/spawn.rs rename to lib/foundation/fabro-telemetry/src/spawn.rs diff --git a/lib/crates/fabro-template/Cargo.toml b/lib/foundation/fabro-template/Cargo.toml similarity index 100% rename from lib/crates/fabro-template/Cargo.toml rename to lib/foundation/fabro-template/Cargo.toml diff --git a/lib/crates/fabro-template/src/dependency.rs b/lib/foundation/fabro-template/src/dependency.rs similarity index 100% rename from lib/crates/fabro-template/src/dependency.rs rename to lib/foundation/fabro-template/src/dependency.rs diff --git a/lib/crates/fabro-template/src/lib.rs b/lib/foundation/fabro-template/src/lib.rs similarity index 100% rename from lib/crates/fabro-template/src/lib.rs rename to lib/foundation/fabro-template/src/lib.rs diff --git a/lib/crates/fabro-template/src/store.rs b/lib/foundation/fabro-template/src/store.rs similarity index 100% rename from lib/crates/fabro-template/src/store.rs rename to lib/foundation/fabro-template/src/store.rs diff --git a/lib/crates/fabro-test/Cargo.toml b/lib/foundation/fabro-test/Cargo.toml similarity index 93% rename from lib/crates/fabro-test/Cargo.toml rename to lib/foundation/fabro-test/Cargo.toml index eebfcf09c..be07f0968 100644 --- a/lib/crates/fabro-test/Cargo.toml +++ b/lib/foundation/fabro-test/Cargo.toml @@ -17,7 +17,7 @@ anyhow.workspace = true assert_cmd = "2" axum = { workspace = true } fabro-config = { path = "../fabro-config" } -fabro-install = { path = "../fabro-install" } +fabro-install = { path = "../../components/fabro-install" } fabro-proc = { path = "../fabro-proc" } fabro-static.workspace = true fabro-types = { path = "../fabro-types" } diff --git a/lib/crates/fabro-test/src/http_assert.rs b/lib/foundation/fabro-test/src/http_assert.rs similarity index 100% rename from lib/crates/fabro-test/src/http_assert.rs rename to lib/foundation/fabro-test/src/http_assert.rs diff --git a/lib/crates/fabro-test/src/lib.rs b/lib/foundation/fabro-test/src/lib.rs similarity index 100% rename from lib/crates/fabro-test/src/lib.rs rename to lib/foundation/fabro-test/src/lib.rs diff --git a/lib/crates/fabro-types/Cargo.toml b/lib/foundation/fabro-types/Cargo.toml similarity index 100% rename from lib/crates/fabro-types/Cargo.toml rename to lib/foundation/fabro-types/Cargo.toml diff --git a/lib/crates/fabro-types/src/artifact.rs b/lib/foundation/fabro-types/src/artifact.rs similarity index 100% rename from lib/crates/fabro-types/src/artifact.rs rename to lib/foundation/fabro-types/src/artifact.rs diff --git a/lib/crates/fabro-types/src/auth.rs b/lib/foundation/fabro-types/src/auth.rs similarity index 100% rename from lib/crates/fabro-types/src/auth.rs rename to lib/foundation/fabro-types/src/auth.rs diff --git a/lib/crates/fabro-types/src/billing.rs b/lib/foundation/fabro-types/src/billing.rs similarity index 100% rename from lib/crates/fabro-types/src/billing.rs rename to lib/foundation/fabro-types/src/billing.rs diff --git a/lib/crates/fabro-types/src/blob_ref.rs b/lib/foundation/fabro-types/src/blob_ref.rs similarity index 100% rename from lib/crates/fabro-types/src/blob_ref.rs rename to lib/foundation/fabro-types/src/blob_ref.rs diff --git a/lib/crates/fabro-types/src/checkpoint.rs b/lib/foundation/fabro-types/src/checkpoint.rs similarity index 100% rename from lib/crates/fabro-types/src/checkpoint.rs rename to lib/foundation/fabro-types/src/checkpoint.rs diff --git a/lib/crates/fabro-types/src/command_output.rs b/lib/foundation/fabro-types/src/command_output.rs similarity index 100% rename from lib/crates/fabro-types/src/command_output.rs rename to lib/foundation/fabro-types/src/command_output.rs diff --git a/lib/crates/fabro-types/src/conclusion.rs b/lib/foundation/fabro-types/src/conclusion.rs similarity index 100% rename from lib/crates/fabro-types/src/conclusion.rs rename to lib/foundation/fabro-types/src/conclusion.rs diff --git a/lib/crates/fabro-types/src/dense.rs b/lib/foundation/fabro-types/src/dense.rs similarity index 100% rename from lib/crates/fabro-types/src/dense.rs rename to lib/foundation/fabro-types/src/dense.rs diff --git a/lib/crates/fabro-types/src/diff.rs b/lib/foundation/fabro-types/src/diff.rs similarity index 100% rename from lib/crates/fabro-types/src/diff.rs rename to lib/foundation/fabro-types/src/diff.rs diff --git a/lib/crates/fabro-types/src/event_envelope.rs b/lib/foundation/fabro-types/src/event_envelope.rs similarity index 100% rename from lib/crates/fabro-types/src/event_envelope.rs rename to lib/foundation/fabro-types/src/event_envelope.rs diff --git a/lib/crates/fabro-types/src/failure_signature.rs b/lib/foundation/fabro-types/src/failure_signature.rs similarity index 100% rename from lib/crates/fabro-types/src/failure_signature.rs rename to lib/foundation/fabro-types/src/failure_signature.rs diff --git a/lib/crates/fabro-types/src/graph.rs b/lib/foundation/fabro-types/src/graph.rs similarity index 100% rename from lib/crates/fabro-types/src/graph.rs rename to lib/foundation/fabro-types/src/graph.rs diff --git a/lib/crates/fabro-types/src/id.rs b/lib/foundation/fabro-types/src/id.rs similarity index 100% rename from lib/crates/fabro-types/src/id.rs rename to lib/foundation/fabro-types/src/id.rs diff --git a/lib/crates/fabro-types/src/interview.rs b/lib/foundation/fabro-types/src/interview.rs similarity index 100% rename from lib/crates/fabro-types/src/interview.rs rename to lib/foundation/fabro-types/src/interview.rs diff --git a/lib/crates/fabro-types/src/lib.rs b/lib/foundation/fabro-types/src/lib.rs similarity index 100% rename from lib/crates/fabro-types/src/lib.rs rename to lib/foundation/fabro-types/src/lib.rs diff --git a/lib/crates/fabro-types/src/llm_backend.rs b/lib/foundation/fabro-types/src/llm_backend.rs similarity index 100% rename from lib/crates/fabro-types/src/llm_backend.rs rename to lib/foundation/fabro-types/src/llm_backend.rs diff --git a/lib/crates/fabro-types/src/manifest_path.rs b/lib/foundation/fabro-types/src/manifest_path.rs similarity index 100% rename from lib/crates/fabro-types/src/manifest_path.rs rename to lib/foundation/fabro-types/src/manifest_path.rs diff --git a/lib/crates/fabro-types/src/mcp_store.rs b/lib/foundation/fabro-types/src/mcp_store.rs similarity index 100% rename from lib/crates/fabro-types/src/mcp_store.rs rename to lib/foundation/fabro-types/src/mcp_store.rs diff --git a/lib/crates/fabro-types/src/outcome.rs b/lib/foundation/fabro-types/src/outcome.rs similarity index 100% rename from lib/crates/fabro-types/src/outcome.rs rename to lib/foundation/fabro-types/src/outcome.rs diff --git a/lib/crates/fabro-types/src/pair.rs b/lib/foundation/fabro-types/src/pair.rs similarity index 100% rename from lib/crates/fabro-types/src/pair.rs rename to lib/foundation/fabro-types/src/pair.rs diff --git a/lib/crates/fabro-types/src/principal.rs b/lib/foundation/fabro-types/src/principal.rs similarity index 100% rename from lib/crates/fabro-types/src/principal.rs rename to lib/foundation/fabro-types/src/principal.rs diff --git a/lib/crates/fabro-types/src/pull_request.rs b/lib/foundation/fabro-types/src/pull_request.rs similarity index 100% rename from lib/crates/fabro-types/src/pull_request.rs rename to lib/foundation/fabro-types/src/pull_request.rs diff --git a/lib/crates/fabro-types/src/repository.rs b/lib/foundation/fabro-types/src/repository.rs similarity index 100% rename from lib/crates/fabro-types/src/repository.rs rename to lib/foundation/fabro-types/src/repository.rs diff --git a/lib/crates/fabro-types/src/run.rs b/lib/foundation/fabro-types/src/run.rs similarity index 100% rename from lib/crates/fabro-types/src/run.rs rename to lib/foundation/fabro-types/src/run.rs diff --git a/lib/crates/fabro-types/src/run_blob_id.rs b/lib/foundation/fabro-types/src/run_blob_id.rs similarity index 100% rename from lib/crates/fabro-types/src/run_blob_id.rs rename to lib/foundation/fabro-types/src/run_blob_id.rs diff --git a/lib/crates/fabro-types/src/run_event/agent.rs b/lib/foundation/fabro-types/src/run_event/agent.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/agent.rs rename to lib/foundation/fabro-types/src/run_event/agent.rs diff --git a/lib/crates/fabro-types/src/run_event/infra.rs b/lib/foundation/fabro-types/src/run_event/infra.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/infra.rs rename to lib/foundation/fabro-types/src/run_event/infra.rs diff --git a/lib/crates/fabro-types/src/run_event/misc.rs b/lib/foundation/fabro-types/src/run_event/misc.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/misc.rs rename to lib/foundation/fabro-types/src/run_event/misc.rs diff --git a/lib/crates/fabro-types/src/run_event/mod.rs b/lib/foundation/fabro-types/src/run_event/mod.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/mod.rs rename to lib/foundation/fabro-types/src/run_event/mod.rs diff --git a/lib/crates/fabro-types/src/run_event/run.rs b/lib/foundation/fabro-types/src/run_event/run.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/run.rs rename to lib/foundation/fabro-types/src/run_event/run.rs diff --git a/lib/crates/fabro-types/src/run_event/session.rs b/lib/foundation/fabro-types/src/run_event/session.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/session.rs rename to lib/foundation/fabro-types/src/run_event/session.rs diff --git a/lib/crates/fabro-types/src/run_event/stage.rs b/lib/foundation/fabro-types/src/run_event/stage.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/stage.rs rename to lib/foundation/fabro-types/src/run_event/stage.rs diff --git a/lib/crates/fabro-types/src/run_event/todo.rs b/lib/foundation/fabro-types/src/run_event/todo.rs similarity index 100% rename from lib/crates/fabro-types/src/run_event/todo.rs rename to lib/foundation/fabro-types/src/run_event/todo.rs diff --git a/lib/crates/fabro-types/src/run_failure.rs b/lib/foundation/fabro-types/src/run_failure.rs similarity index 100% rename from lib/crates/fabro-types/src/run_failure.rs rename to lib/foundation/fabro-types/src/run_failure.rs diff --git a/lib/crates/fabro-types/src/run_id.rs b/lib/foundation/fabro-types/src/run_id.rs similarity index 100% rename from lib/crates/fabro-types/src/run_id.rs rename to lib/foundation/fabro-types/src/run_id.rs diff --git a/lib/crates/fabro-types/src/run_projection.rs b/lib/foundation/fabro-types/src/run_projection.rs similarity index 100% rename from lib/crates/fabro-types/src/run_projection.rs rename to lib/foundation/fabro-types/src/run_projection.rs diff --git a/lib/crates/fabro-types/src/run_sandbox.rs b/lib/foundation/fabro-types/src/run_sandbox.rs similarity index 100% rename from lib/crates/fabro-types/src/run_sandbox.rs rename to lib/foundation/fabro-types/src/run_sandbox.rs diff --git a/lib/crates/fabro-types/src/run_summary.rs b/lib/foundation/fabro-types/src/run_summary.rs similarity index 100% rename from lib/crates/fabro-types/src/run_summary.rs rename to lib/foundation/fabro-types/src/run_summary.rs diff --git a/lib/crates/fabro-types/src/run_title.rs b/lib/foundation/fabro-types/src/run_title.rs similarity index 100% rename from lib/crates/fabro-types/src/run_title.rs rename to lib/foundation/fabro-types/src/run_title.rs diff --git a/lib/crates/fabro-types/src/sandbox_details.rs b/lib/foundation/fabro-types/src/sandbox_details.rs similarity index 100% rename from lib/crates/fabro-types/src/sandbox_details.rs rename to lib/foundation/fabro-types/src/sandbox_details.rs diff --git a/lib/crates/fabro-types/src/sandbox_inventory.rs b/lib/foundation/fabro-types/src/sandbox_inventory.rs similarity index 100% rename from lib/crates/fabro-types/src/sandbox_inventory.rs rename to lib/foundation/fabro-types/src/sandbox_inventory.rs diff --git a/lib/crates/fabro-types/src/sandbox_provider.rs b/lib/foundation/fabro-types/src/sandbox_provider.rs similarity index 100% rename from lib/crates/fabro-types/src/sandbox_provider.rs rename to lib/foundation/fabro-types/src/sandbox_provider.rs diff --git a/lib/crates/fabro-types/src/sandbox_services.rs b/lib/foundation/fabro-types/src/sandbox_services.rs similarity index 100% rename from lib/crates/fabro-types/src/sandbox_services.rs rename to lib/foundation/fabro-types/src/sandbox_services.rs diff --git a/lib/crates/fabro-types/src/secret.rs b/lib/foundation/fabro-types/src/secret.rs similarity index 100% rename from lib/crates/fabro-types/src/secret.rs rename to lib/foundation/fabro-types/src/secret.rs diff --git a/lib/crates/fabro-types/src/session.rs b/lib/foundation/fabro-types/src/session.rs similarity index 100% rename from lib/crates/fabro-types/src/session.rs rename to lib/foundation/fabro-types/src/session.rs diff --git a/lib/crates/fabro-types/src/settings/cli.rs b/lib/foundation/fabro-types/src/settings/cli.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/cli.rs rename to lib/foundation/fabro-types/src/settings/cli.rs diff --git a/lib/crates/fabro-types/src/settings/duration.rs b/lib/foundation/fabro-types/src/settings/duration.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/duration.rs rename to lib/foundation/fabro-types/src/settings/duration.rs diff --git a/lib/crates/fabro-types/src/settings/interp.rs b/lib/foundation/fabro-types/src/settings/interp.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/interp.rs rename to lib/foundation/fabro-types/src/settings/interp.rs diff --git a/lib/crates/fabro-types/src/settings/mod.rs b/lib/foundation/fabro-types/src/settings/mod.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/mod.rs rename to lib/foundation/fabro-types/src/settings/mod.rs diff --git a/lib/crates/fabro-types/src/settings/model_ref.rs b/lib/foundation/fabro-types/src/settings/model_ref.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/model_ref.rs rename to lib/foundation/fabro-types/src/settings/model_ref.rs diff --git a/lib/crates/fabro-types/src/settings/project.rs b/lib/foundation/fabro-types/src/settings/project.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/project.rs rename to lib/foundation/fabro-types/src/settings/project.rs diff --git a/lib/crates/fabro-types/src/settings/public_url.rs b/lib/foundation/fabro-types/src/settings/public_url.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/public_url.rs rename to lib/foundation/fabro-types/src/settings/public_url.rs diff --git a/lib/crates/fabro-types/src/settings/run.rs b/lib/foundation/fabro-types/src/settings/run.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/run.rs rename to lib/foundation/fabro-types/src/settings/run.rs diff --git a/lib/crates/fabro-types/src/settings/server.rs b/lib/foundation/fabro-types/src/settings/server.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/server.rs rename to lib/foundation/fabro-types/src/settings/server.rs diff --git a/lib/crates/fabro-types/src/settings/size.rs b/lib/foundation/fabro-types/src/settings/size.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/size.rs rename to lib/foundation/fabro-types/src/settings/size.rs diff --git a/lib/crates/fabro-types/src/settings/workflow.rs b/lib/foundation/fabro-types/src/settings/workflow.rs similarity index 100% rename from lib/crates/fabro-types/src/settings/workflow.rs rename to lib/foundation/fabro-types/src/settings/workflow.rs diff --git a/lib/crates/fabro-types/src/stage_completion.rs b/lib/foundation/fabro-types/src/stage_completion.rs similarity index 100% rename from lib/crates/fabro-types/src/stage_completion.rs rename to lib/foundation/fabro-types/src/stage_completion.rs diff --git a/lib/crates/fabro-types/src/stage_handler.rs b/lib/foundation/fabro-types/src/stage_handler.rs similarity index 100% rename from lib/crates/fabro-types/src/stage_handler.rs rename to lib/foundation/fabro-types/src/stage_handler.rs diff --git a/lib/crates/fabro-types/src/stage_id.rs b/lib/foundation/fabro-types/src/stage_id.rs similarity index 100% rename from lib/crates/fabro-types/src/stage_id.rs rename to lib/foundation/fabro-types/src/stage_id.rs diff --git a/lib/crates/fabro-types/src/start.rs b/lib/foundation/fabro-types/src/start.rs similarity index 100% rename from lib/crates/fabro-types/src/start.rs rename to lib/foundation/fabro-types/src/start.rs diff --git a/lib/crates/fabro-types/src/status.rs b/lib/foundation/fabro-types/src/status.rs similarity index 100% rename from lib/crates/fabro-types/src/status.rs rename to lib/foundation/fabro-types/src/status.rs diff --git a/lib/crates/fabro-types/src/steering.rs b/lib/foundation/fabro-types/src/steering.rs similarity index 100% rename from lib/crates/fabro-types/src/steering.rs rename to lib/foundation/fabro-types/src/steering.rs diff --git a/lib/crates/fabro-types/src/system_integrations.rs b/lib/foundation/fabro-types/src/system_integrations.rs similarity index 100% rename from lib/crates/fabro-types/src/system_integrations.rs rename to lib/foundation/fabro-types/src/system_integrations.rs diff --git a/lib/crates/fabro-types/src/test_support.rs b/lib/foundation/fabro-types/src/test_support.rs similarity index 100% rename from lib/crates/fabro-types/src/test_support.rs rename to lib/foundation/fabro-types/src/test_support.rs diff --git a/lib/crates/fabro-types/src/timing.rs b/lib/foundation/fabro-types/src/timing.rs similarity index 100% rename from lib/crates/fabro-types/src/timing.rs rename to lib/foundation/fabro-types/src/timing.rs diff --git a/lib/crates/fabro-types/src/todo.rs b/lib/foundation/fabro-types/src/todo.rs similarity index 100% rename from lib/crates/fabro-types/src/todo.rs rename to lib/foundation/fabro-types/src/todo.rs diff --git a/lib/crates/fabro-types/src/transcript.rs b/lib/foundation/fabro-types/src/transcript.rs similarity index 100% rename from lib/crates/fabro-types/src/transcript.rs rename to lib/foundation/fabro-types/src/transcript.rs diff --git a/lib/crates/fabro-types/src/variable.rs b/lib/foundation/fabro-types/src/variable.rs similarity index 100% rename from lib/crates/fabro-types/src/variable.rs rename to lib/foundation/fabro-types/src/variable.rs diff --git a/lib/crates/fabro-types/tests/run_event_serde.rs b/lib/foundation/fabro-types/tests/run_event_serde.rs similarity index 100% rename from lib/crates/fabro-types/tests/run_event_serde.rs rename to lib/foundation/fabro-types/tests/run_event_serde.rs diff --git a/lib/crates/fabro-types/tests/run_failure_serde.rs b/lib/foundation/fabro-types/tests/run_failure_serde.rs similarity index 100% rename from lib/crates/fabro-types/tests/run_failure_serde.rs rename to lib/foundation/fabro-types/tests/run_failure_serde.rs diff --git a/lib/crates/fabro-types/tests/run_spec_methods.rs b/lib/foundation/fabro-types/tests/run_spec_methods.rs similarity index 100% rename from lib/crates/fabro-types/tests/run_spec_methods.rs rename to lib/foundation/fabro-types/tests/run_spec_methods.rs diff --git a/lib/crates/fabro-types/tests/run_spec_serde.rs b/lib/foundation/fabro-types/tests/run_spec_serde.rs similarity index 100% rename from lib/crates/fabro-types/tests/run_spec_serde.rs rename to lib/foundation/fabro-types/tests/run_spec_serde.rs diff --git a/lib/crates/fabro-types/tests/sandbox_inventory_serde.rs b/lib/foundation/fabro-types/tests/sandbox_inventory_serde.rs similarity index 100% rename from lib/crates/fabro-types/tests/sandbox_inventory_serde.rs rename to lib/foundation/fabro-types/tests/sandbox_inventory_serde.rs diff --git a/lib/crates/fabro-types/tests/sandbox_model_serde.rs b/lib/foundation/fabro-types/tests/sandbox_model_serde.rs similarity index 100% rename from lib/crates/fabro-types/tests/sandbox_model_serde.rs rename to lib/foundation/fabro-types/tests/sandbox_model_serde.rs diff --git a/lib/crates/fabro-types/tests/stage_handler.rs b/lib/foundation/fabro-types/tests/stage_handler.rs similarity index 100% rename from lib/crates/fabro-types/tests/stage_handler.rs rename to lib/foundation/fabro-types/tests/stage_handler.rs diff --git a/lib/crates/fabro-util/Cargo.toml b/lib/foundation/fabro-util/Cargo.toml similarity index 100% rename from lib/crates/fabro-util/Cargo.toml rename to lib/foundation/fabro-util/Cargo.toml diff --git a/lib/crates/fabro-util/src/backoff.rs b/lib/foundation/fabro-util/src/backoff.rs similarity index 100% rename from lib/crates/fabro-util/src/backoff.rs rename to lib/foundation/fabro-util/src/backoff.rs diff --git a/lib/crates/fabro-util/src/browser.rs b/lib/foundation/fabro-util/src/browser.rs similarity index 100% rename from lib/crates/fabro-util/src/browser.rs rename to lib/foundation/fabro-util/src/browser.rs diff --git a/lib/crates/fabro-util/src/check_report.rs b/lib/foundation/fabro-util/src/check_report.rs similarity index 100% rename from lib/crates/fabro-util/src/check_report.rs rename to lib/foundation/fabro-util/src/check_report.rs diff --git a/lib/crates/fabro-util/src/dev_token.rs b/lib/foundation/fabro-util/src/dev_token.rs similarity index 100% rename from lib/crates/fabro-util/src/dev_token.rs rename to lib/foundation/fabro-util/src/dev_token.rs diff --git a/lib/crates/fabro-util/src/env.rs b/lib/foundation/fabro-util/src/env.rs similarity index 100% rename from lib/crates/fabro-util/src/env.rs rename to lib/foundation/fabro-util/src/env.rs diff --git a/lib/crates/fabro-util/src/error.rs b/lib/foundation/fabro-util/src/error.rs similarity index 100% rename from lib/crates/fabro-util/src/error.rs rename to lib/foundation/fabro-util/src/error.rs diff --git a/lib/crates/fabro-util/src/exit.rs b/lib/foundation/fabro-util/src/exit.rs similarity index 100% rename from lib/crates/fabro-util/src/exit.rs rename to lib/foundation/fabro-util/src/exit.rs diff --git a/lib/crates/fabro-util/src/home.rs b/lib/foundation/fabro-util/src/home.rs similarity index 100% rename from lib/crates/fabro-util/src/home.rs rename to lib/foundation/fabro-util/src/home.rs diff --git a/lib/crates/fabro-util/src/json.rs b/lib/foundation/fabro-util/src/json.rs similarity index 100% rename from lib/crates/fabro-util/src/json.rs rename to lib/foundation/fabro-util/src/json.rs diff --git a/lib/crates/fabro-util/src/lib.rs b/lib/foundation/fabro-util/src/lib.rs similarity index 100% rename from lib/crates/fabro-util/src/lib.rs rename to lib/foundation/fabro-util/src/lib.rs diff --git a/lib/crates/fabro-util/src/path.rs b/lib/foundation/fabro-util/src/path.rs similarity index 100% rename from lib/crates/fabro-util/src/path.rs rename to lib/foundation/fabro-util/src/path.rs diff --git a/lib/crates/fabro-util/src/printer.rs b/lib/foundation/fabro-util/src/printer.rs similarity index 100% rename from lib/crates/fabro-util/src/printer.rs rename to lib/foundation/fabro-util/src/printer.rs diff --git a/lib/crates/fabro-util/src/run_log.rs b/lib/foundation/fabro-util/src/run_log.rs similarity index 100% rename from lib/crates/fabro-util/src/run_log.rs rename to lib/foundation/fabro-util/src/run_log.rs diff --git a/lib/crates/fabro-util/src/session_secret.rs b/lib/foundation/fabro-util/src/session_secret.rs similarity index 100% rename from lib/crates/fabro-util/src/session_secret.rs rename to lib/foundation/fabro-util/src/session_secret.rs diff --git a/lib/crates/fabro-util/src/shell.rs b/lib/foundation/fabro-util/src/shell.rs similarity index 100% rename from lib/crates/fabro-util/src/shell.rs rename to lib/foundation/fabro-util/src/shell.rs diff --git a/lib/crates/fabro-util/src/terminal.rs b/lib/foundation/fabro-util/src/terminal.rs similarity index 100% rename from lib/crates/fabro-util/src/terminal.rs rename to lib/foundation/fabro-util/src/terminal.rs diff --git a/lib/crates/fabro-util/src/text.rs b/lib/foundation/fabro-util/src/text.rs similarity index 100% rename from lib/crates/fabro-util/src/text.rs rename to lib/foundation/fabro-util/src/text.rs diff --git a/lib/crates/fabro-util/src/time.rs b/lib/foundation/fabro-util/src/time.rs similarity index 100% rename from lib/crates/fabro-util/src/time.rs rename to lib/foundation/fabro-util/src/time.rs diff --git a/lib/crates/fabro-util/src/version.rs b/lib/foundation/fabro-util/src/version.rs similarity index 100% rename from lib/crates/fabro-util/src/version.rs rename to lib/foundation/fabro-util/src/version.rs diff --git a/lib/crates/fabro-util/src/warnings.rs b/lib/foundation/fabro-util/src/warnings.rs similarity index 100% rename from lib/crates/fabro-util/src/warnings.rs rename to lib/foundation/fabro-util/src/warnings.rs diff --git a/lib/crates/fabro-util/tests/dev_token.rs b/lib/foundation/fabro-util/tests/dev_token.rs similarity index 100% rename from lib/crates/fabro-util/tests/dev_token.rs rename to lib/foundation/fabro-util/tests/dev_token.rs diff --git a/lib/crates/fabro-util/tests/error_chain.rs b/lib/foundation/fabro-util/tests/error_chain.rs similarity index 100% rename from lib/crates/fabro-util/tests/error_chain.rs rename to lib/foundation/fabro-util/tests/error_chain.rs diff --git a/lib/crates/fabro-vault/Cargo.toml b/lib/foundation/fabro-vault/Cargo.toml similarity index 100% rename from lib/crates/fabro-vault/Cargo.toml rename to lib/foundation/fabro-vault/Cargo.toml diff --git a/lib/crates/fabro-vault/src/lib.rs b/lib/foundation/fabro-vault/src/lib.rs similarity index 100% rename from lib/crates/fabro-vault/src/lib.rs rename to lib/foundation/fabro-vault/src/lib.rs diff --git a/lib/crates/fabro-vault/src/store.rs b/lib/foundation/fabro-vault/src/store.rs similarity index 100% rename from lib/crates/fabro-vault/src/store.rs rename to lib/foundation/fabro-vault/src/store.rs diff --git a/lib/crates/fabro-vault/tests/store.rs b/lib/foundation/fabro-vault/tests/store.rs similarity index 100% rename from lib/crates/fabro-vault/tests/store.rs rename to lib/foundation/fabro-vault/tests/store.rs