fabro/lib/apps/fabro-server/src
Bryan Helmkamp 223e10ea20
Install Petri's interview, secret, blob and home adapters in a Fabro run
A Petri run in the worker, and in the server under its test override, now
gets Fabro's platform adapters instead of the standalone defaults:

- `fabro_petri::interview`: Petri's `Interviewer` over the questions API
  and the worker's control channel. A human gate's question is posted as
  the `interview.started` event a legacy stage emits, keyed by an id
  derived from Petri's identity (node, execution, firing, occurrence,
  ask), so the API, the web app and Slack list it; the answer posted to
  the questions endpoint reaches the control interviewer the adapter waits
  on and is mapped onto Petri's answer. An expiry the gate reports is
  completed as `interview.timeout`, a cancel as `interview.interrupted`,
  and an auto-approved run answers itself. The hook points the read side
  takes over are marked.
- `fabro_petri::secrets`: Petri's `SecretProvider` over the vault's token
  entries, so `{{ secrets.NAME }}` resolves at spawn and is masked in every
  record; a sensitive answer registers as a dynamic secret.
- `fabro_petri::blobs`: Petri's `OutputStore` over Fabro's `blobs` table,
  through the server's blob store or the worker's client.
- The Fabro home the server resolved travels to the worker as
  `--fabro-home`, so the skills step reads it whatever the worker's
  environment says.

`engine::RunRequest` takes the interviewer, its observers, the secret
provider and the blob table from the caller; `interviewer::Unattended` is
gone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 22:31:35 -04:00
..
auth Keep auth code store naming consistent 2026-08-24 17:26:17 -04:00
demo Add the engine flag and record the engine on the run spec 2026-09-17 20:02:47 -04:00
prompts Render the run title prompt with Jinja instead of string replacement 2026-07-27 17:23:16 -04:00
server Install Petri's interview, secret, blob and home adapters in a Fabro run 2026-09-17 22:31:35 -04:00
worker_control refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
automation_materializer.rs Tighten automation Git validation types 2026-08-31 18:02:08 -04:00
canonical_host.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
canonical_origin.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
csp.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
diagnostics.rs Read the Daytona scopes fabro needs from the provider's health 2026-09-11 12:36:29 -06:00
error.rs Add the Petri run store endpoints to the API 2026-09-17 20:12:20 -04:00
git_checkout.rs Consolidate server Git subprocess ownership 2026-09-11 17:36:40 -06:00
github_webhooks.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
install.rs Hold Daytona credentials as the SDK's configuration 2026-09-10 16:53:20 -06:00
interp.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
jwt_auth.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
lib.rs Serve the Petri run store to workers 2026-09-17 20:12:20 -04:00
manifest_validation.rs Simplify local RunIntent producer support 2026-08-31 14:08:35 -04:00
migrations.rs Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
petri_runs.rs Launch a worker for a Petri run and resume it after a server restart 2026-09-17 21:20:22 -04:00
principal_middleware.rs Serve the Petri run store to workers 2026-09-17 20:12:20 -04:00
request_id.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_compiler.rs Run a workflow through Petri in the server, behind the engine flag 2026-09-17 20:27:44 -04:00
run_files.rs Add the engine flag and record the engine on the run spec 2026-09-17 20:02:47 -04:00
run_files_security.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_intent.rs Return 404 when a worker's originating run is missing 2026-09-12 10:58:05 -06:00
run_manifest.rs Consolidate server Git subprocess ownership 2026-09-11 17:36:40 -06:00
run_selector.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_title_generation.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
run_tool_create.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
security_headers.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
serve.rs Add the engine flag and record the engine on the run spec 2026-09-17 20:02:47 -04:00
server.rs Install Petri's interview, secret, blob and home adapters in a Fabro run 2026-09-17 22:31:35 -04:00
server_secrets.rs Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
spawn_env.rs Carry Petri's sandbox plugin variables into workers and test servers 2026-09-17 21:20:22 -04:00
startup.rs Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
static_files.rs feat(web): tell open tabs when a new build ships 2026-07-25 14:45:26 -04:00
test_support.rs Run a workflow through Petri in the server, behind the engine flag 2026-09-17 20:27:44 -04:00
web_auth.rs Serve CLI auth sessions from SQLite 2026-07-26 00:00:15 -04:00
worker_runtime.rs Install Petri's interview, secret, blob and home adapters in a Fabro run 2026-09-17 22:31:35 -04:00
worker_token.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00