Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .planning/architecture/memory_streaming.md

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions .planning/architecture/mermaid/memory_streaming.mmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
stateDiagram-v2
direction TB
[*] --> state_uninitialized
state_uninitialized --> state_empty : initialize [guard_configuration_valid_] / effect_initialize_
state_uninitialized --> state_uninitialized : initialize [guard_configuration_invalid_] / invalid_configuration__
state_empty --> state_empty : initialize [always] / already_initialized__
state_filling --> state_filling : initialize [always] / already_initialized__
state_full --> state_full : initialize [always] / already_initialized__
state_errored --> state_empty : initialize [guard_configuration_valid_] / effect_initialize_
state_errored --> state_errored : initialize [guard_configuration_invalid_] / invalid_configuration__
state_empty --> state_full : advance [guard_capacity_one_] / wrap__
state_empty --> state_filling : advance [guard_capacity_many_] / advance__
state_filling --> state_filling : advance [guard_filling_remains_partial_] / advance__
state_filling --> state_full : advance [guard_filling_becomes_full_] / wrap__
state_full --> state_full : advance [guard_full_position_available_before_wrap_] / advance__
state_full --> state_full : advance [guard_full_position_available_at_wrap_] / wrap__
state_full --> state_full : advance [guard_full_position_overflow_] / position_overflow__
state_full --> state_full : advance [guard_full_cursor_invalid_] / internal_error__
state_empty --> state_empty : reset [always] / effect_reset_
state_filling --> state_empty : reset [always] / effect_reset_
state_full --> state_empty : reset [always] / effect_reset_
state_empty --> state_empty : capture_view [always] / empty__
state_filling --> state_filling : capture_view [always] / filling__
state_full --> state_full : capture_view [always] / full__
state_uninitialized --> state_uninitialized : advance [always] / uninitialized__
state_uninitialized --> state_uninitialized : reset [always] / uninitialized__
state_uninitialized --> state_uninitialized : capture_view [always] / uninitialized__
state_errored --> state_errored : advance [always] / internal_error__
state_errored --> state_errored : reset [always] / internal_error__
state_errored --> state_errored : capture_view [always] / internal_error__
state_uninitialized --> state_errored : _ [always] / effect_unexpected_
state_empty --> state_errored : _ [always] / effect_unexpected_
state_filling --> state_errored : _ [always] / effect_unexpected_
state_full --> state_errored : _ [always] / effect_unexpected_
state_errored --> state_errored : _ [always] / effect_unexpected_
195 changes: 195 additions & 0 deletions .planning/architecture/mermaid/speech_generator_moshi.mmd

Large diffs are not rendered by default.

