This commit is contained in:
2026-04-24 12:21:33 +08:00
parent 3528980645
commit 70b5a7cf73
515 changed files with 14971 additions and 6831 deletions

View File

@@ -143,6 +143,7 @@ use crate::module_bindings::{
BigFishDraftCompileInput as BindingBigFishDraftCompileInput,
BigFishGameDraft as BindingBigFishGameDraft,
BigFishLevelBlueprint as BindingBigFishLevelBlueprint,
BigFishMessageFinalizeInput as BindingBigFishMessageFinalizeInput,
BigFishMessageSubmitInput as BindingBigFishMessageSubmitInput,
BigFishPublishInput as BindingBigFishPublishInput,
BigFishRunGetInput as BindingBigFishRunGetInput,
@@ -302,6 +303,7 @@ use crate::module_bindings::{
drag_puzzle_piece_or_group_procedure::drag_puzzle_piece_or_group as _,
execute_custom_world_agent_action_procedure::execute_custom_world_agent_action as _,
fail_ai_task_and_return_procedure::fail_ai_task_and_return as _,
finalize_big_fish_agent_message_turn_procedure::finalize_big_fish_agent_message_turn as _,
finalize_custom_world_agent_message_turn_procedure::finalize_custom_world_agent_message_turn as _,
finalize_puzzle_agent_message_turn_procedure::finalize_puzzle_agent_message_turn as _,
generate_big_fish_asset_procedure::generate_big_fish_asset as _,
@@ -1574,6 +1576,35 @@ impl SpacetimeClient {
.await
}
pub async fn finalize_big_fish_agent_message(
&self,
input: BigFishMessageFinalizeRecordInput,
) -> Result<BigFishSessionRecord, SpacetimeClientError> {
let procedure_input = BindingBigFishMessageFinalizeInput {
session_id: input.session_id,
owner_user_id: input.owner_user_id,
assistant_message_id: input.assistant_message_id,
assistant_reply_text: input.assistant_reply_text,
stage: parse_big_fish_creation_stage_record(input.stage.as_str())?,
progress_percent: input.progress_percent,
anchor_pack_json: input.anchor_pack_json,
error_message: input.error_message,
updated_at_micros: input.updated_at_micros,
};
self.call_after_connect(move |connection, sender| {
connection
.procedures()
.finalize_big_fish_agent_message_turn_then(procedure_input, move |_, result| {
let mapped = result
.map_err(|error| SpacetimeClientError::Procedure(error.to_string()))
.and_then(map_big_fish_session_procedure_result);
send_once(&sender, mapped);
});
})
.await
}
pub async fn compile_big_fish_draft(
&self,
session_id: String,
@@ -5300,6 +5331,21 @@ fn format_big_fish_creation_stage(value: BindingBigFishCreationStage) -> &'stati
}
}
fn parse_big_fish_creation_stage_record(
value: &str,
) -> Result<BindingBigFishCreationStage, SpacetimeClientError> {
match value.trim() {
"collecting_anchors" => Ok(BindingBigFishCreationStage::CollectingAnchors),
"draft_ready" => Ok(BindingBigFishCreationStage::DraftReady),
"asset_refining" => Ok(BindingBigFishCreationStage::AssetRefining),
"ready_to_publish" => Ok(BindingBigFishCreationStage::ReadyToPublish),
"published" => Ok(BindingBigFishCreationStage::Published),
other => Err(SpacetimeClientError::Runtime(format!(
"未知 big fish creation stage: {other}"
))),
}
}
fn format_big_fish_anchor_status(value: BindingBigFishAnchorStatus) -> &'static str {
match value {
BindingBigFishAnchorStatus::Confirmed => "confirmed",
@@ -6445,6 +6491,19 @@ pub struct BigFishMessageSubmitRecordInput {
pub submitted_at_micros: i64,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct BigFishMessageFinalizeRecordInput {
pub session_id: String,
pub owner_user_id: String,
pub assistant_message_id: Option<String>,
pub assistant_reply_text: Option<String>,
pub stage: String,
pub progress_percent: u32,
pub anchor_pack_json: String,
pub error_message: Option<String>,
pub updated_at_micros: i64,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct BigFishAssetGenerateRecordInput {
pub session_id: String,