aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-daemon/proto
diff options
context:
space:
mode:
Diffstat (limited to 'crates/atuin-daemon/proto')
-rw-r--r--crates/atuin-daemon/proto/control.proto62
-rw-r--r--crates/atuin-daemon/proto/search.proto35
2 files changed, 97 insertions, 0 deletions
diff --git a/crates/atuin-daemon/proto/control.proto b/crates/atuin-daemon/proto/control.proto
new file mode 100644
index 00000000..06347902
--- /dev/null
+++ b/crates/atuin-daemon/proto/control.proto
@@ -0,0 +1,62 @@
+syntax = "proto3";
+package control;
+
+// The Control service allows external processes (CLI commands, etc.)
+// to inject events into the running daemon.
+service Control {
+ // Send an event to the daemon's event bus
+ rpc SendEvent(SendEventRequest) returns (SendEventResponse);
+}
+
+message SendEventRequest {
+ oneof event {
+ // History was pruned - search index needs full rebuild
+ HistoryPrunedEvent history_pruned = 1;
+
+ // Specific history items were deleted
+ HistoryDeletedEvent history_deleted = 2;
+
+ // Request immediate sync
+ ForceSyncEvent force_sync = 3;
+
+ // Settings have changed, reload if needed
+ SettingsReloadedEvent settings_reloaded = 4;
+
+ // Request graceful shutdown
+ ShutdownEvent shutdown = 5;
+
+ // History was rebuilt - search index needs full rebuild
+ HistoryRebuiltEvent history_rebuilt = 6;
+ }
+}
+
+message SendEventResponse {
+ // Empty on success; errors come through gRPC status
+}
+
+// Individual event message types
+
+message HistoryPrunedEvent {
+ // No fields needed - just signals that pruning happened
+}
+
+message HistoryRebuiltEvent {
+ // No fields needed - just signals that rebuilding happened
+}
+
+message HistoryDeletedEvent {
+ // IDs of deleted history items (UUIDs as strings)
+ repeated string ids = 1;
+}
+
+message ForceSyncEvent {
+ // No fields needed - just triggers sync
+}
+
+message SettingsReloadedEvent {
+ // No fields needed - components should re-read settings
+}
+
+message ShutdownEvent {
+ // No fields needed - triggers graceful shutdown
+}
diff --git a/crates/atuin-daemon/proto/search.proto b/crates/atuin-daemon/proto/search.proto
new file mode 100644
index 00000000..6b84acbd
--- /dev/null
+++ b/crates/atuin-daemon/proto/search.proto
@@ -0,0 +1,35 @@
+syntax = "proto3";
+package search;
+
+enum FilterMode {
+ GLOBAL = 0;
+ HOST = 1;
+ SESSION = 2;
+ DIRECTORY = 3;
+ WORKSPACE = 4;
+ SESSION_PRELOAD = 5;
+}
+
+message SearchContext {
+ string session_id = 1;
+ string cwd = 2;
+ string hostname = 3;
+ string host_id = 4;
+ optional string git_root = 5;
+}
+
+message SearchRequest {
+ string query = 1;
+ uint64 query_id = 2; // Incrementing ID to match responses to queries
+ FilterMode filter_mode = 3;
+ SearchContext context = 4;
+}
+
+message SearchResponse {
+ uint64 query_id = 1; // Echo back the query ID
+ repeated bytes ids = 2;
+}
+
+service Search {
+ rpc Search(stream SearchRequest) returns (stream SearchResponse);
+}