kitchen_shell/lib.rs
1//! The frame the neuro-kitchen apps share. An app registers what it can do; the shell draws it
2//! the same way everywhere.
3//!
4//! - [`command`]: one list of commands ([`command::CommandSpec`] in a [`command::Registry`]) that
5//! becomes the menus, the search, the key bindings and an agent's tools.
6//! - [`scripts`]: the Scripts workspace: Python and Rust scripts that become commands and
7//! pipeline nodes.
8//! - [`search`]: the search over the registry (Ctrl+K).
9//! - [`frame`]: the frame ([`frame::Shell`]): title bar, workspaces, menu row, status bar with
10//! jobs and meters, Settings, search.
11//! - [`jobs`]: what runs in the background, with progress and cancel.
12//! - [`activity`]: what happened, for the timeline: every command run (who, how, with what),
13//! time in each workspace, jobs, what steps produced.
14//! - [`env`]: a project's environments for its scripts: the Python venv (made and synced by uv
15//! from `pyproject.toml` and `uv.lock`) and the Rust workspace and toolchain pin.
16//! - [`changes`]: the Changes panel: watched project files as diffs against a baseline, an
17//! agent's proposed change reviewed hunk by hunk.
18//! - [`container`]: the view container: a dock of views, "Add view or container", arrangements,
19//! the buttons in a view's tab.
20//!
21//! `cargo run -p kitchen-shell --example shell-gallery` shows each piece.
22
23#![warn(missing_docs)]
24
25// GPUI's derive macros name `gpui`; through the kit, that is gpui-kit
26extern crate gpui_kit as gpui;
27
28pub mod activity;
29pub mod changes;
30pub mod command;
31pub mod container;
32pub mod env;
33pub mod frame;
34pub mod jobs;
35pub mod scripts;
36pub mod search;
37
38pub use changes::{Baseline, ChangesEvent, ChangesPanel};
39pub use command::{CommandSpec, MenuItem, MenuProvider, MenuSpec, Registry, RunCommand};
40pub use container::{AddViewDialog, Arrangement, DialogEvent, ViewOption};
41pub use frame::{RemoteSpec, SettingsSection, Shell, ShellEvent, ShellSpec, StatusItems, WorkspaceSpec, frame_rounded, resize_edge};
42pub use scripts::{NodeSpec, Port, Script, ScriptMeta, ScriptsEvent, ScriptsWorkspace};
43pub use search::{Search, SearchEvent};