Initial import of LogDarioSeq baseline

Establishes version control for the personal Logseq DB fork before
starting the server-client architecture migration and domain features
described in docs/agent-guide and the approved implementation plan.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-25 15:32:15 +02:00
commit 40631362b3
2016 changed files with 543898 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
type auth_data = {
provider : string;
id_token : string option;
access_token : string option;
refresh_token : string option;
expires_at : Time.date option;
sub : string option;
email : Cli_primitive.email option;
updated_at : Time.date;
}
type login_result = {
auth_path : Cli_primitive.path;
authorize_url : Cli_primitive.url;
opened : bool;
email : Cli_primitive.email option;
sub : string option;
updated_at : Time.date;
}
type logout_result = {
auth_path : Cli_primitive.path;
deleted : bool;
logout_url : Cli_primitive.url;
opened : bool;
logout_completed : bool;
}
val default_auth_path : unit -> Cli_primitive.path
val auth_path : Cli_config.t -> Cli_primitive.path
val read_auth_file :
Cli_config.t -> auth_data option Error.build_result Cli_effect.t
val write_auth_file :
Cli_config.t -> auth_data -> auth_data Error.build_result Cli_effect.t
val delete_auth_file : Cli_config.t -> unit Error.build_result Cli_effect.t
val expired_auth : auth_data -> bool
val refresh_auth :
Cli_config.t -> auth_data -> auth_data Error.build_result Cli_effect.t
val resolve_auth : Cli_config.t -> auth_data Error.build_result Cli_effect.t
val login : Cli_config.t -> login_result Error.build_result Cli_effect.t
val logout : Cli_config.t -> logout_result Error.build_result Cli_effect.t

View File

@@ -0,0 +1,74 @@
type server_status = Starting | Ready | Error | Unknown
type server = {
repo : Cli_primitive.repo;
graph : Cli_primitive.graph option;
pid : Cli_primitive.pid;
host : string;
port : Cli_primitive.port;
base_url : Cli_primitive.url;
status : server_status;
revision : string option;
root_dir : Cli_primitive.path option;
owner_source : Cli_primitive.owner_source;
owned : bool;
raw : Melange_edn_melange.any option;
}
type start_result = {
repo : Cli_primitive.repo;
owner_source : Cli_primitive.owner_source;
owned : bool;
}
type stop_result = { repo : Cli_primitive.repo }
type revision_mismatch = { cli_revision : string; servers : server Rrbvec.t }
type cleanup_result = {
cli_revision : string;
checked : int;
mismatched : int;
eligible : int;
skipped_owner : int;
killed : server Rrbvec.t;
failed : (server * Error.t) Rrbvec.t;
}
val resolve_root_dir : Cli_config.t -> Cli_primitive.path
val graphs_dir : Cli_config.t -> Cli_primitive.path
val lock_path :
root_dir:Cli_primitive.path -> Cli_primitive.repo -> Cli_primitive.path
val db_worker_runtime_script_path : unit -> Cli_primitive.path
val ensure_server :
Cli_config.t ->
Cli_primitive.repo ->
create_empty_db:bool ->
Transport.invoke_config Error.build_result Cli_effect.t
val start_server :
Cli_config.t ->
Cli_primitive.repo ->
create_empty_db:bool ->
start_result Error.build_result Cli_effect.t
val stop_server :
Cli_config.t ->
Cli_primitive.repo ->
stop_result Error.build_result Cli_effect.t
val restart_server :
Cli_config.t ->
Cli_primitive.repo ->
start_result Error.build_result Cli_effect.t
val list_servers : Cli_config.t -> server Rrbvec.t Cli_effect.t
val list_graph_items : Cli_config.t -> Graph_types.graph_item Rrbvec.t
val list_graphs : Cli_config.t -> Cli_primitive.graph Rrbvec.t
val cleanup_revision_mismatched_servers :
Cli_config.t ->
cli_revision:string ->
cleanup_result Error.build_result Cli_effect.t

View File