288 changes: 288 additions & 0 deletions .planning/architecture/mermaid/speech_generator_moshi_executor.mmd

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
stateDiagram-v2
direction TB
[*] --> state_uninitialized
state_uninitialized --> state_initialize_temporal_positions_result : initialize_run [guard_initialize_request_valid_] / effect_initialize_temporal_positions_
state_initialize_temporal_positions_result --> state_initialize_depformer_positions_result : completion_initialize_run_ [initialize_run__] / effect_initialize_depformer_positions_
state_initialize_temporal_positions_result --> state_failed : completion_initialize_run_ [initialize_run__] / memory_initialize_failed__
state_initialize_depformer_positions_result --> state_initialize_encoder_result : completion_initialize_run_ [initialize_run__] / effect_initialize_encoder_
state_initialize_depformer_positions_result --> state_failed : completion_initialize_run_ [initialize_run__] / memory_initialize_failed__
state_uninitialized --> state_failed : initialize_run [guard_initialize_request_invalid_] / effect_fail_initialize_invalid_
state_initialize_encoder_result --> state_initialize_decoder_result : completion_initialize_run_ [guard_encoder_initialize_succeeded_] / effect_initialize_decoder_
state_initialize_encoder_result --> state_failed : completion_initialize_run_ [guard_encoder_initialize_failed_] / codec_initialize_failed__
state_initialize_decoder_result --> state_initialize_executor_result : completion_initialize_run_ [initialize_run__] / effect_initialize_executor_
state_initialize_decoder_result --> state_failed : completion_initialize_run_ [initialize_run__] / codec_initialize_failed__
state_initialize_executor_result --> state_initialize_generator_result : completion_initialize_run_ [initialize_run__] / effect_initialize_generator_
state_initialize_executor_result --> state_failed : completion_initialize_run_ [initialize_run__] / executor_initialize_failed__
state_initialize_generator_result --> state_load_voice_result : completion_initialize_run_ [initialize_run__] / effect_load_voice_
state_initialize_generator_result --> state_failed : completion_initialize_run_ [initialize_run__] / generator_initialize_failed__
state_load_voice_result --> state_voice_prefill : completion_initialize_run_ [initialize_run__] / effect_publish_initialize_done_
state_load_voice_result --> state_failed : completion_initialize_run_ [initialize_run__] / voice_load_failed__
state_voice_prefill --> state_voice_prefill_result : advance_voice_run [always] / effect_prefill_voice_
state_voice_prefill_result --> state_voice_prefill : completion_advance_voice_run_ [advance_voice_run__] / effect_publish_advance_voice_done_
state_voice_prefill_result --> state_prompt_begin_result : completion_advance_voice_run_ [advance_voice_run__] / effect_begin_prompt_
state_voice_prefill_result --> state_failed : completion_advance_voice_run_ [advance_voice_run__] / voice_prefill_failed__
state_prompt_begin_result --> state_prompt_prefill : completion_advance_voice_run_ [advance_voice_run__] / effect_publish_advance_voice_done_
state_prompt_begin_result --> state_failed : completion_advance_voice_run_ [advance_voice_run__] / prompt_begin_failed__
state_prompt_prefill --> state_prompt_prefill_result : advance_prompt_run [always] / effect_prefill_prompt_
state_prompt_prefill_result --> state_prompt_prefill : completion_advance_prompt_run_ [advance_prompt_run__] / effect_publish_advance_prompt_done_
state_prompt_prefill_result --> state_live : completion_advance_prompt_run_ [advance_prompt_run__] / effect_publish_advance_prompt_done_
state_prompt_prefill_result --> state_failed : completion_advance_prompt_run_ [advance_prompt_run__] / prompt_prefill_failed__
state_live --> state_live_encode_result : live_frame_run [live_frame_run__] / live_frame_run__
state_live --> state_failed : live_frame_run [live_frame_run__] / invalid_request__
state_live_encode_result --> state_live_generate_result : completion_live_frame_run_ [live_frame_run__] / live_frame_run__
state_live_encode_result --> state_failed : completion_live_frame_run_ [live_frame_run__] / encode_failed__
state_live_generate_result --> state_live_decode_result : completion_live_frame_run_ [live_frame_run__] / live_frame_run__
state_live_generate_result --> state_live : completion_live_frame_run_ [live_frame_run__] / live_frame_run__
state_live_generate_result --> state_failed : completion_live_frame_run_ [live_frame_run__] / generate_failed__
state_live_decode_result --> state_live : completion_live_frame_run_ [live_frame_run__] / live_frame_run__
state_live_decode_result --> state_failed : completion_live_frame_run_ [live_frame_run__] / decode_failed__
state_live --> state_flush : begin_flush_run [always] / effect_publish_begin_flush_done_
state_flush --> state_flush_encode_result : flush_frame_run [flush_frame_run__] / flush_frame_run__
state_flush --> state_failed : flush_frame_run [flush_frame_run__] / invalid_request__
state_flush_encode_result --> state_flush_generate_result : completion_flush_frame_run_ [flush_frame_run__] / flush_frame_run__
state_flush_encode_result --> state_failed : completion_flush_frame_run_ [flush_frame_run__] / encode_failed__
state_flush_generate_result --> state_flush_decode_result : completion_flush_frame_run_ [flush_frame_run__] / flush_frame_run__
state_flush_generate_result --> state_flush : completion_flush_frame_run_ [flush_frame_run__] / flush_frame_run__
state_flush_generate_result --> state_failed : completion_flush_frame_run_ [flush_frame_run__] / generate_failed__
state_flush_decode_result --> state_flush : completion_flush_frame_run_ [flush_frame_run__] / flush_frame_run__
state_flush_decode_result --> state_failed : completion_flush_frame_run_ [flush_frame_run__] / decode_failed__
state_flush --> state_done : finish_run [always] / effect_publish_finish_done_
state_uninitialized --> state_failed : _ [always] / effect_mark_unexpected_
state_initialize_temporal_positions_result --> state_failed : _ [always] / effect_mark_unexpected_
state_initialize_depformer_positions_result --> state_failed : _ [always] / effect_mark_unexpected_
state_initialize_encoder_result --> state_failed : _ [always] / effect_mark_unexpected_
state_initialize_decoder_result --> state_failed : _ [always] / effect_mark_unexpected_
state_initialize_executor_result --> state_failed : _ [always] / effect_mark_unexpected_
state_initialize_generator_result --> state_failed : _ [always] / effect_mark_unexpected_
state_load_voice_result --> state_failed : _ [always] / effect_mark_unexpected_
state_voice_prefill --> state_failed : _ [always] / effect_mark_unexpected_
state_voice_prefill_result --> state_failed : _ [always] / effect_mark_unexpected_
state_prompt_begin_result --> state_failed : _ [always] / effect_mark_unexpected_
state_prompt_prefill --> state_failed : _ [always] / effect_mark_unexpected_
state_prompt_prefill_result --> state_failed : _ [always] / effect_mark_unexpected_
state_live --> state_failed : _ [always] / effect_mark_unexpected_
state_live_encode_result --> state_failed : _ [always] / effect_mark_unexpected_
state_live_generate_result --> state_failed : _ [always] / effect_mark_unexpected_
state_live_decode_result --> state_failed : _ [always] / effect_mark_unexpected_
state_flush --> state_failed : _ [always] / effect_mark_unexpected_
state_flush_encode_result --> state_failed : _ [always] / effect_mark_unexpected_
state_flush_generate_result --> state_failed : _ [always] / effect_mark_unexpected_
state_flush_decode_result --> state_failed : _ [always] / effect_mark_unexpected_
state_done --> state_failed : _ [always] / effect_mark_unexpected_
state_failed --> state_failed : _ [always] / effect_mark_unexpected_
60 changes: 60 additions & 0 deletions .planning/architecture/mermaid/speech_tokenizer_moshi.mmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
stateDiagram-v2
direction TB
[*] --> state_uninitialized
state_uninitialized --> state_ready : initialize [guard_configuration_valid_] / effect_initialize_
state_uninitialized --> state_uninitialized : initialize [guard_configuration_invalid_] / invalid_configuration__
state_ready --> state_ready : initialize [always] / already_initialized__
state_prepared_full --> state_prepared_full : initialize [always] / already_initialized__
state_prepared_generated --> state_prepared_generated : initialize [always] / already_initialized__
state_errored --> state_ready : initialize [guard_configuration_valid_] / effect_initialize_
state_errored --> state_errored : initialize [guard_configuration_invalid_] / invalid_configuration__
state_ready --> state_prepared_full : tokenize [guard_tokenize_full_] / effect_tokenize_full_
state_ready --> state_prepared_generated : tokenize [guard_tokenize_tail_] / effect_tokenize_tail_
state_ready --> state_prepared_generated : tokenize [guard_tokenize_empty_] / effect_tokenize_empty_
state_ready --> state_ready : tokenize [guard_tokenize_invalid_] / request_shape__
state_ready --> state_ready : tokenize [guard_tokenize_position_overflow_] / position_overflow__
state_prepared_full --> state_prepared_full : tokenize [always] / phase_order__
state_prepared_generated --> state_prepared_generated : tokenize [always] / phase_order__
state_prepared_full --> state_commit_full_zero : detokenize_run [guard_detokenize_valid_replace_] / effect_begin_detokenize_
state_prepared_full --> state_commit_full_generated : detokenize_run [guard_detokenize_valid_generated_] / effect_begin_detokenize_
state_prepared_generated --> state_commit_generated_zero : detokenize_run [guard_detokenize_valid_replace_] / effect_begin_detokenize_
state_prepared_generated --> state_commit_generated : detokenize_run [guard_detokenize_valid_generated_] / effect_begin_detokenize_
state_prepared_full --> state_prepared_full : detokenize_run [guard_detokenize_shape_invalid_] / request_shape__
state_prepared_generated --> state_prepared_generated : detokenize_run [guard_detokenize_shape_invalid_] / request_shape__
state_prepared_full --> state_prepared_full : detokenize_run [guard_position_overflow_] / position_overflow__
state_prepared_generated --> state_prepared_generated : detokenize_run [guard_position_overflow_] / position_overflow__
state_commit_full_zero --> state_output_decision : completion_detokenize_run_ [always] / zero__
state_commit_full_generated --> state_output_decision : completion_detokenize_run_ [always] / generated__
state_commit_generated_zero --> state_output_decision : completion_detokenize_run_ [always] / zero__
state_commit_generated --> state_output_decision : completion_detokenize_run_ [always] / generated__
state_output_decision --> state_ready : completion_detokenize_run_ [guard_before_output_delay_] / effect_publish_no_output_
state_output_decision --> state_output_validation : completion_detokenize_run_ [guard_past_output_delay_] / effect_collect_output_
state_output_validation --> state_ready : completion_detokenize_run_ [guard_output_complete_] / effect_publish_output_
state_output_validation --> state_ready : completion_detokenize_run_ [guard_output_incomplete_] / effect_publish_no_output_
state_ready --> state_ready : restore_cache [guard_restore_valid_] / effect_restore_column_major_cache_
state_ready --> state_ready : restore_cache [guard_restore_invalid_] / request_shape__
state_prepared_full --> state_prepared_full : restore_cache [always] / phase_order__
state_prepared_generated --> state_prepared_generated : restore_cache [always] / phase_order__
state_prepared_full --> state_ready : advance [guard_advance_position_available_] / effect_advance_
state_prepared_full --> state_prepared_full : advance [guard_advance_position_overflow_] / position_overflow__
state_prepared_generated --> state_prepared_generated : advance [always] / phase_order__
state_ready --> state_ready : advance [always] / phase_order__
state_ready --> state_ready : reset [always] / effect_reset_
state_prepared_full --> state_ready : reset [always] / effect_reset_
state_prepared_generated --> state_ready : reset [always] / effect_reset_
state_errored --> state_ready : reset [always] / effect_reset_
state_uninitialized --> state_uninitialized : tokenize [always] / uninitialized__
state_uninitialized --> state_uninitialized : detokenize_run [always] / uninitialized__
state_uninitialized --> state_uninitialized : restore_cache [always] / uninitialized__
state_uninitialized --> state_uninitialized : advance [always] / uninitialized__
state_uninitialized --> state_uninitialized : reset [always] / uninitialized__
state_ready --> state_ready : detokenize_run [always] / phase_order__
state_errored --> state_errored : tokenize [always] / internal_error__
state_errored --> state_errored : detokenize_run [always] / internal_error__
state_errored --> state_errored : restore_cache [always] / internal_error__
state_errored --> state_errored : advance [always] / internal_error__
state_uninitialized --> state_errored : _ [always] / effect_unexpected_
state_ready --> state_errored : _ [always] / effect_unexpected_
state_prepared_full --> state_errored : _ [always] / effect_unexpected_
state_prepared_generated --> state_errored : _ [always] / effect_unexpected_
state_errored --> state_errored : _ [always] / effect_unexpected_
Loading