6001b87215
GUI 生成命令新增可选 targetCategory:generate_local_project_asset 与 start_local_project_asset_generation 经 options 传入完成登记 PlatformArtAssetGenerationOptions 增加 target_category,Agent 与 Direct 路径保持 None,仍按 kind 派生默认分类 新建条目与同 kind 重登记都按显式目标分类写入 manifest 既有 category 字段,不新增字段、不改数据结构 目标分类只接受 GameCreationAppAssetCategory 的六个合法值,version 与 all 等栏目伪值在提交前失败关闭 target_category 刻意不进 standalone 指纹与 durable 请求快照,分类只影响本地 manifest 落点,避免在途账本换槽重复 POST,同任务幂等恢复由调用方继续用同一栏目提交 补用例:kind=image 带 targetCategory=character 落到 character 而不是 unclassified、非法栏目值不产生生成请求、登记入口的显式分类与不传时的原 kind 派生行为
144 lines
7.8 KiB
Rust
144 lines
7.8 KiB
Rust
use super::*;
|
|
|
|
mod canvas_generation;
|
|
mod draft_validation;
|
|
mod draft_writer;
|
|
mod external_generation_state;
|
|
mod loop_orchestration;
|
|
mod pass_artifacts;
|
|
mod prompt_context;
|
|
mod role_briefs;
|
|
mod run_lifecycle;
|
|
#[cfg(test)]
|
|
mod tests;
|
|
mod trace;
|
|
|
|
pub(crate) use canvas_generation::{
|
|
classify_external_generation_initial_response, external_canvas_placeholder,
|
|
external_editor_json_request, external_editor_response_data, external_generation_poll_after_ms,
|
|
external_generation_result_has_download_reference,
|
|
external_generation_submit_rejection_is_definitive,
|
|
platform_art_generation_error_needs_reconciliation, prepare_external_canvas_generation_context,
|
|
resolve_canvas_resource_download_with_access, submit_external_generation_request,
|
|
wait_for_external_generation_result_with_access, ExternalCanvasGenerationContext,
|
|
ExternalGenerationInitialResponse,
|
|
};
|
|
pub(in crate::agent) use canvas_generation::{
|
|
commit_prepared_platform_art_asset_at, commit_prepared_platform_art_asset_strict_slices_at,
|
|
generate_platform_art_asset_with_retained_runtime_options_at,
|
|
generate_platform_art_asset_with_runtime_options_at,
|
|
platform_art_generation_error_result_unknown, recover_persisted_visual_generation_options,
|
|
register_existing_platform_art_slices_at, request_platform_art_asset_with_runtime_options_at,
|
|
restore_platform_art_asset_bytes_at,
|
|
retained_platform_art_generation_runtime_spritesheet_identity_at,
|
|
retained_platform_art_generation_runtime_state_matches_direct_stage_at,
|
|
validate_platform_art_png_bytes_with_limits,
|
|
};
|
|
pub(in crate::agent) use draft_validation::validate_closed_game_script_blocks;
|
|
pub(crate) use external_generation_state::{
|
|
classify_platform_art_generation_service_identity,
|
|
platform_art_generation_external_service_fingerprint,
|
|
platform_art_generation_external_service_origin, PlatformArtGenerationServiceIdentityMatch,
|
|
PLATFORM_ART_GENERATION_SERVICE_IDENTITY_SCHEME,
|
|
};
|
|
pub(in crate::agent) use external_generation_state::{
|
|
game_creator_agent_runtime_external_generation_exists,
|
|
platform_art_generation_runtime_context_from_pending,
|
|
platform_art_generation_runtime_recovery_at, remove_platform_art_generation_runtime_state_at,
|
|
PlatformArtGenerationRuntimeContext, PlatformArtGenerationRuntimeRecovery,
|
|
PLATFORM_ART_GENERATION_RUNTIME_SCHEMA_VERSION,
|
|
};
|
|
#[cfg(test)]
|
|
pub(crate) use external_generation_state::{
|
|
platform_art_generation_external_configuration_fingerprint,
|
|
platform_art_generation_legacy_external_configuration_fingerprint,
|
|
setup_platform_art_generation_runtime_accepted_for_recovery_test,
|
|
write_platform_art_generation_runtime_accepted_for_test,
|
|
write_platform_art_generation_runtime_prepared_for_test,
|
|
};
|
|
pub(in crate::agent) use loop_orchestration::build_game_creator_agent_runtime_llm_client;
|
|
pub(in crate::agent) use trace::game_creation_agent_group_id;
|
|
|
|
#[cfg(test)]
|
|
pub(crate) use canvas_generation::request_platform_art_asset_with_options_for_test;
|
|
#[allow(unused_imports)]
|
|
pub(crate) use canvas_generation::{
|
|
build_platform_art_asset_prompt, editor_api_key_is_configured, generate_platform_art_asset_at,
|
|
generate_platform_art_asset_with_options_at,
|
|
generate_platform_art_asset_with_required_slices_at, maybe_generate_platform_art_asset_step,
|
|
needs_platform_art_asset_generation, normalize_platform_art_asset_generation_kind,
|
|
normalize_platform_art_reference_asset_ids, normalize_platform_art_target_category,
|
|
platform_art_asset_art_spec, platform_art_asset_output_extension_matches,
|
|
platform_art_runtime_references_match_request_contract, prepare_platform_art_asset_output_path,
|
|
project_canvas_asset_media_types, role_has_canvas_assets, suggested_canvas_tool_call,
|
|
PlatformArtAssetGenerationOptions, PLATFORM_ART_ASSET_GENERATION_KINDS,
|
|
};
|
|
#[allow(unused_imports)]
|
|
pub(crate) use draft_validation::{
|
|
contains_any, evaluate_game_draft, extract_json_payload, fnv1a64,
|
|
parse_llm_game_draft_response, render_evaluator_findings, render_planner_spec,
|
|
strip_llm_thinking_blocks, validate_canvas_rendering_html, validate_game_html_smoke,
|
|
validate_llm_agent_handoffs, validate_llm_game_draft, validate_non_placeholder_game_html,
|
|
validate_playable_game_html, validate_safe_game_html_runtime,
|
|
};
|
|
pub(crate) use draft_writer::{ensure_legacy_json_generator_project, write_local_game_draft_at};
|
|
#[allow(unused_imports)]
|
|
pub(crate) use loop_orchestration::{
|
|
emit_agent_progress, game_creator_agent_llm_error_is_mud_points_insufficient,
|
|
game_creator_agent_llm_error_public_summary, game_creator_mud_points_insufficient_message,
|
|
game_creator_runtime_error_is_mud_points_insufficient, request_game_creator_llm_text,
|
|
request_generator_game_draft_with_client, request_planner_spec_with_client,
|
|
run_game_creator_agent_loop_at, AgentProgressEmitter,
|
|
GAME_CREATOR_MUD_POINTS_INSUFFICIENT_ERROR_KIND,
|
|
};
|
|
#[allow(unused_imports)]
|
|
pub(crate) use pass_artifacts::{
|
|
agent_role_memory_relative_path, agent_role_memory_relative_path_for_task,
|
|
append_agent_success_memories, append_group_brief_steps, read_previous_agent_role_brief,
|
|
render_agent_pass_agenda_markdown, render_agent_pass_task_graph_json,
|
|
render_carryover_role_brief, write_agent_group_brief, write_agent_pass_agenda,
|
|
write_agent_pass_artifacts, write_agent_pass_file, write_agent_role_brief,
|
|
};
|
|
#[allow(unused_imports)]
|
|
pub(crate) use prompt_context::{
|
|
append_prompt_context, asset_source_kind_label, game_creator_generator_user_prompt,
|
|
game_creator_planner_system_prompt, game_creator_planner_user_prompt,
|
|
game_creator_system_prompt, read_optional_text, redact_secret_tokens,
|
|
render_local_asset_prompt_context, render_local_conversation_prompt_context,
|
|
render_local_conversation_prompt_context_for_session, sanitize_error_context,
|
|
sanitize_prompt_context, truncate_prompt_context, truncate_prompt_context_preserving_tail,
|
|
};
|
|
#[allow(unused_imports)]
|
|
pub(crate) use role_briefs::{
|
|
append_agent_loop_log, append_agent_loop_memory, append_collaboration_steps,
|
|
game_creator_role_agent_system_prompt, handoff_group_label, handoff_summary_for_group,
|
|
has_game_creator_agent_llm_override, join_or_none, local_role_acceptance_risk,
|
|
local_role_downstream_constraint, render_agent_group_brief_markdown,
|
|
render_agent_group_briefs_context, render_agent_pass_handoff, render_agent_role_brief_context,
|
|
render_local_agent_role_brief, request_agent_group_briefs_with_client,
|
|
request_agent_role_brief_with_config, truncate_inline,
|
|
};
|
|
#[allow(unused_imports)]
|
|
pub(crate) use run_lifecycle::{
|
|
agent_run_control_result_from_trace, collect_agent_run_artifacts, control_agent_run_at,
|
|
count_agent_tool_calls, prune_agent_run_history, read_latest_agent_run_trace,
|
|
resumed_agent_run_prompt, update_agent_run_lifecycle, write_agent_run_trace_payload,
|
|
};
|
|
#[cfg(test)]
|
|
pub(crate) use tests::request_llm_game_draft_with_client;
|
|
#[allow(unused_imports)]
|
|
pub(crate) use trace::{
|
|
agent_run_lifecycle_status, agent_run_stop_reason, agent_trace_step, agent_trace_step_owned,
|
|
append_agent_run_activity, append_agent_run_jsonl, append_agent_run_output,
|
|
append_agent_run_trace_step, append_local_artifact_write_step, append_preview_log,
|
|
append_preview_start_trace_step, append_preview_stop_trace_step,
|
|
append_static_smoke_manual_trace_step, append_static_smoke_step,
|
|
build_agent_run_task_graph_trace, collect_agent_pass_plan_traces,
|
|
game_creation_agent_group_from_id, infer_agent_trace_phase, parse_agent_task_id_list,
|
|
read_agent_agenda_snapshot, ready_task_ids_for_tasks, record_replaced_preview_stop,
|
|
role_brief_completes_task, set_task_status_if_current, should_replace_task_status, status_rank,
|
|
task_has_status, task_status_from_agent_step, with_task_context,
|
|
write_agent_run_context_bundle, write_agent_run_trace, AgentAgendaSnapshot,
|
|
AgentPassTaskGraphSnapshot,
|
|
};
|