@@ -0,0 +1,188 @@
type invoke_config = {
base_url : Cli_primitive.url;
timeout_span : Time.span;
profile_session : Profile_types.session option;
}
type event_type = Cli_primitive.keyword
type event_payload = Melange_edn_melange.any
type event_subscription = { close : unit -> unit Cli_effect.t }
val connect_events :
invoke_config ->
(event_type -> event_payload -> unit Cli_effect.t) ->
event_subscription Cli_effect.t
val write_output :
format:Cli_primitive.keyword ->
path:Cli_primitive.path ->
data:Melange_edn_melange.any ->
unit Error.build_result Cli_effect.t
val read_input :
format:Cli_primitive.keyword ->
path:Cli_primitive.path ->
Melange_edn_melange.any Error.build_result Cli_effect.t
val thread_api_apply_outliner_ops :
invoke_config ->
repo:Cli_primitive.repo ->
ops:Melange_edn_melange.vector Melange_edn_melange.t ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_backup_db_sqlite :
invoke_config ->
repo:Cli_primitive.repo ->
path:Cli_primitive.path ->
Melange_edn_melange.any Cli_effect.t
val thread_api_cli_list_nodes :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_cli_list_pages :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_cli_list_properties :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_cli_list_tags :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_cli_list_tasks :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_create_or_open_db :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_download_graph_by_id :
invoke_config ->
repo:Cli_primitive.repo ->
graph_id:Cli_primitive.uuid ->
graph_e2ee:bool ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_ensure_user_rsa_keys :
?options:Melange_edn_melange.map Melange_edn_melange.t ->
invoke_config ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_grant_graph_access :
invoke_config ->
repo:Cli_primitive.repo ->
graph_id:Cli_primitive.uuid ->
email:Cli_primitive.email ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_list_remote_graphs :
invoke_config -> Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_request_asset_download :
invoke_config ->
repo:Cli_primitive.repo ->
asset_uuid:Cli_primitive.uuid ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_start :
invoke_config ->
repo:Cli_primitive.repo ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_status :
invoke_config ->
repo:Cli_primitive.repo ->
Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_stop :
invoke_config -> Melange_edn_melange.any Cli_effect.t
val thread_api_db_sync_upload_graph :
invoke_config ->
repo:Cli_primitive.repo ->
Melange_edn_melange.any Cli_effect.t
val thread_api_export_edn :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_get_block_parents :
invoke_config ->
repo:Cli_primitive.repo ->
block_id:Cli_primitive.db_id ->
Melange_edn_melange.any Cli_effect.t
val thread_api_get_block_refs :
invoke_config ->
repo:Cli_primitive.repo ->
block_id:Cli_primitive.db_id ->
Melange_edn_melange.any Cli_effect.t
val thread_api_get_e2ee_password :
invoke_config -> refresh_token:string -> Melange_edn_melange.any Cli_effect.t
val thread_api_import_db_binary :
invoke_config ->
repo:Cli_primitive.repo ->
data:Melange_edn_melange.any ->
Melange_edn_melange.any Cli_effect.t
val thread_api_import_edn :
invoke_config ->
repo:Cli_primitive.repo ->
data:Melange_edn_melange.any ->
Melange_edn_melange.any Cli_effect.t
val thread_api_pull :
invoke_config ->
repo:Cli_primitive.repo ->
selector:Melange_edn_melange.vector Melange_edn_melange.t ->
lookup:Melange_edn_melange.any ->
Melange_edn_melange.any Cli_effect.t
val thread_api_q :
invoke_config ->
repo:Cli_primitive.repo ->
query:Melange_edn_melange.vector Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_set_db_sync_config :
invoke_config ->
config:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_sync_app_state :
invoke_config ->
auth_state:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_validate_db :
invoke_config ->
repo:Cli_primitive.repo ->
options:Melange_edn_melange.map Melange_edn_melange.t ->
Melange_edn_melange.any Cli_effect.t
val thread_api_verify_and_save_e2ee_password :
invoke_config ->
refresh_token:string ->
password:string ->
Melange_edn_melange.any Cli_effect.t