This commit is contained in:
Hanashi 2026-08-04 02:50:39 -04:00
parent adf80a70b8
commit 3dfaee7bc2
502 changed files with 956 additions and 1821 deletions

18
Cargo.lock generated
View File

@ -196,6 +196,7 @@ dependencies = [
"serde",
"serde_derive",
"serde_json",
"sqlite_identifiers",
"tokens",
"tokio",
"url",
@ -245,6 +246,7 @@ dependencies = [
"serde_json",
"serial_test",
"sqlite_database",
"sqlite_identifiers",
"tauri",
"tauri-build",
"tauri-plugin-dialog",
@ -2555,7 +2557,6 @@ dependencies = [
"chrono",
"cloudflare_errors",
"cloudflare_mitigation",
"cookie_store 0.0.1",
"env",
"env_logger",
"errors",
@ -5480,6 +5481,7 @@ dependencies = [
"serde",
"serde_derive",
"serde_json",
"sqlite_identifiers",
"strum",
"test_data",
"test_utils",
@ -6345,12 +6347,25 @@ dependencies = [
"serde",
"serde_derive",
"serde_json",
"sqlite_identifiers",
"sqlx",
"tempfile",
"tokens",
"workspace-build-acceleration",
]
[[package]]
name = "sqlite_identifiers"
version = "0.0.1"
dependencies = [
"rand 0.8.5",
"serde",
"serde_derive",
"serde_json",
"strum",
"workspace-build-acceleration",
]
[[package]]
name = "sqlx"
version = "0.7.4"
@ -9034,7 +9049,6 @@ dependencies = [
"chrono",
"cloudflare_errors",
"cloudflare_mitigation",
"cookie_store 0.0.1",
"env",
"env_logger",
"errors",

View File

@ -44,6 +44,7 @@ members = [
# Local task storage (SQLite, embedded migrations)
"crates/sqlite_database",
"crates/sqlite_identifiers",
# Schema (public): common strongly-typed tokens, ids, payloads, etc.
"crates/schema/public/enums",
@ -108,6 +109,7 @@ primitives = { path = "crates/lib/data/primitives" }
router = { path = "crates/api_clients/router" }
seedance2pro_client = { path = "crates/api_clients/seedance2pro_client" }
sqlite_database = { path = "crates/sqlite_database" }
sqlite_identifiers = { path = "crates/sqlite_identifiers" }
test_data = { path = "crates/testing/test_data" }
test_utils = { path = "crates/testing/test_utils" }
tokens = { path = "crates/schema/public/tokens" }

View File

@ -28,6 +28,7 @@ enums.workspace = true
errors.workspace = true
uuid_utils.workspace = true
mimetypes.workspace = true
sqlite_identifiers.workspace = true
tokens.workspace = true
# External

View File

@ -2,7 +2,7 @@ use serde_derive::{Deserialize, Serialize};
use enums::common::generation::common_model_type::CommonModelType;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Request body for creating a character.
#[derive(Deserialize)]

View File

@ -1,6 +1,6 @@
use serde::Deserialize;
use serde::Serialize;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Details about submitted live portrait jobs (request arguments only)
#[derive(Serialize, Deserialize)]

View File

@ -5,7 +5,7 @@ use url::Url;
use enums::by_table::media_files::media_file_class::MediaFileClass;
use enums::by_table::media_files::media_file_type::MediaFileType;
use tokens::tokens::folders::FolderToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::users::UserToken;
// NB: The "folder media file" list-item shape lives in storyteller_web

View File

@ -1,7 +1,7 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::folders::FolderToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::folders::common::FolderInfo;

View File

@ -2,7 +2,7 @@ use serde_derive::{Deserialize, Serialize};
use enums::by_table::media_files::media_file_class::MediaFileClass;
use tokens::tokens::folders::FolderToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
// ── GET /v1/folders/media_files/{folder_token} ──
//

View File

@ -4,7 +4,7 @@ use enums::common::generation::common_aspect_ratio::CommonAspectRatio;
use enums::common::generation::common_image_model::CommonImageModel;
use enums::common::generation::common_quality::CommonQuality;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
pub const ESTIMATE_IMAGE_COST_PATH: &str = "/v1/generate/cost_estimate/image";

View File

@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize};
use enums::common::generation::common_splat_model::CommonSplatModel;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
pub const ESTIMATE_SPLAT_COST_PATH: &str = "/v1/generate/cost_estimate/splat";

View File

@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize};
use enums::common::generation::common_aspect_ratio::CommonAspectRatio;
use enums::common::generation::common_video_model::CommonVideoModel;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
pub const ESTIMATE_VIDEO_COST_PATH: &str = "/v1/generate/cost_estimate/video";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const FLUX_2_LORA_EDIT_IMAGE_ANGLE_PATH: &str = "/v1/generate/image/angle/flux_2_lora";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const QWEN_EDIT_2511_EDIT_IMAGE_ANGLE_PATH: &str = "/v1/generate/image/angle/qwen_edit_2511";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const REMOVE_IMAGE_BACKGROUND_PATH: &str = "/v1/generate/image/remove_background";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const FLUX_PRO_KONTEXT_MAX_EDIT_IMAGE_PATH: &str = "/v1/generate/image/edit/flux_pro_kontext_max";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GEMINI_25_FLASH_EDIT_IMAGE_PATH: &str = "/v1/generate/image/edit/gemini_25_flash";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GPT_IMAGE_1_EDIT_IMAGE_PATH: &str = "/v1/generate/image/edit/gpt_image_1";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const QWEN_EDIT_IMAGE_PATH: &str = "/v1/generate/image/edit/qwen";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const SEEDEDIT_3_EDIT_IMAGE_PATH: &str = "/v1/generate/image/edit/seededit_3";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const FLUX_DEV_JUGGERNAUT_INPAINT_PATH: &str = "/v1/generate/image/inpaint/flux_dev_juggernaut";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const FLUX_PRO_1_INPAINT_PATH: &str = "/v1/generate/image/inpaint/flux_pro_1";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const BYTEDANCE_SEEDREAM_5_LITE_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/bytedance_seedream_5_lite";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const BYTEDANCE_SEEDREAM_V4_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/bytedance_seedream_4";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const BYTEDANCE_SEEDREAM_V4P5_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/bytedance_seedream_4p5";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GPT_IMAGE_1P5_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/gpt_image_1p5";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const NANO_BANANA_2_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/nano_banana_2";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const NANO_BANANA_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/nano_banana";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const NANO_BANANA_PRO_MULTI_FUNCTION_IMAGE_GEN_PATH: &str = "/v1/generate/image/multi_function/nano_banana_pro";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GEMINI_25_FLASH_EDIT_IMAGE_PATH: &str = "/v1/generate/image/gemini_25_flash";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GPT_IMAGE_1_TEXT_TO_IMAGE_PATH: &str = "/v1/generate/image/gpt_image_1_text_to_image";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_HUNYUAN_2_0_IMAGE_TO_3D_URL_PATH: &str = "/v1/generate/object/hunyuan_2.0_image_to_3d";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_HUNYUAN_2_1_IMAGE_TO_3D_URL_PATH: &str = "/v1/generate/object/hunyuan_2.1_image_to_3d";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const HUNYUAN3D_V3_MULTI_FUNCTION_OBJECT_GEN_PATH: &str = "/v1/generate/object/multi_function/hunyuan3d_v3";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_WORLDLABS_MARBLE_0P1_MINI_SPLAT_URL_PATH: &str = "/v1/generate/splat/worldlabs_marble_0p1_mini";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_WORLDLABS_MARBLE_0P1_PLUS_SPLAT_URL_PATH: &str = "/v1/generate/splat/worldlabs_marble_0p1_plus";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const BEEBLE_SWITCHX_EDIT_VIDEO_PATH: &str = "/v1/generate/video/edit/beeble_switchx";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_KLING_1_6_PRO_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/kling_1.6_pro_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_KLING_2_1_MASTER_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/kling_2.1_master_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_KLING_2_1_PRO_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/kling_2.1_pro_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_SEEDANCE_1_0_LITE_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/seedance_1.0_lite_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_SEEDANCE_1_0_PRO_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/seedance_1.0_pro_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_VEO_2_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/veo_2_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_VEO_3_FAST_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/veo_3_fast_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const GENERATE_VEO_3_IMAGE_TO_VIDEO_URL_PATH: &str = "/v1/generate/video/veo_3_image_to_video";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const KLING_2P5_TURBO_PRO_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/kling_2p5_turbo_pro";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const KLING_2P6_PRO_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/kling_2p6_pro";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const KLING_3P0_PRO_MULTI_FUNCTION_VIDEO_PATH: &str = "/v1/generate/video/multi_function/kling_3p0_pro";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const KLING_3P0_STANDARD_MULTI_FUNCTION_VIDEO_PATH: &str = "/v1/generate/video/multi_function/kling_3p0_standard";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const SEEDANCE_1P5_PRO_MULTI_FUNCTION_VIDEO_GEN_PATH: &str = "/v1/generate/video/multi_function/seedance_1p5_pro";

View File

@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::characters::CharacterToken;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const SEEDANCE_2P0_MULTI_FUNCTION_VIDEO_GEN_PATH: &str = "/v1/generate/video/multi_function/seedance_2p0";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const SORA_2_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/sora_2";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const SORA_2_PRO_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/sora_2_pro";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const VEO_3P1_FAST_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/veo_3p1_fast";

View File

@ -1,6 +1,6 @@
use serde::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const VEO_3P1_MULTI_FUNCTION_VIDEO_VIDEO_PATH: &str = "/v1/generate/video/multi_function/veo_3p1";

View File

@ -8,9 +8,9 @@ use enums::common::job_status_plus::JobStatusPlus;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use serde::Deserialize;
use serde::Serialize;
use tokens::tokens::batch_generations::BatchGenerationToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
pub const LIST_SESSION_JOBS_URL_PATH: &str = "/v1/jobs/session";

View File

@ -1,5 +1,5 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
#[derive(Serialize, Deserialize)]
pub struct DeleteMediaFileRequest {

View File

@ -7,8 +7,8 @@ use serde_derive::{Deserialize, Serialize};
use enums::by_table::media_files::media_file_class::MediaFileClass;
use enums::by_table::media_files::media_file_type::MediaFileType;
use enums::common::visibility::Visibility;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use sqlite_identifiers::prompt_token::PromptToken;
use crate::api_defs::common::responses::media_file_cover_image_details::MediaFileCoverImageDetails;
use crate::api_defs::common::responses::media_links::MediaLinks;

View File

@ -6,9 +6,9 @@ use enums::by_table::media_files::media_file_class::MediaFileClass;
use enums::by_table::media_files::media_file_type::MediaFileType;
use enums::common::visibility::Visibility;
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use sqlite_identifiers::prompt_token::PromptToken;
pub const LIST_BATCH_GENERATED_REDUX_MEDIA_FILES_URL_PATH: &str = "/v1/media_files/batch_gen_redux";

View File

@ -5,7 +5,7 @@ use enums::by_table::media_files::media_file_class::MediaFileClass;
use enums::by_table::media_files::media_file_project_type::MediaFileProjectType;
use enums::by_table::media_files::media_file_type::MediaFileType;
use enums::common::visibility::Visibility;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::common::responses::media_file_cover_image_details::MediaFileCoverImageDetails;
use crate::api_defs::common::responses::media_links::MediaLinks;

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_NEW_EDITOR_2D_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/editor_2d/new";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_NEW_MOOD_BOARD_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/mood_board/new";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_NEW_SCENE_3D_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/scene_3d/new";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_NEW_VIDEO_TIMELINE_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/video_timeline/new";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_UPDATED_EDITOR_2D_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/editor_2d/update/{token}";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_UPDATED_MOOD_BOARD_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/mood_board/update/{token}";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_UPDATED_SCENE_3D_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/scene_3d/update/{token}";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub const UPLOAD_UPDATED_VIDEO_TIMELINE_PROJECT_URL_PATH: &str = "/v1/media_files/upload/project/video_timeline/update/{token}";

View File

@ -4,7 +4,7 @@ use enums::by_table::wallet_ledger_entries::wallet_ledger_entry_type::WalletLedg
use enums::common::job_status_plus::JobStatusPlus;
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::users::UserToken;
use tokens::tokens::wallet_ledger_entries::WalletLedgerEntryToken;

View File

@ -1,6 +1,6 @@
use chrono::{DateTime, Utc};
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::users::UserToken;
pub const MODERATOR_USER_LOOKUP_PATH: &str = "/v1/moderation/users/lookup";

View File

@ -2,7 +2,7 @@ use serde_derive::{Deserialize, Serialize};
use enums::common::generation::common_audio_model::CommonAudioModel;
use enums::common::generation::common_musical_key::CommonMusicalKey;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Shared request body for both the audio cost estimate and audio generation endpoints.
#[derive(Clone, Serialize, Deserialize, Debug)]

View File

@ -4,7 +4,7 @@ use enums::common::generation::common_aspect_ratio::CommonAspectRatio;
use enums::common::generation::common_image_model::CommonImageModel;
use enums::common::generation::common_quality::CommonQuality;
use enums::common::generation::common_resolution::CommonResolution;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Shared request body for both the image cost estimate and image generation endpoints.
#[derive(Clone, Serialize, Deserialize, Debug)]

View File

@ -4,7 +4,7 @@ use enums::common::generation::common_mesh_model::CommonMeshModel;
use enums::common::generation::common_mesh_output_type::CommonMeshOutputType;
use enums::common::generation::common_mesh_quality::CommonMeshQuality;
use enums::common::generation::common_polygon_type::CommonPolygonType;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Shared request body for both the mesh cost estimate and mesh generation endpoints.
#[derive(Clone, Serialize, Deserialize, Debug)]

View File

@ -1,7 +1,7 @@
use serde_derive::{Deserialize, Serialize};
use enums::common::generation::common_splat_model::CommonSplatModel;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Shared request body for both the splat cost estimate and splat generation endpoints.
#[derive(Clone, Serialize, Deserialize, Debug)]

View File

@ -6,7 +6,7 @@ use enums::common::generation::common_quality::CommonQuality;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation::common_video_model::CommonVideoModel;
use tokens::tokens::characters::CharacterToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
/// Shared request body for both the video cost estimate and video generation endpoints.
#[derive(Clone, Serialize, Deserialize, Debug)]

View File

@ -1,6 +1,6 @@
use enums::common::generation::common_audio_model::CommonAudioModel;
use enums::common::generation::model_creator::ModelCreator;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use serde_derive::Serialize;
/// Audio model to default to if none is specified

View File

@ -3,7 +3,7 @@ use enums::common::generation::common_image_model::CommonImageModel;
use enums::common::generation::common_quality::CommonQuality;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation::model_creator::ModelCreator;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use serde_derive::{Deserialize, Serialize};
/// Query string parameters for the image models endpoint.

View File

@ -2,7 +2,7 @@ use enums::common::generation::common_mesh_model::CommonMeshModel;
use enums::common::generation::common_mesh_output_type::CommonMeshOutputType;
use enums::common::generation::common_polygon_type::CommonPolygonType;
use enums::common::generation::model_creator::ModelCreator;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use serde_derive::Serialize;
/// Mesh model to default to if none is specified

View File

@ -1,6 +1,6 @@
use enums::common::generation::common_splat_model::CommonSplatModel;
use enums::common::generation::model_creator::ModelCreator;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use serde_derive::Serialize;
/// Splat model to default to if none is specified

View File

@ -3,7 +3,7 @@ use enums::common::generation::common_quality::CommonQuality;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation::common_video_model::CommonVideoModel;
use enums::common::generation::model_creator::ModelCreator;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use serde_derive::{Deserialize, Serialize};
use enums::common::generation::common_bitrate::CommonBitrate;

View File

@ -7,11 +7,11 @@ use enums::common::generation::common_generation_mode::CommonGenerationMode;
use enums::common::generation::common_model_class::CommonModelClass;
use enums::common::generation::common_model_type::CommonModelType;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use std::collections::HashSet;
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
pub const BATCH_GET_PROMPTS_PATH: &str = "/v1/prompt/batch";

View File

@ -2,9 +2,9 @@ use enums::common::generation::common_aspect_ratio::CommonAspectRatio;
use enums::common::generation::common_generation_mode::CommonGenerationMode;
use enums::common::generation::common_model_type::CommonModelType;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
pub const CREATE_PROMPT_PATH: &str = "/v1/prompts/create";

View File

@ -7,11 +7,11 @@ use enums::common::generation::common_bitrate::CommonBitrate;
use enums::common::generation::common_generation_mode::CommonGenerationMode;
use enums::common::generation::common_model_type::CommonModelType;
use enums::common::generation::common_resolution::CommonResolution;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use sqlite_identifiers::prompt_token::PromptToken;
use enums::common::generation::common_model_class::CommonModelClass;
pub const GET_PROMPT_PATH: &str = "/v1/prompts/{token}";

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::tags::common::TagDetails;

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::tags::common::TagDetails;

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::tags::common::TagDetails;

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::tags::common::TagDetails;

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
// ── POST /v1/tags/media_file/clear/{media_file_token} ──

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::tags::common::TagDetails;

View File

@ -1,6 +1,6 @@
use serde_derive::{Deserialize, Serialize};
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::api_defs::tags::common::TagDetails;

View File

@ -6,7 +6,7 @@ use crate::api_defs::common::responses::simple_generic_json_success::SimpleGener
use crate::api_defs::media_file::delete_media_file::DeleteMediaFileRequest;
use crate::api_defs::subscriptions::get_session_subscription::GetSessionSubscriptionResponse;
use log::debug;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
pub async fn delete_media_file(
api_host: &ApiHost,

View File

@ -18,10 +18,10 @@ use enums::no_table::style_transfer::style_transfer_name::StyleTransferName;
use enums::by_table::model_weights::weights_types::WeightsType;
use log::debug;
use serde_derive::Deserialize;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
/// Get details about a media file from our backend
pub async fn get_media_file(api_host: &ApiHost, media_file_token: &MediaFileToken) -> Result<GetMediaFileSuccessResponse, StorytellerError> {
@ -205,7 +205,7 @@ pub struct GetMediaFileModelInfo {
mod tests {
use crate::endpoints::media_files::get_media_file::get_media_file;
use crate::utils::api_host::ApiHost;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
#[tokio::test]
#[ignore] // Don't run in CI. Requires valid cookie

View File

@ -7,17 +7,17 @@ use crate::utils::constants::{APPLICATION_JSON, USER_AGENT};
use crate::utils::filter_bad_response::filter_bad_response;
use crate::utils::http_get_anonymous::http_get_anonymous;
use chrono::{DateTime, Utc};
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use uuid_utils::uuid::generate_random_uuid;
use log::debug;
use reqwest::multipart::{Form, Part};
use reqwest::Client;
use serde_derive::{Deserialize, Serialize};
use std::path::Path;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
use uuid::uuid;
pub struct LegacyUploadMediaFileFromFileArgs<'a, P: AsRef<Path>> {

View File

@ -3,7 +3,7 @@ use crate::error::storyteller_error::StorytellerError;
use crate::utils::api_host::ApiHost;
use crate::utils::basic_json_get_request::basic_json_get_request;
use crate::api_defs::media_file::list_batch_generated_media_files::{ListBatchGeneratedReduxMediaFilesSuccessResponse, LIST_BATCH_GENERATED_REDUX_MEDIA_FILES_URL_PATH};
use tokens::tokens::batch_generations::BatchGenerationToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
pub async fn list_batch_generated_redux_media_files(
api_host: &ApiHost,

View File

@ -6,7 +6,7 @@ use crate::utils::api_host::ApiHost;
use crate::utils::constants::{APPLICATION_JSON, USER_AGENT};
use crate::utils::filter_bad_response::filter_bad_response;
use crate::utils::http_get_anonymous::http_get_anonymous;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use chrono::{DateTime, Utc};
use uuid_utils::uuid::generate_random_uuid;
use log::debug;
@ -16,10 +16,10 @@ use serde_derive::{Deserialize, Serialize};
use std::fs::File;
use std::io::Read;
use std::path::Path;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
use uuid::uuid;
pub struct UploadImageBytesArgs<'a> {

View File

@ -7,17 +7,17 @@ use crate::utils::constants::{APPLICATION_JSON, USER_AGENT};
use crate::utils::filter_bad_response::filter_bad_response;
use crate::utils::http_get_anonymous::http_get_anonymous;
use chrono::{DateTime, Utc};
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use uuid_utils::uuid::generate_random_uuid;
use log::debug;
use reqwest::multipart::{Form, Part};
use reqwest::Client;
use serde_derive::{Deserialize, Serialize};
use std::path::Path;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
use uuid::uuid;
pub struct UploadImageFromFileArgs<'a, P: AsRef<Path>> {

View File

@ -4,7 +4,7 @@ use crate::utils::api_host::ApiHost;
use crate::utils::constants::{APPLICATION_JSON, USER_AGENT};
use crate::utils::filter_bad_response::filter_bad_response;
use crate::utils::http_get_anonymous::http_get_anonymous;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use chrono::{DateTime, Utc};
use uuid_utils::uuid::generate_random_uuid;
use log::debug;
@ -12,10 +12,10 @@ use reqwest::multipart::{Form, Part};
use reqwest::Client;
use serde_derive::{Deserialize, Serialize};
use std::path::Path;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
use uuid::uuid;
// TODO: The naming of these methods is ridiculous. It needs to be cleaned up.

View File

@ -4,7 +4,7 @@ use crate::utils::api_host::ApiHost;
use crate::utils::constants::{APPLICATION_JSON, USER_AGENT};
use crate::utils::filter_bad_response::filter_bad_response;
use crate::utils::http_get_anonymous::http_get_anonymous;
use enums::common::generation_provider::GenerationProvider;
use sqlite_identifiers::generation_provider::GenerationProvider;
use chrono::{DateTime, Utc};
use uuid_utils::uuid::generate_random_uuid;
use log::debug;
@ -12,10 +12,10 @@ use reqwest::multipart::{Form, Part};
use reqwest::Client;
use serde_derive::{Deserialize, Serialize};
use std::path::Path;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::batch_generation_token::BatchGenerationToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::prompt_token::PromptToken;
use uuid::uuid;
pub struct UploadVideoFromFileArgs<'a, P: AsRef<Path>> {

View File

@ -6,7 +6,7 @@ use log::{info, warn};
use reqwest::Client;
use url::Url;
use tokens::tokens::media_files::MediaFileToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use crate::endpoints::media_files::get_media_file::{get_media_file, GetMediaFileSuccessResponse};
use crate::error::api_error::ApiError;

View File

@ -9,8 +9,8 @@ use mimetypes::mimetype_info::file_extension::FileExtension;
use mimetypes::mimetype_info::mimetype_info::MimetypeInfo;
use serde_derive::Deserialize;
use std::path::Path;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::prompts::PromptToken;
use sqlite_identifiers::media_file_token::MediaFileToken;
use sqlite_identifiers::prompt_token::PromptToken;
#[derive(Deserialize, Debug)]
pub struct UploadMediaFileSuccessResponse {

View File

@ -18,7 +18,6 @@ workspace-build-acceleration.workspace = true
# Internal
cloudflare_errors.workspace = true
cloudflare_mitigation.workspace = true
cookie_store.workspace = true
errors.workspace = true
# External

Some files were not shown because too many files have changed in this diff Show More