├── .dockerignore ├── .eslintignore ├── .eslintrc.js ├── .github └── workflows │ └── develop.yml ├── .gitignore ├── .node-version ├── .prettierignore ├── .prettierrc.json ├── .python-version ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── assets ├── desc.txt ├── jupiter-512.png ├── jupiter.icns ├── jupiter.ico ├── jupiter.png ├── jupiter.xcf ├── palette.yaml ├── privacy.md ├── showcase-android-feature.png ├── showcase-desktop-calendar.png ├── showcase-desktop-inbox-tasks.png ├── showcase-desktop-metrics.png ├── showcase-desktop-timeplan.png ├── showcase-ipad-calendar.png ├── showcase-ipad-inbox-tasks.png ├── showcase-ipad-metrics.png ├── showcase-ipad-timeplan.png ├── showcase-iphone-calendar.png ├── showcase-iphone-inbox-tasks.png ├── showcase-iphone-metrics.png ├── showcase-iphone-timeplan.png └── terms.md ├── docs └── README.md ├── gen ├── py │ └── webapi-client │ │ ├── .gitignore │ │ ├── README.md │ │ ├── jupiter_webapi_client │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── activity │ │ │ │ ├── __init__.py │ │ │ │ ├── time_plan_activity_archive.py │ │ │ │ ├── time_plan_activity_find_for_target.py │ │ │ │ ├── time_plan_activity_load.py │ │ │ │ ├── time_plan_activity_remove.py │ │ │ │ └── time_plan_activity_update.py │ │ │ ├── application │ │ │ │ ├── __init__.py │ │ │ │ ├── close_account.py │ │ │ │ ├── init.py │ │ │ │ ├── report.py │ │ │ │ └── search.py │ │ │ ├── auth │ │ │ │ ├── __init__.py │ │ │ │ ├── change_password.py │ │ │ │ └── reset_password.py │ │ │ ├── big_plans │ │ │ │ ├── __init__.py │ │ │ │ ├── big_plan_archive.py │ │ │ │ ├── big_plan_create.py │ │ │ │ ├── big_plan_find.py │ │ │ │ ├── big_plan_load.py │ │ │ │ ├── big_plan_refresh_stats.py │ │ │ │ ├── big_plan_remove.py │ │ │ │ └── big_plan_update.py │ │ │ ├── calendar │ │ │ │ ├── __init__.py │ │ │ │ └── calendar_load_for_date_and_period.py │ │ │ ├── chores │ │ │ │ ├── __init__.py │ │ │ │ ├── chore_archive.py │ │ │ │ ├── chore_create.py │ │ │ │ ├── chore_find.py │ │ │ │ ├── chore_load.py │ │ │ │ ├── chore_regen.py │ │ │ │ ├── chore_remove.py │ │ │ │ ├── chore_suspend.py │ │ │ │ ├── chore_unsuspend.py │ │ │ │ └── chore_update.py │ │ │ ├── docs │ │ │ │ ├── __init__.py │ │ │ │ ├── doc_archive.py │ │ │ │ ├── doc_change_parent.py │ │ │ │ ├── doc_create.py │ │ │ │ ├── doc_find.py │ │ │ │ ├── doc_load.py │ │ │ │ ├── doc_remove.py │ │ │ │ └── doc_update.py │ │ │ ├── email │ │ │ │ ├── __init__.py │ │ │ │ ├── email_task_archive.py │ │ │ │ ├── email_task_change_generation_project.py │ │ │ │ ├── email_task_find.py │ │ │ │ ├── email_task_load.py │ │ │ │ ├── email_task_load_settings.py │ │ │ │ ├── email_task_remove.py │ │ │ │ └── email_task_update.py │ │ │ ├── entry │ │ │ │ ├── __init__.py │ │ │ │ ├── metric_entry_archive.py │ │ │ │ ├── metric_entry_create.py │ │ │ │ ├── metric_entry_load.py │ │ │ │ ├── metric_entry_remove.py │ │ │ │ └── metric_entry_update.py │ │ │ ├── event_full_days │ │ │ │ ├── __init__.py │ │ │ │ ├── schedule_event_full_days_archive.py │ │ │ │ ├── schedule_event_full_days_change_schedule_stream.py │ │ │ │ ├── schedule_event_full_days_create.py │ │ │ │ ├── schedule_event_full_days_load.py │ │ │ │ ├── schedule_event_full_days_remove.py │ │ │ │ └── schedule_event_full_days_update.py │ │ │ ├── event_in_day │ │ │ │ ├── __init__.py │ │ │ │ ├── schedule_event_in_day_archive.py │ │ │ │ ├── schedule_event_in_day_change_schedule_stream.py │ │ │ │ ├── schedule_event_in_day_create.py │ │ │ │ ├── schedule_event_in_day_load.py │ │ │ │ ├── schedule_event_in_day_remove.py │ │ │ │ └── schedule_event_in_day_update.py │ │ │ ├── full_days_block │ │ │ │ ├── __init__.py │ │ │ │ └── time_event_full_days_block_load.py │ │ │ ├── gc │ │ │ │ ├── __init__.py │ │ │ │ ├── gc_do.py │ │ │ │ └── gc_load_runs.py │ │ │ ├── gen │ │ │ │ ├── __init__.py │ │ │ │ ├── gen_do.py │ │ │ │ └── gen_load_runs.py │ │ │ ├── get_summaries │ │ │ │ ├── __init__.py │ │ │ │ └── get_summaries.py │ │ │ ├── habits │ │ │ │ ├── __init__.py │ │ │ │ ├── habit_archive.py │ │ │ │ ├── habit_create.py │ │ │ │ ├── habit_find.py │ │ │ │ ├── habit_load.py │ │ │ │ ├── habit_regen.py │ │ │ │ ├── habit_remove.py │ │ │ │ ├── habit_suspend.py │ │ │ │ ├── habit_unsuspend.py │ │ │ │ └── habit_update.py │ │ │ ├── home │ │ │ │ ├── __init__.py │ │ │ │ ├── home_config_load.py │ │ │ │ └── reorder_tabs.py │ │ │ ├── in_day_block │ │ │ │ ├── __init__.py │ │ │ │ ├── time_event_in_day_block_archive.py │ │ │ │ ├── time_event_in_day_block_create_for_inbox_task.py │ │ │ │ ├── time_event_in_day_block_load.py │ │ │ │ ├── time_event_in_day_block_remove.py │ │ │ │ └── time_event_in_day_block_update.py │ │ │ ├── inbox_tasks │ │ │ │ ├── __init__.py │ │ │ │ ├── inbox_task_archive.py │ │ │ │ ├── inbox_task_create.py │ │ │ │ ├── inbox_task_find.py │ │ │ │ ├── inbox_task_load.py │ │ │ │ ├── inbox_task_remove.py │ │ │ │ └── inbox_task_update.py │ │ │ ├── item │ │ │ │ ├── __init__.py │ │ │ │ ├── smart_list_item_archive.py │ │ │ │ ├── smart_list_item_create.py │ │ │ │ ├── smart_list_item_load.py │ │ │ │ ├── smart_list_item_remove.py │ │ │ │ └── smart_list_item_update.py │ │ │ ├── journals │ │ │ │ ├── __init__.py │ │ │ │ ├── journal_archive.py │ │ │ │ ├── journal_change_time_config.py │ │ │ │ ├── journal_create.py │ │ │ │ ├── journal_find.py │ │ │ │ ├── journal_load.py │ │ │ │ ├── journal_load_for_date_and_period.py │ │ │ │ ├── journal_load_settings.py │ │ │ │ ├── journal_refresh_stats.py │ │ │ │ ├── journal_regen.py │ │ │ │ ├── journal_remove.py │ │ │ │ └── journal_update_settings.py │ │ │ ├── load_progress_reporter_token │ │ │ │ ├── __init__.py │ │ │ │ └── load_progress_reporter_token.py │ │ │ ├── load_top_level_info │ │ │ │ ├── __init__.py │ │ │ │ └── load_top_level_info.py │ │ │ ├── login │ │ │ │ ├── __init__.py │ │ │ │ └── login.py │ │ │ ├── metrics │ │ │ │ ├── __init__.py │ │ │ │ ├── metric_archive.py │ │ │ │ ├── metric_change_collection_project.py │ │ │ │ ├── metric_create.py │ │ │ │ ├── metric_find.py │ │ │ │ ├── metric_load.py │ │ │ │ ├── metric_load_settings.py │ │ │ │ ├── metric_regen.py │ │ │ │ ├── metric_remove.py │ │ │ │ └── metric_update.py │ │ │ ├── motd │ │ │ │ ├── __init__.py │ │ │ │ └── motd_get_for_today.py │ │ │ ├── notes │ │ │ │ ├── __init__.py │ │ │ │ ├── note_archive.py │ │ │ │ ├── note_create.py │ │ │ │ ├── note_remove.py │ │ │ │ └── note_update.py │ │ │ ├── persons │ │ │ │ ├── __init__.py │ │ │ │ ├── person_archive.py │ │ │ │ ├── person_change_catch_up_project.py │ │ │ │ ├── person_create.py │ │ │ │ ├── person_find.py │ │ │ │ ├── person_load.py │ │ │ │ ├── person_load_settings.py │ │ │ │ ├── person_regen.py │ │ │ │ ├── person_remove.py │ │ │ │ └── person_update.py │ │ │ ├── projects │ │ │ │ ├── __init__.py │ │ │ │ ├── project_archive.py │ │ │ │ ├── project_change_parent.py │ │ │ │ ├── project_create.py │ │ │ │ ├── project_find.py │ │ │ │ ├── project_load.py │ │ │ │ ├── project_remove.py │ │ │ │ ├── project_reorder_children.py │ │ │ │ └── project_update.py │ │ │ ├── schedule │ │ │ │ ├── __init__.py │ │ │ │ ├── schedule_external_sync_do.py │ │ │ │ └── schedule_external_sync_load_runs.py │ │ │ ├── slack │ │ │ │ ├── __init__.py │ │ │ │ ├── slack_task_archive.py │ │ │ │ ├── slack_task_change_generation_project.py │ │ │ │ ├── slack_task_find.py │ │ │ │ ├── slack_task_load.py │ │ │ │ ├── slack_task_load_settings.py │ │ │ │ ├── slack_task_remove.py │ │ │ │ └── slack_task_update.py │ │ │ ├── smart_lists │ │ │ │ ├── __init__.py │ │ │ │ ├── smart_list_archive.py │ │ │ │ ├── smart_list_create.py │ │ │ │ ├── smart_list_find.py │ │ │ │ ├── smart_list_load.py │ │ │ │ ├── smart_list_remove.py │ │ │ │ └── smart_list_update.py │ │ │ ├── stats │ │ │ │ ├── __init__.py │ │ │ │ ├── stats_do.py │ │ │ │ └── stats_load_runs.py │ │ │ ├── stream │ │ │ │ ├── __init__.py │ │ │ │ ├── schedule_stream_archive.py │ │ │ │ ├── schedule_stream_create_for_external_ical.py │ │ │ │ ├── schedule_stream_create_for_user.py │ │ │ │ ├── schedule_stream_find.py │ │ │ │ ├── schedule_stream_load.py │ │ │ │ ├── schedule_stream_remove.py │ │ │ │ └── schedule_stream_update.py │ │ │ ├── tab │ │ │ │ ├── __init__.py │ │ │ │ ├── home_tab_archive.py │ │ │ │ ├── home_tab_create.py │ │ │ │ ├── home_tab_load.py │ │ │ │ ├── home_tab_remove.py │ │ │ │ └── home_tab_update.py │ │ │ ├── tag │ │ │ │ ├── __init__.py │ │ │ │ ├── smart_list_tag_archive.py │ │ │ │ ├── smart_list_tag_create.py │ │ │ │ ├── smart_list_tag_load.py │ │ │ │ ├── smart_list_tag_remove.py │ │ │ │ └── smart_list_tag_update.py │ │ │ ├── test_helper │ │ │ │ ├── __init__.py │ │ │ │ ├── clear_all.py │ │ │ │ ├── remove_all.py │ │ │ │ └── workspace_set_feature.py │ │ │ ├── time_plans │ │ │ │ ├── __init__.py │ │ │ │ ├── time_plan_archive.py │ │ │ │ ├── time_plan_associate_with_activities.py │ │ │ │ ├── time_plan_associate_with_big_plans.py │ │ │ │ ├── time_plan_associate_with_inbox_tasks.py │ │ │ │ ├── time_plan_change_time_config.py │ │ │ │ ├── time_plan_create.py │ │ │ │ ├── time_plan_find.py │ │ │ │ ├── time_plan_gen_for_time_plan.py │ │ │ │ ├── time_plan_load.py │ │ │ │ ├── time_plan_load_for_time_date_and_period.py │ │ │ │ ├── time_plan_load_settings.py │ │ │ │ ├── time_plan_regen.py │ │ │ │ ├── time_plan_remove.py │ │ │ │ └── time_plan_update_settings.py │ │ │ ├── users │ │ │ │ ├── __init__.py │ │ │ │ ├── user_change_feature_flags.py │ │ │ │ ├── user_load.py │ │ │ │ └── user_update.py │ │ │ ├── vacations │ │ │ │ ├── __init__.py │ │ │ │ ├── vacation_archive.py │ │ │ │ ├── vacation_create.py │ │ │ │ ├── vacation_find.py │ │ │ │ ├── vacation_load.py │ │ │ │ ├── vacation_remove.py │ │ │ │ └── vacation_update.py │ │ │ ├── widget │ │ │ │ ├── __init__.py │ │ │ │ ├── home_widget_archive.py │ │ │ │ ├── home_widget_create.py │ │ │ │ ├── home_widget_load.py │ │ │ │ ├── home_widget_move_and_resize.py │ │ │ │ └── home_widget_remove.py │ │ │ ├── working_mem │ │ │ │ ├── __init__.py │ │ │ │ ├── working_mem_archive.py │ │ │ │ ├── working_mem_change_clean_up_project.py │ │ │ │ ├── working_mem_change_generation_period.py │ │ │ │ ├── working_mem_find.py │ │ │ │ ├── working_mem_load.py │ │ │ │ ├── working_mem_load_current.py │ │ │ │ └── working_mem_load_settings.py │ │ │ └── workspaces │ │ │ │ ├── __init__.py │ │ │ │ ├── workspace_change_feature_flags.py │ │ │ │ ├── workspace_load.py │ │ │ │ └── workspace_update.py │ │ ├── client.py │ │ ├── errors.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── app_core.py │ │ │ ├── app_distribution.py │ │ │ ├── app_distribution_state.py │ │ │ ├── app_platform.py │ │ │ ├── app_shell.py │ │ │ ├── archival_reason.py │ │ │ ├── big_plan.py │ │ │ ├── big_plan_archive_args.py │ │ │ ├── big_plan_archive_service_result.py │ │ │ ├── big_plan_collection.py │ │ │ ├── big_plan_create_args.py │ │ │ ├── big_plan_create_result.py │ │ │ ├── big_plan_find_args.py │ │ │ ├── big_plan_find_result.py │ │ │ ├── big_plan_find_result_entry.py │ │ │ ├── big_plan_load_args.py │ │ │ ├── big_plan_load_result.py │ │ │ ├── big_plan_refresh_stats_args.py │ │ │ ├── big_plan_remove_args.py │ │ │ ├── big_plan_stats.py │ │ │ ├── big_plan_status.py │ │ │ ├── big_plan_summary.py │ │ │ ├── big_plan_update_args.py │ │ │ ├── big_plan_update_args_actionable_date.py │ │ │ ├── big_plan_update_args_difficulty.py │ │ │ ├── big_plan_update_args_due_date.py │ │ │ ├── big_plan_update_args_eisen.py │ │ │ ├── big_plan_update_args_is_key.py │ │ │ ├── big_plan_update_args_name.py │ │ │ ├── big_plan_update_args_project_ref_id.py │ │ │ ├── big_plan_update_args_status.py │ │ │ ├── big_plan_update_result.py │ │ │ ├── big_plan_work_summary.py │ │ │ ├── big_screen_home_tab_widget_placement.py │ │ │ ├── big_screen_home_tab_widget_placement_kind.py │ │ │ ├── bulleted_list_block.py │ │ │ ├── bulleted_list_block_kind.py │ │ │ ├── calendar_events_entries.py │ │ │ ├── calendar_events_stats.py │ │ │ ├── calendar_events_stats_per_subperiod.py │ │ │ ├── calendar_load_for_date_and_period_args.py │ │ │ ├── calendar_load_for_date_and_period_result.py │ │ │ ├── change_password_args.py │ │ │ ├── checklist_block.py │ │ │ ├── checklist_block_kind.py │ │ │ ├── checklist_item.py │ │ │ ├── chore.py │ │ │ ├── chore_archive_args.py │ │ │ ├── chore_collection.py │ │ │ ├── chore_create_args.py │ │ │ ├── chore_create_result.py │ │ │ ├── chore_find_args.py │ │ │ ├── chore_find_result.py │ │ │ ├── chore_find_result_entry.py │ │ │ ├── chore_load_args.py │ │ │ ├── chore_load_result.py │ │ │ ├── chore_regen_args.py │ │ │ ├── chore_remove_args.py │ │ │ ├── chore_summary.py │ │ │ ├── chore_suspend_args.py │ │ │ ├── chore_unsuspend_args.py │ │ │ ├── chore_update_args.py │ │ │ ├── chore_update_args_actionable_from_day.py │ │ │ ├── chore_update_args_actionable_from_month.py │ │ │ ├── chore_update_args_difficulty.py │ │ │ ├── chore_update_args_due_at_day.py │ │ │ ├── chore_update_args_due_at_month.py │ │ │ ├── chore_update_args_eisen.py │ │ │ ├── chore_update_args_end_at_date.py │ │ │ ├── chore_update_args_is_key.py │ │ │ ├── chore_update_args_must_do.py │ │ │ ├── chore_update_args_name.py │ │ │ ├── chore_update_args_period.py │ │ │ ├── chore_update_args_project_ref_id.py │ │ │ ├── chore_update_args_skip_rule.py │ │ │ ├── chore_update_args_start_at_date.py │ │ │ ├── clear_all_args.py │ │ │ ├── close_account_args.py │ │ │ ├── code_block.py │ │ │ ├── code_block_kind.py │ │ │ ├── difficulty.py │ │ │ ├── divider_block.py │ │ │ ├── divider_block_kind.py │ │ │ ├── doc.py │ │ │ ├── doc_archive_args.py │ │ │ ├── doc_change_parent_args.py │ │ │ ├── doc_collection.py │ │ │ ├── doc_create_args.py │ │ │ ├── doc_create_result.py │ │ │ ├── doc_find_args.py │ │ │ ├── doc_find_result.py │ │ │ ├── doc_find_result_entry.py │ │ │ ├── doc_load_args.py │ │ │ ├── doc_load_result.py │ │ │ ├── doc_remove_args.py │ │ │ ├── doc_update_args.py │ │ │ ├── doc_update_args_name.py │ │ │ ├── eisen.py │ │ │ ├── email_task.py │ │ │ ├── email_task_archive_args.py │ │ │ ├── email_task_archive_service_result.py │ │ │ ├── email_task_change_generation_project_args.py │ │ │ ├── email_task_collection.py │ │ │ ├── email_task_find_args.py │ │ │ ├── email_task_find_result.py │ │ │ ├── email_task_find_result_entry.py │ │ │ ├── email_task_load_args.py │ │ │ ├── email_task_load_result.py │ │ │ ├── email_task_load_settings_args.py │ │ │ ├── email_task_load_settings_result.py │ │ │ ├── email_task_remove_args.py │ │ │ ├── email_task_update_args.py │ │ │ ├── email_task_update_args_body.py │ │ │ ├── email_task_update_args_from_address.py │ │ │ ├── email_task_update_args_from_name.py │ │ │ ├── email_task_update_args_generation_actionable_date.py │ │ │ ├── email_task_update_args_generation_difficulty.py │ │ │ ├── email_task_update_args_generation_due_date.py │ │ │ ├── email_task_update_args_generation_eisen.py │ │ │ ├── email_task_update_args_generation_name.py │ │ │ ├── email_task_update_args_generation_status.py │ │ │ ├── email_task_update_args_subject.py │ │ │ ├── email_task_update_args_to_address.py │ │ │ ├── entity_reference_block.py │ │ │ ├── entity_reference_block_kind.py │ │ │ ├── entity_summary.py │ │ │ ├── env.py │ │ │ ├── event_source.py │ │ │ ├── feature_control.py │ │ │ ├── gc_do_all_args.py │ │ │ ├── gc_do_args.py │ │ │ ├── gc_load_runs_args.py │ │ │ ├── gc_load_runs_result.py │ │ │ ├── gc_log.py │ │ │ ├── gc_log_entry.py │ │ │ ├── gen_do_all_args.py │ │ │ ├── gen_do_args.py │ │ │ ├── gen_load_runs_args.py │ │ │ ├── gen_load_runs_result.py │ │ │ ├── gen_log.py │ │ │ ├── gen_log_entry.py │ │ │ ├── get_summaries_args.py │ │ │ ├── get_summaries_result.py │ │ │ ├── habit.py │ │ │ ├── habit_archive_args.py │ │ │ ├── habit_collection.py │ │ │ ├── habit_create_args.py │ │ │ ├── habit_create_result.py │ │ │ ├── habit_find_args.py │ │ │ ├── habit_find_result.py │ │ │ ├── habit_find_result_entry.py │ │ │ ├── habit_load_args.py │ │ │ ├── habit_load_result.py │ │ │ ├── habit_regen_args.py │ │ │ ├── habit_remove_args.py │ │ │ ├── habit_repeats_strategy.py │ │ │ ├── habit_streak_mark.py │ │ │ ├── habit_streak_mark_statuses.py │ │ │ ├── habit_summary.py │ │ │ ├── habit_suspend_args.py │ │ │ ├── habit_unsuspend_args.py │ │ │ ├── habit_update_args.py │ │ │ ├── habit_update_args_actionable_from_day.py │ │ │ ├── habit_update_args_actionable_from_month.py │ │ │ ├── habit_update_args_difficulty.py │ │ │ ├── habit_update_args_due_at_day.py │ │ │ ├── habit_update_args_due_at_month.py │ │ │ ├── habit_update_args_eisen.py │ │ │ ├── habit_update_args_is_key.py │ │ │ ├── habit_update_args_name.py │ │ │ ├── habit_update_args_period.py │ │ │ ├── habit_update_args_project_ref_id.py │ │ │ ├── habit_update_args_repeats_in_period_count.py │ │ │ ├── habit_update_args_repeats_strategy.py │ │ │ ├── habit_update_args_skip_rule.py │ │ │ ├── heading_block.py │ │ │ ├── heading_block_kind.py │ │ │ ├── home_config.py │ │ │ ├── home_config_load_args.py │ │ │ ├── home_config_load_result.py │ │ │ ├── home_config_load_result_widget_constraints.py │ │ │ ├── home_config_order_of_tabs.py │ │ │ ├── home_tab.py │ │ │ ├── home_tab_archive_args.py │ │ │ ├── home_tab_create_args.py │ │ │ ├── home_tab_create_result.py │ │ │ ├── home_tab_load_args.py │ │ │ ├── home_tab_load_result.py │ │ │ ├── home_tab_remove_args.py │ │ │ ├── home_tab_target.py │ │ │ ├── home_tab_update_args.py │ │ │ ├── home_tab_update_args_icon.py │ │ │ ├── home_tab_update_args_name.py │ │ │ ├── home_tab_widget_placement.py │ │ │ ├── home_tab_widget_placement_section.py │ │ │ ├── home_widget.py │ │ │ ├── home_widget_archive_args.py │ │ │ ├── home_widget_create_args.py │ │ │ ├── home_widget_create_result.py │ │ │ ├── home_widget_load_args.py │ │ │ ├── home_widget_load_result.py │ │ │ ├── home_widget_move_and_resize_args.py │ │ │ ├── home_widget_remove_args.py │ │ │ ├── hosting.py │ │ │ ├── inbox_task.py │ │ │ ├── inbox_task_archive_args.py │ │ │ ├── inbox_task_collection.py │ │ │ ├── inbox_task_create_args.py │ │ │ ├── inbox_task_create_result.py │ │ │ ├── inbox_task_entry.py │ │ │ ├── inbox_task_find_args.py │ │ │ ├── inbox_task_find_result.py │ │ │ ├── inbox_task_find_result_entry.py │ │ │ ├── inbox_task_load_args.py │ │ │ ├── inbox_task_load_result.py │ │ │ ├── inbox_task_remove_args.py │ │ │ ├── inbox_task_source.py │ │ │ ├── inbox_task_status.py │ │ │ ├── inbox_task_summary.py │ │ │ ├── inbox_task_update_args.py │ │ │ ├── inbox_task_update_args_actionable_date.py │ │ │ ├── inbox_task_update_args_big_plan_ref_id.py │ │ │ ├── inbox_task_update_args_difficulty.py │ │ │ ├── inbox_task_update_args_due_date.py │ │ │ ├── inbox_task_update_args_eisen.py │ │ │ ├── inbox_task_update_args_is_key.py │ │ │ ├── inbox_task_update_args_name.py │ │ │ ├── inbox_task_update_args_project_ref_id.py │ │ │ ├── inbox_task_update_args_status.py │ │ │ ├── inbox_task_update_result.py │ │ │ ├── inbox_tasks_summary.py │ │ │ ├── init_args.py │ │ │ ├── init_result.py │ │ │ ├── journal.py │ │ │ ├── journal_archive_args.py │ │ │ ├── journal_change_time_config_args.py │ │ │ ├── journal_change_time_config_args_period.py │ │ │ ├── journal_change_time_config_args_right_now.py │ │ │ ├── journal_collection.py │ │ │ ├── journal_collection_generation_in_advance_days.py │ │ │ ├── journal_create_args.py │ │ │ ├── journal_create_result.py │ │ │ ├── journal_find_args.py │ │ │ ├── journal_find_result.py │ │ │ ├── journal_find_result_entry.py │ │ │ ├── journal_generation_approach.py │ │ │ ├── journal_load_args.py │ │ │ ├── journal_load_for_date_and_period_args.py │ │ │ ├── journal_load_for_date_and_period_result.py │ │ │ ├── journal_load_result.py │ │ │ ├── journal_load_settings_args.py │ │ │ ├── journal_load_settings_result.py │ │ │ ├── journal_load_settings_result_generation_in_advance_days.py │ │ │ ├── journal_refresh_stats_args.py │ │ │ ├── journal_regen_args.py │ │ │ ├── journal_remove_args.py │ │ │ ├── journal_source.py │ │ │ ├── journal_stats.py │ │ │ ├── journal_summary.py │ │ │ ├── journal_update_settings_args.py │ │ │ ├── journal_update_settings_args_generation_approach.py │ │ │ ├── journal_update_settings_args_generation_in_advance_days.py │ │ │ ├── journal_update_settings_args_generation_in_advance_days_value.py │ │ │ ├── journal_update_settings_args_periods.py │ │ │ ├── journal_update_settings_args_writing_task_difficulty.py │ │ │ ├── journal_update_settings_args_writing_task_eisen.py │ │ │ ├── journal_update_settings_args_writing_task_project_ref_id.py │ │ │ ├── link_block.py │ │ │ ├── link_block_kind.py │ │ │ ├── list_item.py │ │ │ ├── load_progress_reporter_token_args.py │ │ │ ├── load_progress_reporter_token_result.py │ │ │ ├── load_top_level_info_args.py │ │ │ ├── load_top_level_info_result.py │ │ │ ├── load_top_level_info_result_default_user_feature_flags.py │ │ │ ├── load_top_level_info_result_default_workspace_feature_flags.py │ │ │ ├── login_args.py │ │ │ ├── login_result.py │ │ │ ├── metric.py │ │ │ ├── metric_archive_args.py │ │ │ ├── metric_change_collection_project_args.py │ │ │ ├── metric_collection.py │ │ │ ├── metric_create_args.py │ │ │ ├── metric_create_result.py │ │ │ ├── metric_entry.py │ │ │ ├── metric_entry_archive_args.py │ │ │ ├── metric_entry_create_args.py │ │ │ ├── metric_entry_create_result.py │ │ │ ├── metric_entry_load_args.py │ │ │ ├── metric_entry_load_result.py │ │ │ ├── metric_entry_remove_args.py │ │ │ ├── metric_entry_update_args.py │ │ │ ├── metric_entry_update_args_collection_time.py │ │ │ ├── metric_entry_update_args_value.py │ │ │ ├── metric_find_args.py │ │ │ ├── metric_find_response_entry.py │ │ │ ├── metric_find_result.py │ │ │ ├── metric_load_args.py │ │ │ ├── metric_load_result.py │ │ │ ├── metric_load_settings_args.py │ │ │ ├── metric_load_settings_result.py │ │ │ ├── metric_regen_args.py │ │ │ ├── metric_remove_args.py │ │ │ ├── metric_summary.py │ │ │ ├── metric_unit.py │ │ │ ├── metric_update_args.py │ │ │ ├── metric_update_args_collection_actionable_from_day.py │ │ │ ├── metric_update_args_collection_actionable_from_month.py │ │ │ ├── metric_update_args_collection_difficulty.py │ │ │ ├── metric_update_args_collection_due_at_day.py │ │ │ ├── metric_update_args_collection_due_at_month.py │ │ │ ├── metric_update_args_collection_eisen.py │ │ │ ├── metric_update_args_collection_period.py │ │ │ ├── metric_update_args_icon.py │ │ │ ├── metric_update_args_is_key.py │ │ │ ├── metric_update_args_name.py │ │ │ ├── motd.py │ │ │ ├── motd_get_for_today_args.py │ │ │ ├── motd_get_for_today_result.py │ │ │ ├── named_entity_tag.py │ │ │ ├── nested_result.py │ │ │ ├── nested_result_per_source.py │ │ │ ├── note.py │ │ │ ├── note_archive_args.py │ │ │ ├── note_collection.py │ │ │ ├── note_content_block.py │ │ │ ├── note_create_args.py │ │ │ ├── note_create_result.py │ │ │ ├── note_domain.py │ │ │ ├── note_remove_args.py │ │ │ ├── note_update_args.py │ │ │ ├── note_update_args_content.py │ │ │ ├── numbered_list_block.py │ │ │ ├── numbered_list_block_kind.py │ │ │ ├── paragraph_block.py │ │ │ ├── paragraph_block_kind.py │ │ │ ├── per_big_plan_breakdown_item.py │ │ │ ├── per_chore_breakdown_item.py │ │ │ ├── per_habit_breakdown_item.py │ │ │ ├── per_period_breakdown_item.py │ │ │ ├── per_project_breakdown_item.py │ │ │ ├── person.py │ │ │ ├── person_archive_args.py │ │ │ ├── person_change_catch_up_project_args.py │ │ │ ├── person_collection.py │ │ │ ├── person_create_args.py │ │ │ ├── person_create_result.py │ │ │ ├── person_entry.py │ │ │ ├── person_find_args.py │ │ │ ├── person_find_result.py │ │ │ ├── person_find_result_entry.py │ │ │ ├── person_load_args.py │ │ │ ├── person_load_result.py │ │ │ ├── person_load_settings_args.py │ │ │ ├── person_load_settings_result.py │ │ │ ├── person_regen_args.py │ │ │ ├── person_relationship.py │ │ │ ├── person_remove_args.py │ │ │ ├── person_summary.py │ │ │ ├── person_update_args.py │ │ │ ├── person_update_args_birthday.py │ │ │ ├── person_update_args_catch_up_actionable_from_day.py │ │ │ ├── person_update_args_catch_up_actionable_from_month.py │ │ │ ├── person_update_args_catch_up_difficulty.py │ │ │ ├── person_update_args_catch_up_due_at_day.py │ │ │ ├── person_update_args_catch_up_due_at_month.py │ │ │ ├── person_update_args_catch_up_eisen.py │ │ │ ├── person_update_args_catch_up_period.py │ │ │ ├── person_update_args_name.py │ │ │ ├── person_update_args_relationship.py │ │ │ ├── project.py │ │ │ ├── project_archive_args.py │ │ │ ├── project_change_parent_args.py │ │ │ ├── project_collection.py │ │ │ ├── project_create_args.py │ │ │ ├── project_create_result.py │ │ │ ├── project_find_args.py │ │ │ ├── project_find_result.py │ │ │ ├── project_find_result_entry.py │ │ │ ├── project_load_args.py │ │ │ ├── project_load_result.py │ │ │ ├── project_remove_args.py │ │ │ ├── project_reorder_children_args.py │ │ │ ├── project_summary.py │ │ │ ├── project_update_args.py │ │ │ ├── project_update_args_name.py │ │ │ ├── push_generation_extra_info.py │ │ │ ├── push_integration_group.py │ │ │ ├── quote_block.py │ │ │ ├── quote_block_kind.py │ │ │ ├── record_score_result.py │ │ │ ├── recurring_task_gen_params.py │ │ │ ├── recurring_task_period.py │ │ │ ├── recurring_task_work_summary.py │ │ │ ├── remove_all_args.py │ │ │ ├── reorder_tabs_args.py │ │ │ ├── report_args.py │ │ │ ├── report_breakdown.py │ │ │ ├── report_period_result.py │ │ │ ├── report_result.py │ │ │ ├── reset_password_args.py │ │ │ ├── reset_password_result.py │ │ │ ├── schedule_domain.py │ │ │ ├── schedule_event_full_days.py │ │ │ ├── schedule_event_full_days_archive_args.py │ │ │ ├── schedule_event_full_days_change_schedule_stream_args.py │ │ │ ├── schedule_event_full_days_create_args.py │ │ │ ├── schedule_event_full_days_create_result.py │ │ │ ├── schedule_event_full_days_load_args.py │ │ │ ├── schedule_event_full_days_load_result.py │ │ │ ├── schedule_event_full_days_remove_args.py │ │ │ ├── schedule_event_full_days_update_args.py │ │ │ ├── schedule_event_full_days_update_args_duration_days.py │ │ │ ├── schedule_event_full_days_update_args_name.py │ │ │ ├── schedule_event_full_days_update_args_start_date.py │ │ │ ├── schedule_event_in_day.py │ │ │ ├── schedule_event_in_day_archive_args.py │ │ │ ├── schedule_event_in_day_change_schedule_stream_args.py │ │ │ ├── schedule_event_in_day_create_args.py │ │ │ ├── schedule_event_in_day_create_result.py │ │ │ ├── schedule_event_in_day_load_args.py │ │ │ ├── schedule_event_in_day_load_result.py │ │ │ ├── schedule_event_in_day_remove_args.py │ │ │ ├── schedule_event_in_day_update_args.py │ │ │ ├── schedule_event_in_day_update_args_duration_mins.py │ │ │ ├── schedule_event_in_day_update_args_name.py │ │ │ ├── schedule_event_in_day_update_args_start_date.py │ │ │ ├── schedule_event_in_day_update_args_start_time_in_day.py │ │ │ ├── schedule_external_sync_do_all_args.py │ │ │ ├── schedule_external_sync_do_args.py │ │ │ ├── schedule_external_sync_load_runs_args.py │ │ │ ├── schedule_external_sync_load_runs_result.py │ │ │ ├── schedule_external_sync_log.py │ │ │ ├── schedule_external_sync_log_entry.py │ │ │ ├── schedule_external_sync_log_per_stream_result.py │ │ │ ├── schedule_full_days_event_entry.py │ │ │ ├── schedule_in_day_event_entry.py │ │ │ ├── schedule_source.py │ │ │ ├── schedule_stream.py │ │ │ ├── schedule_stream_archive_args.py │ │ │ ├── schedule_stream_color.py │ │ │ ├── schedule_stream_create_for_external_ical_args.py │ │ │ ├── schedule_stream_create_for_external_ical_result.py │ │ │ ├── schedule_stream_create_for_user_args.py │ │ │ ├── schedule_stream_create_for_user_result.py │ │ │ ├── schedule_stream_find_args.py │ │ │ ├── schedule_stream_find_result.py │ │ │ ├── schedule_stream_find_result_entry.py │ │ │ ├── schedule_stream_load_args.py │ │ │ ├── schedule_stream_load_result.py │ │ │ ├── schedule_stream_remove_args.py │ │ │ ├── schedule_stream_summary.py │ │ │ ├── schedule_stream_update_args.py │ │ │ ├── schedule_stream_update_args_color.py │ │ │ ├── schedule_stream_update_args_name.py │ │ │ ├── score_log.py │ │ │ ├── score_log_entry.py │ │ │ ├── score_period_best.py │ │ │ ├── score_source.py │ │ │ ├── score_stats.py │ │ │ ├── search_args.py │ │ │ ├── search_match.py │ │ │ ├── search_result.py │ │ │ ├── slack_task.py │ │ │ ├── slack_task_archive_args.py │ │ │ ├── slack_task_archive_service_result.py │ │ │ ├── slack_task_change_generation_project_args.py │ │ │ ├── slack_task_collection.py │ │ │ ├── slack_task_find_args.py │ │ │ ├── slack_task_find_result.py │ │ │ ├── slack_task_find_result_entry.py │ │ │ ├── slack_task_load_args.py │ │ │ ├── slack_task_load_result.py │ │ │ ├── slack_task_load_settings_args.py │ │ │ ├── slack_task_load_settings_result.py │ │ │ ├── slack_task_remove_args.py │ │ │ ├── slack_task_update_args.py │ │ │ ├── slack_task_update_args_channel.py │ │ │ ├── slack_task_update_args_generation_actionable_date.py │ │ │ ├── slack_task_update_args_generation_difficulty.py │ │ │ ├── slack_task_update_args_generation_due_date.py │ │ │ ├── slack_task_update_args_generation_eisen.py │ │ │ ├── slack_task_update_args_generation_name.py │ │ │ ├── slack_task_update_args_generation_status.py │ │ │ ├── slack_task_update_args_message.py │ │ │ ├── slack_task_update_args_user.py │ │ │ ├── small_screen_home_tab_widget_placement.py │ │ │ ├── small_screen_home_tab_widget_placement_kind.py │ │ │ ├── smart_list.py │ │ │ ├── smart_list_archive_args.py │ │ │ ├── smart_list_collection.py │ │ │ ├── smart_list_create_args.py │ │ │ ├── smart_list_create_result.py │ │ │ ├── smart_list_find_args.py │ │ │ ├── smart_list_find_response_entry.py │ │ │ ├── smart_list_find_result.py │ │ │ ├── smart_list_item.py │ │ │ ├── smart_list_item_archive_args.py │ │ │ ├── smart_list_item_create_args.py │ │ │ ├── smart_list_item_create_result.py │ │ │ ├── smart_list_item_load_args.py │ │ │ ├── smart_list_item_load_result.py │ │ │ ├── smart_list_item_remove_args.py │ │ │ ├── smart_list_item_update_args.py │ │ │ ├── smart_list_item_update_args_is_done.py │ │ │ ├── smart_list_item_update_args_name.py │ │ │ ├── smart_list_item_update_args_tags.py │ │ │ ├── smart_list_item_update_args_url.py │ │ │ ├── smart_list_load_args.py │ │ │ ├── smart_list_load_result.py │ │ │ ├── smart_list_remove_args.py │ │ │ ├── smart_list_summary.py │ │ │ ├── smart_list_tag.py │ │ │ ├── smart_list_tag_archive_args.py │ │ │ ├── smart_list_tag_create_args.py │ │ │ ├── smart_list_tag_create_result.py │ │ │ ├── smart_list_tag_load_args.py │ │ │ ├── smart_list_tag_load_result.py │ │ │ ├── smart_list_tag_remove_args.py │ │ │ ├── smart_list_tag_update_args.py │ │ │ ├── smart_list_tag_update_args_tag_name.py │ │ │ ├── smart_list_update_args.py │ │ │ ├── smart_list_update_args_icon.py │ │ │ ├── smart_list_update_args_name.py │ │ │ ├── stats_do_all_args.py │ │ │ ├── stats_do_args.py │ │ │ ├── stats_load_runs_args.py │ │ │ ├── stats_load_runs_result.py │ │ │ ├── stats_log.py │ │ │ ├── stats_log_entry.py │ │ │ ├── sync_target.py │ │ │ ├── table_block.py │ │ │ ├── table_block_kind.py │ │ │ ├── time_event_domain.py │ │ │ ├── time_event_full_days_block.py │ │ │ ├── time_event_full_days_block_load_args.py │ │ │ ├── time_event_full_days_block_load_result.py │ │ │ ├── time_event_full_days_block_stats.py │ │ │ ├── time_event_full_days_block_stats_per_group.py │ │ │ ├── time_event_in_day_block.py │ │ │ ├── time_event_in_day_block_archive_args.py │ │ │ ├── time_event_in_day_block_create_for_inbox_task_args.py │ │ │ ├── time_event_in_day_block_create_for_inbox_task_result.py │ │ │ ├── time_event_in_day_block_load_args.py │ │ │ ├── time_event_in_day_block_load_result.py │ │ │ ├── time_event_in_day_block_remove_args.py │ │ │ ├── time_event_in_day_block_stats.py │ │ │ ├── time_event_in_day_block_stats_per_group.py │ │ │ ├── time_event_in_day_block_update_args.py │ │ │ ├── time_event_in_day_block_update_args_duration_mins.py │ │ │ ├── time_event_in_day_block_update_args_start_date.py │ │ │ ├── time_event_in_day_block_update_args_start_time_in_day.py │ │ │ ├── time_event_namespace.py │ │ │ ├── time_plan.py │ │ │ ├── time_plan_activity.py │ │ │ ├── time_plan_activity_archive_args.py │ │ │ ├── time_plan_activity_doneness.py │ │ │ ├── time_plan_activity_feasability.py │ │ │ ├── time_plan_activity_find_for_target_args.py │ │ │ ├── time_plan_activity_find_for_target_result.py │ │ │ ├── time_plan_activity_find_for_target_result_entry.py │ │ │ ├── time_plan_activity_kind.py │ │ │ ├── time_plan_activity_load_args.py │ │ │ ├── time_plan_activity_load_result.py │ │ │ ├── time_plan_activity_remove_args.py │ │ │ ├── time_plan_activity_target.py │ │ │ ├── time_plan_activity_update_args.py │ │ │ ├── time_plan_activity_update_args_feasability.py │ │ │ ├── time_plan_activity_update_args_kind.py │ │ │ ├── time_plan_archive_args.py │ │ │ ├── time_plan_associate_with_activities_args.py │ │ │ ├── time_plan_associate_with_activities_result.py │ │ │ ├── time_plan_associate_with_big_plans_args.py │ │ │ ├── time_plan_associate_with_big_plans_result.py │ │ │ ├── time_plan_associate_with_inbox_tasks_args.py │ │ │ ├── time_plan_associate_with_inbox_tasks_result.py │ │ │ ├── time_plan_change_time_config_args.py │ │ │ ├── time_plan_change_time_config_args_period.py │ │ │ ├── time_plan_change_time_config_args_right_now.py │ │ │ ├── time_plan_create_args.py │ │ │ ├── time_plan_create_result.py │ │ │ ├── time_plan_domain.py │ │ │ ├── time_plan_domain_generation_in_advance_days.py │ │ │ ├── time_plan_find_args.py │ │ │ ├── time_plan_find_result.py │ │ │ ├── time_plan_find_result_entry.py │ │ │ ├── time_plan_gen_for_time_plan_args.py │ │ │ ├── time_plan_generation_approach.py │ │ │ ├── time_plan_load_args.py │ │ │ ├── time_plan_load_for_date_and_period_args.py │ │ │ ├── time_plan_load_for_date_and_period_result.py │ │ │ ├── time_plan_load_result.py │ │ │ ├── time_plan_load_result_activity_doneness_type_0.py │ │ │ ├── time_plan_load_settings_args.py │ │ │ ├── time_plan_load_settings_result.py │ │ │ ├── time_plan_load_settings_result_generation_in_advance_days.py │ │ │ ├── time_plan_regen_args.py │ │ │ ├── time_plan_remove_args.py │ │ │ ├── time_plan_source.py │ │ │ ├── time_plan_update_settings_args.py │ │ │ ├── time_plan_update_settings_args_generation_approach.py │ │ │ ├── time_plan_update_settings_args_generation_in_advance_days.py │ │ │ ├── time_plan_update_settings_args_generation_in_advance_days_value.py │ │ │ ├── time_plan_update_settings_args_periods.py │ │ │ ├── time_plan_update_settings_args_planning_task_difficulty.py │ │ │ ├── time_plan_update_settings_args_planning_task_eisen.py │ │ │ ├── time_plan_update_settings_args_planning_task_project_ref_id.py │ │ │ ├── user.py │ │ │ ├── user_category.py │ │ │ ├── user_change_feature_flags_args.py │ │ │ ├── user_feature.py │ │ │ ├── user_feature_flags.py │ │ │ ├── user_feature_flags_controls.py │ │ │ ├── user_feature_flags_controls_controls.py │ │ │ ├── user_load_args.py │ │ │ ├── user_load_result.py │ │ │ ├── user_score.py │ │ │ ├── user_score_at_date.py │ │ │ ├── user_score_history.py │ │ │ ├── user_score_overview.py │ │ │ ├── user_update_args.py │ │ │ ├── user_update_args_name.py │ │ │ ├── user_update_args_timezone.py │ │ │ ├── user_workspace_link.py │ │ │ ├── vacation.py │ │ │ ├── vacation_archive_args.py │ │ │ ├── vacation_collection.py │ │ │ ├── vacation_create_args.py │ │ │ ├── vacation_create_result.py │ │ │ ├── vacation_entry.py │ │ │ ├── vacation_find_args.py │ │ │ ├── vacation_find_result.py │ │ │ ├── vacation_find_result_entry.py │ │ │ ├── vacation_load_args.py │ │ │ ├── vacation_load_result.py │ │ │ ├── vacation_remove_args.py │ │ │ ├── vacation_summary.py │ │ │ ├── vacation_update_args.py │ │ │ ├── vacation_update_args_end_date.py │ │ │ ├── vacation_update_args_name.py │ │ │ ├── vacation_update_args_start_date.py │ │ │ ├── widget_dimension.py │ │ │ ├── widget_geometry.py │ │ │ ├── widget_type.py │ │ │ ├── widget_type_constraints.py │ │ │ ├── widget_type_constraints_allowed_dimensions.py │ │ │ ├── workable_big_plan.py │ │ │ ├── workable_summary.py │ │ │ ├── working_mem.py │ │ │ ├── working_mem_archive_args.py │ │ │ ├── working_mem_change_clean_up_project_args.py │ │ │ ├── working_mem_change_generation_period_args.py │ │ │ ├── working_mem_collection.py │ │ │ ├── working_mem_find_args.py │ │ │ ├── working_mem_find_result.py │ │ │ ├── working_mem_find_result_entry.py │ │ │ ├── working_mem_load_args.py │ │ │ ├── working_mem_load_current_args.py │ │ │ ├── working_mem_load_current_entry.py │ │ │ ├── working_mem_load_current_result.py │ │ │ ├── working_mem_load_result.py │ │ │ ├── working_mem_load_settings_args.py │ │ │ ├── working_mem_load_settings_result.py │ │ │ ├── workspace.py │ │ │ ├── workspace_change_feature_flags_args.py │ │ │ ├── workspace_feature.py │ │ │ ├── workspace_feature_flags.py │ │ │ ├── workspace_feature_flags_controls.py │ │ │ ├── workspace_feature_flags_controls_controls.py │ │ │ ├── workspace_load_args.py │ │ │ ├── workspace_load_result.py │ │ │ ├── workspace_set_feature_args.py │ │ │ ├── workspace_update_args.py │ │ │ └── workspace_update_args_name.py │ │ ├── py.typed │ │ └── types.py │ │ └── pyproject.toml └── ts │ └── webapi-client │ ├── gen │ ├── ApiClient.ts │ ├── core │ │ ├── ApiError.ts │ │ ├── ApiRequestOptions.ts │ │ ├── ApiResult.ts │ │ ├── BaseHttpRequest.ts │ │ ├── CancelablePromise.ts │ │ ├── FetchHttpRequest.ts │ │ ├── OpenAPI.ts │ │ └── request.ts │ ├── index.ts │ ├── models │ │ ├── ADate.ts │ │ ├── AppCore.ts │ │ ├── AppDistribution.ts │ │ ├── AppDistributionState.ts │ │ ├── AppPlatform.ts │ │ ├── AppShell.ts │ │ ├── AppVersion.ts │ │ ├── ArchivalReason.ts │ │ ├── AuthTokenExt.ts │ │ ├── Avatar.ts │ │ ├── BigPlan.ts │ │ ├── BigPlanArchiveArgs.ts │ │ ├── BigPlanArchiveServiceResult.ts │ │ ├── BigPlanCollection.ts │ │ ├── BigPlanCreateArgs.ts │ │ ├── BigPlanCreateResult.ts │ │ ├── BigPlanFindArgs.ts │ │ ├── BigPlanFindResult.ts │ │ ├── BigPlanFindResultEntry.ts │ │ ├── BigPlanLoadArgs.ts │ │ ├── BigPlanLoadResult.ts │ │ ├── BigPlanName.ts │ │ ├── BigPlanRefreshStatsArgs.ts │ │ ├── BigPlanRemoveArgs.ts │ │ ├── BigPlanStats.ts │ │ ├── BigPlanStatus.ts │ │ ├── BigPlanSummary.ts │ │ ├── BigPlanUpdateArgs.ts │ │ ├── BigPlanUpdateResult.ts │ │ ├── BigPlanWorkSummary.ts │ │ ├── BigScreenHomeTabWidgetPlacement.ts │ │ ├── BulletedListBlock.ts │ │ ├── CalendarEventsEntries.ts │ │ ├── CalendarEventsStats.ts │ │ ├── CalendarEventsStatsPerSubperiod.ts │ │ ├── CalendarLoadForDateAndPeriodArgs.ts │ │ ├── CalendarLoadForDateAndPeriodResult.ts │ │ ├── ChangePasswordArgs.ts │ │ ├── ChecklistBlock.ts │ │ ├── ChecklistItem.ts │ │ ├── Chore.ts │ │ ├── ChoreArchiveArgs.ts │ │ ├── ChoreCollection.ts │ │ ├── ChoreCreateArgs.ts │ │ ├── ChoreCreateResult.ts │ │ ├── ChoreFindArgs.ts │ │ ├── ChoreFindResult.ts │ │ ├── ChoreFindResultEntry.ts │ │ ├── ChoreLoadArgs.ts │ │ ├── ChoreLoadResult.ts │ │ ├── ChoreName.ts │ │ ├── ChoreRegenArgs.ts │ │ ├── ChoreRemoveArgs.ts │ │ ├── ChoreSummary.ts │ │ ├── ChoreSuspendArgs.ts │ │ ├── ChoreUnsuspendArgs.ts │ │ ├── ChoreUpdateArgs.ts │ │ ├── ClearAllArgs.ts │ │ ├── CloseAccountArgs.ts │ │ ├── CodeBlock.ts │ │ ├── CorrelationId.ts │ │ ├── Difficulty.ts │ │ ├── DividerBlock.ts │ │ ├── Doc.ts │ │ ├── DocArchiveArgs.ts │ │ ├── DocChangeParentArgs.ts │ │ ├── DocCollection.ts │ │ ├── DocCreateArgs.ts │ │ ├── DocCreateResult.ts │ │ ├── DocFindArgs.ts │ │ ├── DocFindResult.ts │ │ ├── DocFindResultEntry.ts │ │ ├── DocLoadArgs.ts │ │ ├── DocLoadResult.ts │ │ ├── DocName.ts │ │ ├── DocRemoveArgs.ts │ │ ├── DocUpdateArgs.ts │ │ ├── Eisen.ts │ │ ├── EmailAddress.ts │ │ ├── EmailTask.ts │ │ ├── EmailTaskArchiveArgs.ts │ │ ├── EmailTaskArchiveServiceResult.ts │ │ ├── EmailTaskChangeGenerationProjectArgs.ts │ │ ├── EmailTaskCollection.ts │ │ ├── EmailTaskFindArgs.ts │ │ ├── EmailTaskFindResult.ts │ │ ├── EmailTaskFindResultEntry.ts │ │ ├── EmailTaskLoadArgs.ts │ │ ├── EmailTaskLoadResult.ts │ │ ├── EmailTaskLoadSettingsArgs.ts │ │ ├── EmailTaskLoadSettingsResult.ts │ │ ├── EmailTaskRemoveArgs.ts │ │ ├── EmailTaskUpdateArgs.ts │ │ ├── EmailUserName.ts │ │ ├── EntityIcon.ts │ │ ├── EntityId.ts │ │ ├── EntityName.ts │ │ ├── EntityReferenceBlock.ts │ │ ├── EntitySummary.ts │ │ ├── Env.ts │ │ ├── EventSource.ts │ │ ├── FeatureControl.ts │ │ ├── GCDoAllArgs.ts │ │ ├── GCDoArgs.ts │ │ ├── GCLoadRunsArgs.ts │ │ ├── GCLoadRunsResult.ts │ │ ├── GCLog.ts │ │ ├── GCLogEntry.ts │ │ ├── GenDoAllArgs.ts │ │ ├── GenDoArgs.ts │ │ ├── GenLoadRunsArgs.ts │ │ ├── GenLoadRunsResult.ts │ │ ├── GenLog.ts │ │ ├── GenLogEntry.ts │ │ ├── GetSummariesArgs.ts │ │ ├── GetSummariesResult.ts │ │ ├── Habit.ts │ │ ├── HabitArchiveArgs.ts │ │ ├── HabitCollection.ts │ │ ├── HabitCreateArgs.ts │ │ ├── HabitCreateResult.ts │ │ ├── HabitFindArgs.ts │ │ ├── HabitFindResult.ts │ │ ├── HabitFindResultEntry.ts │ │ ├── HabitLoadArgs.ts │ │ ├── HabitLoadResult.ts │ │ ├── HabitName.ts │ │ ├── HabitRegenArgs.ts │ │ ├── HabitRemoveArgs.ts │ │ ├── HabitRepeatsStrategy.ts │ │ ├── HabitStreakMark.ts │ │ ├── HabitSummary.ts │ │ ├── HabitSuspendArgs.ts │ │ ├── HabitUnsuspendArgs.ts │ │ ├── HabitUpdateArgs.ts │ │ ├── HeadingBlock.ts │ │ ├── HomeConfig.ts │ │ ├── HomeConfigLoadArgs.ts │ │ ├── HomeConfigLoadResult.ts │ │ ├── HomeTab.ts │ │ ├── HomeTabArchiveArgs.ts │ │ ├── HomeTabCreateArgs.ts │ │ ├── HomeTabCreateResult.ts │ │ ├── HomeTabLoadArgs.ts │ │ ├── HomeTabLoadResult.ts │ │ ├── HomeTabRemoveArgs.ts │ │ ├── HomeTabTarget.ts │ │ ├── HomeTabUpdateArgs.ts │ │ ├── HomeTabWidgetPlacement.ts │ │ ├── HomeTabWidgetPlacementSection.ts │ │ ├── HomeWidget.ts │ │ ├── HomeWidgetArchiveArgs.ts │ │ ├── HomeWidgetCreateArgs.ts │ │ ├── HomeWidgetCreateResult.ts │ │ ├── HomeWidgetLoadArgs.ts │ │ ├── HomeWidgetLoadResult.ts │ │ ├── HomeWidgetMoveAndResizeArgs.ts │ │ ├── HomeWidgetRemoveArgs.ts │ │ ├── Hosting.ts │ │ ├── InboxTask.ts │ │ ├── InboxTaskArchiveArgs.ts │ │ ├── InboxTaskCollection.ts │ │ ├── InboxTaskCreateArgs.ts │ │ ├── InboxTaskCreateResult.ts │ │ ├── InboxTaskEntry.ts │ │ ├── InboxTaskFindArgs.ts │ │ ├── InboxTaskFindResult.ts │ │ ├── InboxTaskFindResultEntry.ts │ │ ├── InboxTaskLoadArgs.ts │ │ ├── InboxTaskLoadResult.ts │ │ ├── InboxTaskName.ts │ │ ├── InboxTaskRemoveArgs.ts │ │ ├── InboxTaskSource.ts │ │ ├── InboxTaskStatus.ts │ │ ├── InboxTaskSummary.ts │ │ ├── InboxTaskUpdateArgs.ts │ │ ├── InboxTaskUpdateResult.ts │ │ ├── InboxTasksSummary.ts │ │ ├── InitArgs.ts │ │ ├── InitResult.ts │ │ ├── Journal.ts │ │ ├── JournalArchiveArgs.ts │ │ ├── JournalChangeTimeConfigArgs.ts │ │ ├── JournalCollection.ts │ │ ├── JournalCreateArgs.ts │ │ ├── JournalCreateResult.ts │ │ ├── JournalFindArgs.ts │ │ ├── JournalFindResult.ts │ │ ├── JournalFindResultEntry.ts │ │ ├── JournalGenerationApproach.ts │ │ ├── JournalLoadArgs.ts │ │ ├── JournalLoadForDateAndPeriodArgs.ts │ │ ├── JournalLoadForDateAndPeriodResult.ts │ │ ├── JournalLoadResult.ts │ │ ├── JournalLoadSettingsArgs.ts │ │ ├── JournalLoadSettingsResult.ts │ │ ├── JournalRefreshStatsArgs.ts │ │ ├── JournalRegenArgs.ts │ │ ├── JournalRemoveArgs.ts │ │ ├── JournalSource.ts │ │ ├── JournalStats.ts │ │ ├── JournalSummary.ts │ │ ├── JournalUpdateSettingsArgs.ts │ │ ├── LinkBlock.ts │ │ ├── ListItem.ts │ │ ├── LoadProgressReporterTokenArgs.ts │ │ ├── LoadProgressReporterTokenResult.ts │ │ ├── LoadTopLevelInfoArgs.ts │ │ ├── LoadTopLevelInfoResult.ts │ │ ├── LoginArgs.ts │ │ ├── LoginResult.ts │ │ ├── MOTD.ts │ │ ├── MOTDGetForTodayArgs.ts │ │ ├── MOTDGetForTodayResult.ts │ │ ├── Metric.ts │ │ ├── MetricArchiveArgs.ts │ │ ├── MetricChangeCollectionProjectArgs.ts │ │ ├── MetricCollection.ts │ │ ├── MetricCreateArgs.ts │ │ ├── MetricCreateResult.ts │ │ ├── MetricEntry.ts │ │ ├── MetricEntryArchiveArgs.ts │ │ ├── MetricEntryCreateArgs.ts │ │ ├── MetricEntryCreateResult.ts │ │ ├── MetricEntryLoadArgs.ts │ │ ├── MetricEntryLoadResult.ts │ │ ├── MetricEntryRemoveArgs.ts │ │ ├── MetricEntryUpdateArgs.ts │ │ ├── MetricFindArgs.ts │ │ ├── MetricFindResponseEntry.ts │ │ ├── MetricFindResult.ts │ │ ├── MetricLoadArgs.ts │ │ ├── MetricLoadResult.ts │ │ ├── MetricLoadSettingsArgs.ts │ │ ├── MetricLoadSettingsResult.ts │ │ ├── MetricName.ts │ │ ├── MetricRegenArgs.ts │ │ ├── MetricRemoveArgs.ts │ │ ├── MetricSummary.ts │ │ ├── MetricUnit.ts │ │ ├── MetricUpdateArgs.ts │ │ ├── NamedEntityTag.ts │ │ ├── NestedResult.ts │ │ ├── NestedResultPerSource.ts │ │ ├── Note.ts │ │ ├── NoteArchiveArgs.ts │ │ ├── NoteCollection.ts │ │ ├── NoteContentBlock.ts │ │ ├── NoteCreateArgs.ts │ │ ├── NoteCreateResult.ts │ │ ├── NoteDomain.ts │ │ ├── NoteRemoveArgs.ts │ │ ├── NoteUpdateArgs.ts │ │ ├── NumberedListBlock.ts │ │ ├── ParagraphBlock.ts │ │ ├── PasswordNewPlain.ts │ │ ├── PasswordPlain.ts │ │ ├── PerBigPlanBreakdownItem.ts │ │ ├── PerChoreBreakdownItem.ts │ │ ├── PerHabitBreakdownItem.ts │ │ ├── PerPeriodBreakdownItem.ts │ │ ├── PerProjectBreakdownItem.ts │ │ ├── Person.ts │ │ ├── PersonArchiveArgs.ts │ │ ├── PersonBirthday.ts │ │ ├── PersonChangeCatchUpProjectArgs.ts │ │ ├── PersonCollection.ts │ │ ├── PersonCreateArgs.ts │ │ ├── PersonCreateResult.ts │ │ ├── PersonEntry.ts │ │ ├── PersonFindArgs.ts │ │ ├── PersonFindResult.ts │ │ ├── PersonFindResultEntry.ts │ │ ├── PersonLoadArgs.ts │ │ ├── PersonLoadResult.ts │ │ ├── PersonLoadSettingsArgs.ts │ │ ├── PersonLoadSettingsResult.ts │ │ ├── PersonName.ts │ │ ├── PersonRegenArgs.ts │ │ ├── PersonRelationship.ts │ │ ├── PersonRemoveArgs.ts │ │ ├── PersonSummary.ts │ │ ├── PersonUpdateArgs.ts │ │ ├── Project.ts │ │ ├── ProjectArchiveArgs.ts │ │ ├── ProjectChangeParentArgs.ts │ │ ├── ProjectCollection.ts │ │ ├── ProjectCreateArgs.ts │ │ ├── ProjectCreateResult.ts │ │ ├── ProjectFindArgs.ts │ │ ├── ProjectFindResult.ts │ │ ├── ProjectFindResultEntry.ts │ │ ├── ProjectLoadArgs.ts │ │ ├── ProjectLoadResult.ts │ │ ├── ProjectName.ts │ │ ├── ProjectRemoveArgs.ts │ │ ├── ProjectReorderChildrenArgs.ts │ │ ├── ProjectSummary.ts │ │ ├── ProjectUpdateArgs.ts │ │ ├── PushGenerationExtraInfo.ts │ │ ├── PushIntegrationGroup.ts │ │ ├── QuoteBlock.ts │ │ ├── RecordScoreResult.ts │ │ ├── RecoveryTokenPlain.ts │ │ ├── RecurringTaskDueAtDay.ts │ │ ├── RecurringTaskDueAtMonth.ts │ │ ├── RecurringTaskGenParams.ts │ │ ├── RecurringTaskPeriod.ts │ │ ├── RecurringTaskSkipRule.ts │ │ ├── RecurringTaskWorkSummary.ts │ │ ├── RemoveAllArgs.ts │ │ ├── ReorderTabsArgs.ts │ │ ├── ReportArgs.ts │ │ ├── ReportBreakdown.ts │ │ ├── ReportPeriodResult.ts │ │ ├── ReportResult.ts │ │ ├── ResetPasswordArgs.ts │ │ ├── ResetPasswordResult.ts │ │ ├── ScheduleDomain.ts │ │ ├── ScheduleEventFullDays.ts │ │ ├── ScheduleEventFullDaysArchiveArgs.ts │ │ ├── ScheduleEventFullDaysChangeScheduleStreamArgs.ts │ │ ├── ScheduleEventFullDaysCreateArgs.ts │ │ ├── ScheduleEventFullDaysCreateResult.ts │ │ ├── ScheduleEventFullDaysLoadArgs.ts │ │ ├── ScheduleEventFullDaysLoadResult.ts │ │ ├── ScheduleEventFullDaysRemoveArgs.ts │ │ ├── ScheduleEventFullDaysUpdateArgs.ts │ │ ├── ScheduleEventInDay.ts │ │ ├── ScheduleEventInDayArchiveArgs.ts │ │ ├── ScheduleEventInDayChangeScheduleStreamArgs.ts │ │ ├── ScheduleEventInDayCreateArgs.ts │ │ ├── ScheduleEventInDayCreateResult.ts │ │ ├── ScheduleEventInDayLoadArgs.ts │ │ ├── ScheduleEventInDayLoadResult.ts │ │ ├── ScheduleEventInDayRemoveArgs.ts │ │ ├── ScheduleEventInDayUpdateArgs.ts │ │ ├── ScheduleEventName.ts │ │ ├── ScheduleExternalSyncDoAllArgs.ts │ │ ├── ScheduleExternalSyncDoArgs.ts │ │ ├── ScheduleExternalSyncLoadRunsArgs.ts │ │ ├── ScheduleExternalSyncLoadRunsResult.ts │ │ ├── ScheduleExternalSyncLog.ts │ │ ├── ScheduleExternalSyncLogEntry.ts │ │ ├── ScheduleExternalSyncLogPerStreamResult.ts │ │ ├── ScheduleExternalUid.ts │ │ ├── ScheduleFullDaysEventEntry.ts │ │ ├── ScheduleInDayEventEntry.ts │ │ ├── ScheduleSource.ts │ │ ├── ScheduleStream.ts │ │ ├── ScheduleStreamArchiveArgs.ts │ │ ├── ScheduleStreamColor.ts │ │ ├── ScheduleStreamCreateForExternalIcalArgs.ts │ │ ├── ScheduleStreamCreateForExternalIcalResult.ts │ │ ├── ScheduleStreamCreateForUserArgs.ts │ │ ├── ScheduleStreamCreateForUserResult.ts │ │ ├── ScheduleStreamFindArgs.ts │ │ ├── ScheduleStreamFindResult.ts │ │ ├── ScheduleStreamFindResultEntry.ts │ │ ├── ScheduleStreamLoadArgs.ts │ │ ├── ScheduleStreamLoadResult.ts │ │ ├── ScheduleStreamName.ts │ │ ├── ScheduleStreamRemoveArgs.ts │ │ ├── ScheduleStreamSummary.ts │ │ ├── ScheduleStreamUpdateArgs.ts │ │ ├── ScoreLog.ts │ │ ├── ScoreLogEntry.ts │ │ ├── ScorePeriodBest.ts │ │ ├── ScoreSource.ts │ │ ├── ScoreStats.ts │ │ ├── SearchArgs.ts │ │ ├── SearchLimit.ts │ │ ├── SearchMatch.ts │ │ ├── SearchQuery.ts │ │ ├── SearchResult.ts │ │ ├── SlackChannelName.ts │ │ ├── SlackTask.ts │ │ ├── SlackTaskArchiveArgs.ts │ │ ├── SlackTaskArchiveServiceResult.ts │ │ ├── SlackTaskChangeGenerationProjectArgs.ts │ │ ├── SlackTaskCollection.ts │ │ ├── SlackTaskFindArgs.ts │ │ ├── SlackTaskFindResult.ts │ │ ├── SlackTaskFindResultEntry.ts │ │ ├── SlackTaskLoadArgs.ts │ │ ├── SlackTaskLoadResult.ts │ │ ├── SlackTaskLoadSettingsArgs.ts │ │ ├── SlackTaskLoadSettingsResult.ts │ │ ├── SlackTaskRemoveArgs.ts │ │ ├── SlackTaskUpdateArgs.ts │ │ ├── SlackUserName.ts │ │ ├── SmallScreenHomeTabWidgetPlacement.ts │ │ ├── SmartList.ts │ │ ├── SmartListArchiveArgs.ts │ │ ├── SmartListCollection.ts │ │ ├── SmartListCreateArgs.ts │ │ ├── SmartListCreateResult.ts │ │ ├── SmartListFindArgs.ts │ │ ├── SmartListFindResponseEntry.ts │ │ ├── SmartListFindResult.ts │ │ ├── SmartListItem.ts │ │ ├── SmartListItemArchiveArgs.ts │ │ ├── SmartListItemCreateArgs.ts │ │ ├── SmartListItemCreateResult.ts │ │ ├── SmartListItemLoadArgs.ts │ │ ├── SmartListItemLoadResult.ts │ │ ├── SmartListItemName.ts │ │ ├── SmartListItemRemoveArgs.ts │ │ ├── SmartListItemUpdateArgs.ts │ │ ├── SmartListLoadArgs.ts │ │ ├── SmartListLoadResult.ts │ │ ├── SmartListName.ts │ │ ├── SmartListRemoveArgs.ts │ │ ├── SmartListSummary.ts │ │ ├── SmartListTag.ts │ │ ├── SmartListTagArchiveArgs.ts │ │ ├── SmartListTagCreateArgs.ts │ │ ├── SmartListTagCreateResult.ts │ │ ├── SmartListTagLoadArgs.ts │ │ ├── SmartListTagLoadResult.ts │ │ ├── SmartListTagRemoveArgs.ts │ │ ├── SmartListTagUpdateArgs.ts │ │ ├── SmartListUpdateArgs.ts │ │ ├── StatsDoAllArgs.ts │ │ ├── StatsDoArgs.ts │ │ ├── StatsLoadRunsArgs.ts │ │ ├── StatsLoadRunsResult.ts │ │ ├── StatsLog.ts │ │ ├── StatsLogEntry.ts │ │ ├── SyncTarget.ts │ │ ├── TableBlock.ts │ │ ├── TagName.ts │ │ ├── TimeEventDomain.ts │ │ ├── TimeEventFullDaysBlock.ts │ │ ├── TimeEventFullDaysBlockLoadArgs.ts │ │ ├── TimeEventFullDaysBlockLoadResult.ts │ │ ├── TimeEventFullDaysBlockStats.ts │ │ ├── TimeEventFullDaysBlockStatsPerGroup.ts │ │ ├── TimeEventInDayBlock.ts │ │ ├── TimeEventInDayBlockArchiveArgs.ts │ │ ├── TimeEventInDayBlockCreateForInboxTaskArgs.ts │ │ ├── TimeEventInDayBlockCreateForInboxTaskResult.ts │ │ ├── TimeEventInDayBlockLoadArgs.ts │ │ ├── TimeEventInDayBlockLoadResult.ts │ │ ├── TimeEventInDayBlockRemoveArgs.ts │ │ ├── TimeEventInDayBlockStats.ts │ │ ├── TimeEventInDayBlockStatsPerGroup.ts │ │ ├── TimeEventInDayBlockUpdateArgs.ts │ │ ├── TimeEventNamespace.ts │ │ ├── TimeInDay.ts │ │ ├── TimePlan.ts │ │ ├── TimePlanActivity.ts │ │ ├── TimePlanActivityArchiveArgs.ts │ │ ├── TimePlanActivityDoneness.ts │ │ ├── TimePlanActivityFeasability.ts │ │ ├── TimePlanActivityFindForTargetArgs.ts │ │ ├── TimePlanActivityFindForTargetResult.ts │ │ ├── TimePlanActivityFindForTargetResultEntry.ts │ │ ├── TimePlanActivityKind.ts │ │ ├── TimePlanActivityLoadArgs.ts │ │ ├── TimePlanActivityLoadResult.ts │ │ ├── TimePlanActivityRemoveArgs.ts │ │ ├── TimePlanActivityTarget.ts │ │ ├── TimePlanActivityUpdateArgs.ts │ │ ├── TimePlanArchiveArgs.ts │ │ ├── TimePlanAssociateWithActivitiesArgs.ts │ │ ├── TimePlanAssociateWithActivitiesResult.ts │ │ ├── TimePlanAssociateWithBigPlansArgs.ts │ │ ├── TimePlanAssociateWithBigPlansResult.ts │ │ ├── TimePlanAssociateWithInboxTasksArgs.ts │ │ ├── TimePlanAssociateWithInboxTasksResult.ts │ │ ├── TimePlanChangeTimeConfigArgs.ts │ │ ├── TimePlanCreateArgs.ts │ │ ├── TimePlanCreateResult.ts │ │ ├── TimePlanDomain.ts │ │ ├── TimePlanFindArgs.ts │ │ ├── TimePlanFindResult.ts │ │ ├── TimePlanFindResultEntry.ts │ │ ├── TimePlanGenForTimePlanArgs.ts │ │ ├── TimePlanGenerationApproach.ts │ │ ├── TimePlanLoadArgs.ts │ │ ├── TimePlanLoadForDateAndPeriodArgs.ts │ │ ├── TimePlanLoadForDateAndPeriodResult.ts │ │ ├── TimePlanLoadResult.ts │ │ ├── TimePlanLoadSettingsArgs.ts │ │ ├── TimePlanLoadSettingsResult.ts │ │ ├── TimePlanRegenArgs.ts │ │ ├── TimePlanRemoveArgs.ts │ │ ├── TimePlanSource.ts │ │ ├── TimePlanUpdateSettingsArgs.ts │ │ ├── Timestamp.ts │ │ ├── Timezone.ts │ │ ├── URL.ts │ │ ├── User.ts │ │ ├── UserCategory.ts │ │ ├── UserChangeFeatureFlagsArgs.ts │ │ ├── UserFeature.ts │ │ ├── UserFeatureFlagsControls.ts │ │ ├── UserLoadArgs.ts │ │ ├── UserLoadResult.ts │ │ ├── UserName.ts │ │ ├── UserScore.ts │ │ ├── UserScoreAtDate.ts │ │ ├── UserScoreHistory.ts │ │ ├── UserScoreOverview.ts │ │ ├── UserUpdateArgs.ts │ │ ├── UserWorkspaceLink.ts │ │ ├── Vacation.ts │ │ ├── VacationArchiveArgs.ts │ │ ├── VacationCollection.ts │ │ ├── VacationCreateArgs.ts │ │ ├── VacationCreateResult.ts │ │ ├── VacationEntry.ts │ │ ├── VacationFindArgs.ts │ │ ├── VacationFindResult.ts │ │ ├── VacationFindResultEntry.ts │ │ ├── VacationLoadArgs.ts │ │ ├── VacationLoadResult.ts │ │ ├── VacationName.ts │ │ ├── VacationRemoveArgs.ts │ │ ├── VacationSummary.ts │ │ ├── VacationUpdateArgs.ts │ │ ├── WidgetDimension.ts │ │ ├── WidgetGeometry.ts │ │ ├── WidgetType.ts │ │ ├── WidgetTypeConstraints.ts │ │ ├── WorkableBigPlan.ts │ │ ├── WorkableSummary.ts │ │ ├── WorkingMem.ts │ │ ├── WorkingMemArchiveArgs.ts │ │ ├── WorkingMemChangeCleanUpProjectArgs.ts │ │ ├── WorkingMemChangeGenerationPeriodArgs.ts │ │ ├── WorkingMemCollection.ts │ │ ├── WorkingMemFindArgs.ts │ │ ├── WorkingMemFindResult.ts │ │ ├── WorkingMemFindResultEntry.ts │ │ ├── WorkingMemLoadArgs.ts │ │ ├── WorkingMemLoadCurrentArgs.ts │ │ ├── WorkingMemLoadCurrentEntry.ts │ │ ├── WorkingMemLoadCurrentResult.ts │ │ ├── WorkingMemLoadResult.ts │ │ ├── WorkingMemLoadSettingsArgs.ts │ │ ├── WorkingMemLoadSettingsResult.ts │ │ ├── Workspace.ts │ │ ├── WorkspaceChangeFeatureFlagsArgs.ts │ │ ├── WorkspaceFeature.ts │ │ ├── WorkspaceFeatureFlagsControls.ts │ │ ├── WorkspaceLoadArgs.ts │ │ ├── WorkspaceLoadResult.ts │ │ ├── WorkspaceName.ts │ │ ├── WorkspaceSetFeatureArgs.ts │ │ └── WorkspaceUpdateArgs.ts │ └── services │ │ ├── ActivityService.ts │ │ ├── ApplicationService.ts │ │ ├── AuthService.ts │ │ ├── BigPlansService.ts │ │ ├── CalendarService.ts │ │ ├── ChoresService.ts │ │ ├── DocsService.ts │ │ ├── EmailService.ts │ │ ├── EntryService.ts │ │ ├── EventFullDaysService.ts │ │ ├── EventInDayService.ts │ │ ├── FullDaysBlockService.ts │ │ ├── GcService.ts │ │ ├── GenService.ts │ │ ├── GetSummariesService.ts │ │ ├── HabitsService.ts │ │ ├── HomeService.ts │ │ ├── InDayBlockService.ts │ │ ├── InboxTasksService.ts │ │ ├── ItemService.ts │ │ ├── JournalsService.ts │ │ ├── LoadProgressReporterTokenService.ts │ │ ├── LoadTopLevelInfoService.ts │ │ ├── LoginService.ts │ │ ├── MetricsService.ts │ │ ├── MotdService.ts │ │ ├── NotesService.ts │ │ ├── PersonsService.ts │ │ ├── ProjectsService.ts │ │ ├── ScheduleService.ts │ │ ├── SlackService.ts │ │ ├── SmartListsService.ts │ │ ├── StatsService.ts │ │ ├── StreamService.ts │ │ ├── TabService.ts │ │ ├── TagService.ts │ │ ├── TestHelperService.ts │ │ ├── TimePlansService.ts │ │ ├── UsersService.ts │ │ ├── VacationsService.ts │ │ ├── WidgetService.ts │ │ ├── WorkingMemService.ts │ │ └── WorkspacesService.ts │ ├── package.json │ ├── request-template.ts │ └── tsconfig.json ├── infra └── self-hosted │ ├── compose.yaml │ ├── nginx.conf │ ├── webui.conf │ └── webui.nodomain.conf ├── itests ├── README.md ├── __init__.py ├── conftest.py ├── entities │ ├── __init__.py │ ├── conftest.py │ ├── test_time_plans.py │ ├── test_vacations.py │ └── test_working_mem.py ├── lifecycle │ ├── __init__.py │ ├── conftest.py │ ├── test_change_password.py │ ├── test_close_account.py │ ├── test_create_workspace.py │ ├── test_login.py │ ├── test_logout.py │ └── test_recover_password.py ├── poetry.lock └── pyproject.toml ├── package-lock.json ├── package.json ├── poetry.lock ├── pyproject.toml ├── pytest.ini ├── render.yaml ├── scripts ├── build │ ├── cli.sh │ ├── desktop.sh │ ├── docker.sh │ ├── docs.sh │ ├── mobile-android.sh │ ├── mobile-ios.sh │ └── stats-for-nerds.sh ├── check │ ├── audits.sh │ ├── check-all-is-formatted.sh │ ├── check.sh │ ├── fast-lint.sh │ ├── fix-style.sh │ ├── libyear.sh │ ├── lint-dockerfile.sh │ ├── lint-docs.sh │ ├── lint-scripts.sh │ ├── lint-src.sh │ ├── lint-toplevel-yamls.sh │ ├── lint-workflows.sh │ ├── lint.sh │ ├── lint │ │ ├── autoflake │ │ ├── bandit │ │ ├── bandit.src.ini │ │ ├── bandit.test.ini │ │ ├── docs.rb │ │ ├── hadolint │ │ ├── mdl-docs │ │ ├── mdl-readme │ │ ├── mypy │ │ ├── pydocstyle │ │ ├── readme.rb │ │ ├── ruff.toml │ │ └── yamllint │ ├── run-itests.sh │ └── run-tests.sh ├── common.sh ├── coveragerc ├── generate-client-code.sh ├── itests-codegen.sh ├── pm2.config.ci.template.js ├── pm2.config.dev.template.js ├── release │ ├── abandon.sh │ ├── adjust-distribution.sh │ ├── finish.sh │ ├── list-releases.sh │ ├── prepare.sh │ ├── release-manifest.template.json │ ├── template.md │ ├── upload-appstore-ios.sh │ ├── upload-appstore-macos.sh │ ├── upload-docker.sh │ ├── upload-gh.sh │ └── upload-playstore.sh ├── run-desktop.sh ├── run-dev.sh ├── run-docs.sh ├── run-mobile.sh ├── setup-for-ci.sh ├── setup-for-dev.sh └── work │ ├── close-bugfix.sh │ ├── close-feature.sh │ ├── new-bugfix.sh │ ├── new-dev-session.sh │ └── new-feature.sh └── src ├── Config.global ├── cli ├── Config.project ├── Config.project.live ├── Dockerfile ├── README.md ├── jupiter │ └── cli │ │ ├── __init__.py │ │ ├── command │ │ ├── __init__.py │ │ ├── big_plan_show.py │ │ ├── big_plan_update.py │ │ ├── calendar_show.py │ │ ├── chore_show.py │ │ ├── command.py │ │ ├── email_task_show.py │ │ ├── exceptions.py │ │ ├── gc_show.py │ │ ├── gen_show.py │ │ ├── habit_show.py │ │ ├── inbox_task_show.py │ │ ├── inbox_task_update.py │ │ ├── initialize.py │ │ ├── login.py │ │ ├── logout.py │ │ ├── metric_show.py │ │ ├── person_show.py │ │ ├── pomodoro.py │ │ ├── project_show.py │ │ ├── rendering.py │ │ ├── report.py │ │ ├── reset_password.py │ │ ├── schedule_stream_show.py │ │ ├── search.py │ │ ├── slack_task_show.py │ │ ├── smart_list_show.py │ │ ├── time_plan_load.py │ │ ├── time_plan_show.py │ │ ├── user_show.py │ │ ├── vacation_show.py │ │ └── workspace_show.py │ │ ├── jupiter.py │ │ ├── migrator.py │ │ ├── session_storage.py │ │ └── top_level_context.py ├── poetry.lock ├── pyproject.toml └── tests │ ├── __init__.py │ └── test_cli.py ├── core ├── README.md ├── jupiter │ └── core │ │ ├── __init__.py │ │ ├── domain │ │ ├── __init__.py │ │ ├── app.py │ │ ├── app_version_decoder.py │ │ ├── application │ │ │ ├── __init__.py │ │ │ ├── calendar │ │ │ │ └── __init__.py │ │ │ ├── gamification │ │ │ │ ├── __init__.py │ │ │ │ ├── score_log.py │ │ │ │ ├── score_log_entry.py │ │ │ │ ├── score_period_best.py │ │ │ │ ├── score_source.py │ │ │ │ ├── score_stats.py │ │ │ │ ├── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── record_score_service.py │ │ │ │ │ ├── score_history_service.py │ │ │ │ │ └── score_overview_service.py │ │ │ │ ├── user_score_history.py │ │ │ │ └── user_score_overview.py │ │ │ ├── gc │ │ │ │ ├── __init__.py │ │ │ │ ├── gc_log.py │ │ │ │ ├── gc_log_entry.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── gc_service.py │ │ │ ├── gen │ │ │ │ ├── __init__.py │ │ │ │ ├── gen_log.py │ │ │ │ ├── gen_log_entry.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── gen_service.py │ │ │ ├── home │ │ │ │ ├── __init__.py │ │ │ │ ├── home_config.py │ │ │ │ ├── home_tab.py │ │ │ │ ├── home_tab_target.py │ │ │ │ ├── home_tab_widget_placement.py │ │ │ │ ├── home_widget.py │ │ │ │ └── widget.py │ │ │ ├── report │ │ │ │ ├── __init__.py │ │ │ │ ├── report_breakdown.py │ │ │ │ ├── report_period_result.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── report_service.py │ │ │ ├── search │ │ │ │ ├── __init__.py │ │ │ │ ├── infra │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── search_repository.py │ │ │ │ ├── search_limit.py │ │ │ │ └── search_query.py │ │ │ └── stats │ │ │ │ ├── __init__.py │ │ │ │ ├── service │ │ │ │ ├── __init__.py │ │ │ │ └── stats_service.py │ │ │ │ ├── stats_log.py │ │ │ │ └── stats_log_entry.py │ │ ├── concept │ │ │ ├── __init__.py │ │ │ ├── auth │ │ │ │ ├── __init__.py │ │ │ │ ├── auth.py │ │ │ │ ├── auth_token.py │ │ │ │ ├── auth_token_ext.py │ │ │ │ ├── auth_token_stamper.py │ │ │ │ ├── password_hash.py │ │ │ │ ├── password_new_plain.py │ │ │ │ ├── password_plain.py │ │ │ │ ├── recovery_token_hash.py │ │ │ │ ├── recovery_token_plain.py │ │ │ │ └── use_case │ │ │ │ │ └── __init__.py │ │ │ ├── big_plans │ │ │ │ ├── __init__.py │ │ │ │ ├── big_plan.py │ │ │ │ ├── big_plan_collection.py │ │ │ │ ├── big_plan_name.py │ │ │ │ ├── big_plan_stats.py │ │ │ │ ├── big_plan_status.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive_service.py │ │ │ │ │ └── remove_service.py │ │ │ ├── chores │ │ │ │ ├── __init__.py │ │ │ │ ├── chore.py │ │ │ │ ├── chore_collection.py │ │ │ │ ├── chore_name.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive_service.py │ │ │ │ │ └── remove_service.py │ │ │ ├── docs │ │ │ │ ├── __init__.py │ │ │ │ ├── doc.py │ │ │ │ ├── doc_collection.py │ │ │ │ ├── doc_name.py │ │ │ │ ├── infra │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── doc_collection_repository.py │ │ │ │ │ └── doc_repository.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── doc_archive_service.py │ │ │ │ │ └── doc_remove_service.py │ │ │ ├── habits │ │ │ │ ├── __init__.py │ │ │ │ ├── habit.py │ │ │ │ ├── habit_collection.py │ │ │ │ ├── habit_name.py │ │ │ │ ├── habit_repeats_strategy.py │ │ │ │ ├── habit_streak_mark.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive_service.py │ │ │ │ │ ├── remove_service.py │ │ │ │ │ └── streak_recorder_service.py │ │ │ ├── inbox_tasks │ │ │ │ ├── __init__.py │ │ │ │ ├── inbox_task.py │ │ │ │ ├── inbox_task_collection.py │ │ │ │ ├── inbox_task_name.py │ │ │ │ ├── inbox_task_source.py │ │ │ │ ├── inbox_task_status.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive_service.py │ │ │ │ │ └── remove_service.py │ │ │ ├── journals │ │ │ │ ├── __init__.py │ │ │ │ ├── infra │ │ │ │ │ └── __init__.py │ │ │ │ ├── journal.py │ │ │ │ ├── journal_collection.py │ │ │ │ ├── journal_generation_approach.py │ │ │ │ ├── journal_source.py │ │ │ │ └── journal_stats.py │ │ │ ├── metrics │ │ │ │ ├── __init__.py │ │ │ │ ├── metric.py │ │ │ │ ├── metric_collection.py │ │ │ │ ├── metric_entry.py │ │ │ │ ├── metric_name.py │ │ │ │ ├── metric_unit.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── remove_service.py │ │ │ ├── motd │ │ │ │ ├── __init__.py │ │ │ │ └── motd.py │ │ │ ├── persons │ │ │ │ ├── __init__.py │ │ │ │ ├── person.py │ │ │ │ ├── person_birthday.py │ │ │ │ ├── person_collection.py │ │ │ │ ├── person_name.py │ │ │ │ ├── person_relationship.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── remove_service.py │ │ │ ├── projects │ │ │ │ ├── __init__.py │ │ │ │ ├── errors.py │ │ │ │ ├── project.py │ │ │ │ ├── project_collection.py │ │ │ │ ├── project_name.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive_service.py │ │ │ │ │ ├── check_cycles_service.py │ │ │ │ │ └── remove_service.py │ │ │ ├── push_integrations │ │ │ │ ├── __init__.py │ │ │ │ ├── email │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── email_task.py │ │ │ │ │ ├── email_task_collection.py │ │ │ │ │ ├── email_user_name.py │ │ │ │ │ └── service │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── archive_service.py │ │ │ │ │ │ └── remove_service.py │ │ │ │ ├── group │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── push_integration_group.py │ │ │ │ ├── push_generation_extra_info.py │ │ │ │ └── slack │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive_service.py │ │ │ │ │ └── remove_service.py │ │ │ │ │ ├── slack_channel_name.py │ │ │ │ │ ├── slack_task.py │ │ │ │ │ ├── slack_task_collection.py │ │ │ │ │ └── slack_user_name.py │ │ │ ├── schedule │ │ │ │ ├── __init__.py │ │ │ │ ├── schedule_domain.py │ │ │ │ ├── schedule_event_full_days.py │ │ │ │ ├── schedule_event_in_day.py │ │ │ │ ├── schedule_event_name.py │ │ │ │ ├── schedule_external_sync_log.py │ │ │ │ ├── schedule_external_sync_log_entry.py │ │ │ │ ├── schedule_external_uid.py │ │ │ │ ├── schedule_source.py │ │ │ │ ├── schedule_stream.py │ │ │ │ ├── schedule_stream_color.py │ │ │ │ ├── schedule_stream_name.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── external_sync_service.py │ │ │ ├── smart_lists │ │ │ │ ├── __init__.py │ │ │ │ ├── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── remove_service.py │ │ │ │ ├── smart_list.py │ │ │ │ ├── smart_list_collection.py │ │ │ │ ├── smart_list_item.py │ │ │ │ ├── smart_list_item_name.py │ │ │ │ ├── smart_list_name.py │ │ │ │ └── smart_list_tag.py │ │ │ ├── time_plans │ │ │ │ ├── __init__.py │ │ │ │ ├── time_plan.py │ │ │ │ ├── time_plan_activity.py │ │ │ │ ├── time_plan_activity_doneness.py │ │ │ │ ├── time_plan_activity_feasability.py │ │ │ │ ├── time_plan_activity_kind.py │ │ │ │ ├── time_plan_activity_target.py │ │ │ │ ├── time_plan_domain.py │ │ │ │ ├── time_plan_generation_approach.py │ │ │ │ └── time_plan_source.py │ │ │ ├── user │ │ │ │ ├── __init__.py │ │ │ │ ├── avatar.py │ │ │ │ ├── user.py │ │ │ │ ├── user_category.py │ │ │ │ └── user_name.py │ │ │ ├── user_workspace_link │ │ │ │ ├── __init__.py │ │ │ │ └── user_workspace_link.py │ │ │ ├── vacations │ │ │ │ ├── __init__.py │ │ │ │ ├── vacation.py │ │ │ │ ├── vacation_collection.py │ │ │ │ └── vacation_name.py │ │ │ ├── working_mem │ │ │ │ ├── __init__.py │ │ │ │ ├── working_mem.py │ │ │ │ └── working_mem_collection.py │ │ │ └── workspaces │ │ │ │ ├── __init__.py │ │ │ │ ├── infra │ │ │ │ ├── __init__.py │ │ │ │ └── workspace_repository.py │ │ │ │ ├── workspace.py │ │ │ │ └── workspace_name.py │ │ ├── core │ │ │ ├── __init__.py │ │ │ ├── adate.py │ │ │ ├── archival_reason.py │ │ │ ├── difficulty.py │ │ │ ├── eisen.py │ │ │ ├── email_address.py │ │ │ ├── entity_icon.py │ │ │ ├── notes │ │ │ │ ├── __init__.py │ │ │ │ ├── note.py │ │ │ │ ├── note_collection.py │ │ │ │ ├── note_content_block.py │ │ │ │ ├── note_domain.py │ │ │ │ └── service │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── note_archive_service.py │ │ │ │ │ └── note_remove_service.py │ │ │ ├── recurring_task_due_at_day.py │ │ │ ├── recurring_task_due_at_month.py │ │ │ ├── recurring_task_gen_params.py │ │ │ ├── recurring_task_period.py │ │ │ ├── recurring_task_skip_rule.py │ │ │ ├── schedules.py │ │ │ ├── tags │ │ │ │ ├── __init__.py │ │ │ │ └── tag_name.py │ │ │ ├── time_events │ │ │ │ ├── __init__.py │ │ │ │ ├── time_event_domain.py │ │ │ │ ├── time_event_full_days_block.py │ │ │ │ ├── time_event_in_day_block.py │ │ │ │ └── time_event_namespace.py │ │ │ ├── time_in_day.py │ │ │ ├── timeline.py │ │ │ ├── timezone.py │ │ │ └── url.py │ │ ├── crm.py │ │ ├── entity_summary.py │ │ ├── env.py │ │ ├── fast_info_repository.py │ │ ├── features.py │ │ ├── hosting.py │ │ ├── infer_sync_targets.py │ │ ├── infra │ │ │ ├── __init__.py │ │ │ ├── generic_creator.py │ │ │ ├── generic_crown_archiver.py │ │ │ ├── generic_crown_remover.py │ │ │ ├── generic_destroyer.py │ │ │ ├── generic_finder.py │ │ │ ├── generic_full_archiver.py │ │ │ ├── generic_loader.py │ │ │ └── generic_root_remover.py │ │ ├── named_entity_tag.py │ │ ├── storage_engine.py │ │ └── sync_target.py │ │ ├── framework │ │ ├── __init__.py │ │ ├── base │ │ │ ├── __init__.py │ │ │ ├── entity_id.py │ │ │ ├── entity_name.py │ │ │ └── timestamp.py │ │ ├── concept.py │ │ ├── context.py │ │ ├── entity.py │ │ ├── errors.py │ │ ├── event.py │ │ ├── optional.py │ │ ├── primitive.py │ │ ├── realm.py │ │ ├── record.py │ │ ├── repository.py │ │ ├── secure.py │ │ ├── storage.py │ │ ├── thing.py │ │ ├── update_action.py │ │ ├── use_case.py │ │ ├── use_case_io.py │ │ ├── utils.py │ │ └── value.py │ │ ├── impl │ │ ├── __init__.py │ │ ├── crm │ │ │ ├── __init__.py │ │ │ ├── noop.py │ │ │ └── wix.py │ │ └── repository │ │ │ ├── __init__.py │ │ │ └── sqlite │ │ │ ├── __init__.py │ │ │ ├── connection.py │ │ │ ├── domain │ │ │ ├── __init__.py │ │ │ ├── application │ │ │ │ ├── __init__.py │ │ │ │ ├── gamification.py │ │ │ │ ├── gc.py │ │ │ │ ├── gen.py │ │ │ │ ├── search.py │ │ │ │ └── stats.py │ │ │ ├── concept │ │ │ │ ├── __init__.py │ │ │ │ ├── big_plans.py │ │ │ │ ├── habits.py │ │ │ │ ├── inbox_tasks.py │ │ │ │ ├── journals.py │ │ │ │ ├── projects.py │ │ │ │ ├── schedules.py │ │ │ │ ├── time_plans.py │ │ │ │ ├── user_workspace_links.py │ │ │ │ ├── users.py │ │ │ │ ├── working_mems.py │ │ │ │ └── workspace.py │ │ │ ├── core │ │ │ │ ├── __init__.py │ │ │ │ ├── notes.py │ │ │ │ └── time_events.py │ │ │ ├── fast_info.py │ │ │ └── storage_engine.py │ │ │ ├── infra │ │ │ ├── __init__.py │ │ │ ├── events.py │ │ │ ├── filters.py │ │ │ ├── repository.py │ │ │ └── row.py │ │ │ └── use_case │ │ │ ├── __init__.py │ │ │ ├── mutation_use_case_invocation_records.py │ │ │ └── storage_engine.py │ │ ├── use_cases │ │ ├── __init__.py │ │ ├── application │ │ │ ├── __init__.py │ │ │ ├── calendar │ │ │ │ ├── __init__.py │ │ │ │ └── load_for_date_and_period.py │ │ │ ├── close_account.py │ │ │ ├── gc │ │ │ │ ├── __init__.py │ │ │ │ ├── do.py │ │ │ │ ├── do_all.py │ │ │ │ └── load_runs.py │ │ │ ├── gen │ │ │ │ ├── __init__.py │ │ │ │ ├── do.py │ │ │ │ ├── do_all.py │ │ │ │ └── load_runs.py │ │ │ ├── home │ │ │ │ ├── __init__.py │ │ │ │ ├── load.py │ │ │ │ ├── reoder_tabs.py │ │ │ │ ├── tab │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ └── widget │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── move_and_resize.py │ │ │ │ │ └── remove.py │ │ │ ├── init.py │ │ │ ├── report.py │ │ │ ├── search.py │ │ │ └── stats │ │ │ │ ├── __init__.py │ │ │ │ ├── do.py │ │ │ │ ├── do_all.py │ │ │ │ └── load_runs.py │ │ ├── concept │ │ │ ├── __init__.py │ │ │ ├── auth │ │ │ │ ├── __init__.py │ │ │ │ ├── change_password.py │ │ │ │ └── reset_password.py │ │ │ ├── big_plans │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── refresh_stats.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ ├── chores │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── regen.py │ │ │ │ ├── remove.py │ │ │ │ ├── suspend.py │ │ │ │ ├── unsuspend.py │ │ │ │ └── update.py │ │ │ ├── docs │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── change_parent.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ ├── habits │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── regen.py │ │ │ │ ├── remove.py │ │ │ │ ├── suspend.py │ │ │ │ ├── unsuspend.py │ │ │ │ └── update.py │ │ │ ├── inbox_tasks │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ ├── journals │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── change_time_config.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── load_for_date_and_period.py │ │ │ │ ├── load_settings.py │ │ │ │ ├── refresh_stats.py │ │ │ │ ├── regen.py │ │ │ │ ├── remove.py │ │ │ │ ├── update_report.py │ │ │ │ └── update_settings.py │ │ │ ├── metrics │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── change_collection_project.py │ │ │ │ ├── create.py │ │ │ │ ├── entry │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── load_settings.py │ │ │ │ ├── regen.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ ├── motd │ │ │ │ ├── __init__.py │ │ │ │ └── get_for_today.py │ │ │ ├── persons │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── change_catch_up_project.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── load_settings.py │ │ │ │ ├── regen.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ ├── projects │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── change_parent.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── remove.py │ │ │ │ ├── reoder_children.py │ │ │ │ └── update.py │ │ │ ├── push_integrations │ │ │ │ ├── __init__.py │ │ │ │ ├── email │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── change_generation_project.py │ │ │ │ │ ├── find.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── load_settings.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ └── slack │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── change_generation_project.py │ │ │ │ │ ├── find.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── load_settings.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ ├── schedule │ │ │ │ ├── __init__.py │ │ │ │ ├── event_full_days │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── change_schedule_stream.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ ├── event_in_day │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── change_schedule_stream.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ ├── external_sync_do.py │ │ │ │ ├── external_sync_do_all.py │ │ │ │ ├── external_sync_load_runs.py │ │ │ │ └── stream │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── create_for_external_ical.py │ │ │ │ │ ├── create_for_user.py │ │ │ │ │ ├── find.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ ├── smart_lists │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── item │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ ├── load.py │ │ │ │ ├── remove.py │ │ │ │ ├── tag │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── create.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ └── update.py │ │ │ ├── time_plans │ │ │ │ ├── __init__.py │ │ │ │ ├── activity │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── archive.py │ │ │ │ │ ├── find_for_target.py │ │ │ │ │ ├── load.py │ │ │ │ │ ├── remove.py │ │ │ │ │ └── update.py │ │ │ │ ├── archive.py │ │ │ │ ├── associate_with_activities.py │ │ │ │ ├── associate_with_big_plans.py │ │ │ │ ├── associate_with_inbox_tasks.py │ │ │ │ ├── change_time_config.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── gen_for_time_plan.py │ │ │ │ ├── load.py │ │ │ │ ├── load_for_date_and_period.py │ │ │ │ ├── load_settings.py │ │ │ │ ├── regen.py │ │ │ │ ├── remove.py │ │ │ │ └── update_settings.py │ │ │ ├── users │ │ │ │ ├── __init__.py │ │ │ │ ├── change_feature_flags.py │ │ │ │ ├── load.py │ │ │ │ └── update.py │ │ │ ├── vacations │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ ├── working_mem │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── change_cleanup_project.py │ │ │ │ ├── change_generation_period.py │ │ │ │ ├── find.py │ │ │ │ ├── load.py │ │ │ │ ├── load_current.py │ │ │ │ └── load_settings.py │ │ │ └── workspaces │ │ │ │ ├── __init__.py │ │ │ │ ├── change_feature_flags.py │ │ │ │ ├── load.py │ │ │ │ └── update.py │ │ ├── core │ │ │ ├── __init__.py │ │ │ ├── notes │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ │ └── time_event │ │ │ │ ├── __init__.py │ │ │ │ ├── full_days_block │ │ │ │ ├── __init__.py │ │ │ │ └── load.py │ │ │ │ └── in_day_block │ │ │ │ ├── __init__.py │ │ │ │ ├── archive.py │ │ │ │ ├── create_for_inbox_task.py │ │ │ │ ├── load.py │ │ │ │ ├── remove.py │ │ │ │ └── update.py │ │ ├── get_summaries.py │ │ ├── infra │ │ │ ├── __init__.py │ │ │ ├── mutation_use_case_invocation_record_repository.py │ │ │ ├── persistent_mutation_use_case_recoder.py │ │ │ ├── realms.py │ │ │ ├── storage_engine.py │ │ │ └── use_cases.py │ │ ├── load_progress_reporter_token.py │ │ ├── load_top_level_info.py │ │ ├── login.py │ │ └── test_helper │ │ │ ├── __init__.py │ │ │ ├── clear_all.py │ │ │ ├── remove_all.py │ │ │ └── workspace_set_feature.py │ │ └── utils │ │ ├── __init__.py │ │ ├── feature_flag_controls.py │ │ ├── global_properties.py │ │ ├── noop_use_case.py │ │ ├── progress_reporter.py │ │ └── time_provider.py ├── migrations │ ├── alembic.ini │ ├── env.py │ ├── script.py.mako │ └── versions │ │ ├── 2022_02_24_20_33_reset_initial_migrations.py │ │ ├── 2022_03_18_23_52_add_the_push_integration_group_table.py │ │ ├── 2022_03_24_22_28_add_tables_for_slack_tasks.py │ │ ├── 2022_03_24_23_20_modify_inbox_tasks_with_column.py │ │ ├── 2022_03_25_18_58_alter_nullable_slack_table.py │ │ ├── 2022_03_29_23_36_add_column_notes.py │ │ ├── 2022_07_12_22_53_add_collection_item_block_links_table.py │ │ ├── 2022_07_23_00_05_add_api_token_to_notion_connection.py │ │ ├── 2022_07_23_00_10_backfill_notion_api_token_with_a_dumb_.py │ │ ├── 2022_10_22_19_02_add_tables_for_email_tasks.py │ │ ├── 2022_10_22_19_04_modify_inbox_tasks_with_email_tasks.py │ │ ├── 2023_04_21_00_08_drop_notion_tables.py │ │ ├── 2023_04_22_16_29_drop_notion_link_uuid_columns.py │ │ ├── 2023_06_01_14_43_add_all_the_user_and_auth_tables.py │ │ ├── 2023_06_16_22_47_add_avatar_to_users.py │ │ ├── 2023_06_19_14_17_drop_timezone_from_workspace.py │ │ ├── 2023_06_19_15_51_drop_key_columns.py │ │ ├── 2023_06_19_18_27_update_use_case_invocation_record.py │ │ ├── 2023_07_01_23_34_add_feature_flags_column_to_workspace.py │ │ ├── 2023_08_05_16_36_add_search_tables.py │ │ ├── 2023_08_17_21_48_add_user_feature_flags_column.py │ │ ├── 2023_08_18_12_58_add_gamification_scores_tables.py │ │ ├── 2023_08_19_19_02_backfill_gamification_tables.py │ │ ├── 2023_08_25_08_44_notes_tables.py │ │ ├── 2023_08_25_08_49_backfill_notes_collection.py │ │ ├── 2023_09_03_17_55_add_period_best_table.py │ │ ├── 2023_10_07_23_20_add_inbox_task_and_big_plan_cnt_to_.py │ │ ├── 2023_10_07_23_47_add_inbox_task_and_big_plan_cnt_to_.py │ │ ├── 2023_10_08_19_21_create_a_new_index_for_stats_by_created_.py │ │ ├── 2023_10_14_17_25_add_lucky_puppy_column.py │ │ ├── 2023_11_18_19_21_backfill_entities_that_were_archived_.py │ │ ├── 2023_11_19_14_10_create_gc_log_tables.py │ │ ├── 2023_11_19_14_15_backfill_gc_log_tables.py │ │ ├── 2023_11_26_10_46_backfill_notes_properties.py │ │ ├── 2023_12_01_15_30_the_gen_tables.py │ │ ├── 2023_12_01_15_33_backfill_gen_tables.py │ │ ├── 2023_12_02_21_53_backfill_notes.py │ │ ├── 2023_12_03_16_59_move_notes_into_separate_tables.py │ │ ├── 2023_12_03_19_08_create_index_on_note_source_and_source_.py │ │ ├── 2023_12_03_19_13_drop_notes_column.py │ │ ├── 2023_12_16_15_53_create_docs_tables.py │ │ ├── 2023_12_16_15_56_backfill_doc_collection.py │ │ ├── 2023_12_16_16_03_create_new_note_tables.py │ │ ├── 2023_12_16_16_49_migrate_search_index.py │ │ ├── 2023_12_16_16_54_backfill_docs_features.py │ │ ├── 2023_12_16_23_21_rename_docs_to_doc.py │ │ ├── 2023_12_23_18_22_fix_some_issues_with_gc_and_gen_logs.py │ │ ├── 2023_12_30_23_33_fix_some_borked_dataz.py │ │ ├── 2023_12_31_11_33_add_journal_links_to_inbox_tasks.py │ │ ├── 2024_01_03_00_46_create_journal_tables.py │ │ ├── 2024_01_03_00_52_backfill_journal_collection.py │ │ ├── 2024_01_07_16_39_better_indices_on_journal.py │ │ ├── 2024_01_07_16_55_reinstate_old_complex_index_on_journals.py │ │ ├── 2024_01_16_23_59_add_name_column_to_tags.py │ │ ├── 2024_01_17_22_19_gen_params_are_just_json_now_for_persons.py │ │ ├── 2024_01_17_22_22_gen_params_are_just_json_now_for_metrics.py │ │ ├── 2024_01_17_22_40_add_name_column_for_metric_items.py │ │ ├── 2024_01_17_23_41_drop_journals_cause_they_broke.py │ │ ├── 2024_01_18_00_31_add_name_to_notes.py │ │ ├── 2024_01_20_21_18_migrate_journal_collections_ofc.py │ │ ├── 2024_01_20_21_30_move_habits_too.py │ │ ├── 2024_01_20_21_37_add_name_column_to_gen_log_entry.py │ │ ├── 2024_01_21_00_13_add_name_column_to_gc_log_entry.py │ │ ├── 2024_01_21_00_19_move_chores_too.py │ │ ├── 2024_01_21_00_53_add_name_to_slack_tasks.py │ │ ├── 2024_01_21_00_55_add_name_to_email_tasks.py │ │ ├── 2024_01_30_21_51_remove_journals_yet_again.py │ │ ├── 2024_02_18_22_52_add_name_to_gamification_score_log_entry.py │ │ ├── 2024_03_16_22_12_create_working_mem_tables.py │ │ ├── 2024_03_16_22_21_backfill_working_mem_collection.py │ │ ├── 2024_03_16_22_25_add_cleanup_task_column_to_inbox_tasks.py │ │ ├── 2024_03_21_00_44_backup_feature_working_mem.py │ │ ├── 2024_03_22_22_39_add_parent_field_to_projects.py │ │ ├── 2024_03_24_09_28_create_the_root_project_and_assign_.py │ │ ├── 2024_03_24_17_36_add_project_column_for_order_of_children.py │ │ ├── 2024_03_24_17_49_backfill_children_for_projects.py │ │ ├── 2024_03_24_17_51_backfill_children_for_projects_redux.py │ │ ├── 2024_03_31_15_51_fix_just_the_one_instance_of_projects.py │ │ ├── 2024_05_06_17_12_add_time_plan_tables.py │ │ ├── 2024_05_06_17_29_backfill_time_plan_stuff.py │ │ ├── 2024_05_18_12_47_add_a_completed_time_index_on_inbox_.py │ │ ├── 2024_05_18_12_49_add_a_completed_time_index_on_big_plans.py │ │ ├── 2024_05_28_18_55_backfill_dates_for_time_plans.py │ │ ├── 2024_06_01_20_42_relax_constraints_on_time_plans.py │ │ ├── 2024_06_17_21_34_create_index_on_target_and_target_ref_.py │ │ ├── 2024_07_07_16_47_create_time_events_tables.py │ │ ├── 2024_07_07_16_56_backfill_time_events_tables.py │ │ ├── 2024_07_07_18_50_create_calendar_structures.py │ │ ├── 2024_07_07_19_07_backfill_calendar_data.py │ │ ├── 2024_09_11_23_44_backfill_vacation_time_events.py │ │ ├── 2024_09_15_16_43_add_source_and_external_uid_fields_to_.py │ │ ├── 2024_09_16_00_14_add_tables_for_sync_log_entries.py │ │ ├── 2024_09_20_09_52_add_column_for_more_log_entries.py │ │ ├── 2024_09_21_11_42_drop_timezone_column_in_time_events.py │ │ ├── 2024_09_23_23_45_add_new_columns_to_schedule_sync_log_.py │ │ ├── 2024_12_23_00_19_add_new_category_field_to_user.py │ │ ├── 2025_01_19_20_30_update_tasks_of_not_started_status.py │ │ ├── 2025_01_19_20_45_update_big_plans_of_not_started_status.py │ │ ├── 2025_01_19_21_11_statuses_for_inbox_tasks_and_big_plans.py │ │ ├── 2025_01_19_21_37_drop_accepted_time_columns.py │ │ ├── 2025_01_19_23_11_update_reports_in_journals_too.py │ │ ├── 2025_01_25_18_17_backfill_missed_schedule_rows.py │ │ ├── 2025_02_01_17_37_no_more_default_difficulty.py │ │ ├── 2025_02_02_20_45_no_more_default_eisen.py │ │ ├── 2025_02_07_22_42_change_skip_rule_from_none_to_null.py │ │ ├── 2025_02_07_23_06_backfill_skip_rule_in_gen_params.py │ │ ├── 2025_02_08_15_12_new_structure_for_skip_rules.py │ │ ├── 2025_02_09_10_18_add_journals_skip_rule.py │ │ ├── 2025_02_16_10_11_unify_a_single_source_for_inbox_tasks.py │ │ ├── 2025_02_16_17_21_create_an_index_for_pagination.py │ │ ├── 2025_02_22_08_24_rework_indexes_for_journals.py │ │ ├── 2025_03_01_17_25_backfill_repeats_strategy.py │ │ ├── 2025_03_21_23_28_fix_borked_dates.py │ │ ├── 2025_04_11_23_49_add_archived_reason_field.py │ │ ├── 2025_04_17_09_32_add_new_columns.py │ │ ├── 2025_04_23_16_28_add_fields_for_journals.py │ │ ├── 2025_04_24_00_07_add_eisen_and_difficulty_for_big_plans.py │ │ ├── 2025_04_24_12_38_add_den_count_fields_to_big_plans.py │ │ ├── 2025_04_24_20_59_add_structures_for_stats.py │ │ ├── 2025_04_25_23_45_add_structures_for_journal_stats.py │ │ ├── 2025_04_26_20_27_add_structures_for_habit_streaks.py │ │ ├── 2025_04_26_21_32_use_0_as_recurring_repeat_index.py │ │ ├── 2025_05_02_23_01_add_structures_for_home_config.py │ │ ├── 2025_05_04_19_23_add_is_key_field_to_entities.py │ │ └── 2025_05_09_21_10_add_fields_for_home_config.py ├── poetry.lock ├── pycparser-2.22-py3-none-any.whl ├── pyproject.toml └── tests │ ├── __init__.py │ ├── domain │ ├── __init__.py │ └── core │ │ ├── __init__.py │ │ ├── test_habit_repeats_strategy.py │ │ ├── test_recurring_task_due_at_time_inc.py │ │ ├── test_recurring_task_period.py │ │ ├── test_recurring_task_skip_rule.py │ │ ├── test_schedules.py │ │ ├── test_sync_target.py │ │ ├── test_tag_name.py │ │ ├── test_timeline.py │ │ ├── test_timezone.py │ │ └── test_url.py │ └── test_time_provider.py ├── desktop ├── Config.project ├── Config.project.live.mac-store ├── Config.project.live.mac-web ├── README.md ├── assets │ ├── jupiter.icns │ └── logo.png ├── forge.config.common.cjs ├── forge.config.mac-store.cjs ├── forge.config.mac-web.cjs ├── main.js ├── package-lock.json ├── package.json ├── src │ ├── config.js │ ├── error.html │ ├── index.html │ ├── index.js │ └── preload.js └── vite.config.ts ├── docs ├── README.md ├── material │ ├── assets │ │ ├── accounts-account.png │ │ ├── accounts-change-password.png │ │ ├── accounts-where-to.png │ │ ├── big-plans-update.png │ │ ├── calendar-event-view.png │ │ ├── calendar-view-calendar-monthly.png │ │ ├── calendar-view-schedule-weekly.png │ │ ├── calendar-view-schedule-yearly.png │ │ ├── chores-inbox-task.png │ │ ├── chores-overview.png │ │ ├── chores-update.png │ │ ├── concepts-big-plan-states.png │ │ ├── concepts-task-states.png │ │ ├── favicon.ico │ │ ├── gamification-account-creation.png │ │ ├── gamification-history.png │ │ ├── gamification-menu.png │ │ ├── gamification-overview.png │ │ ├── gc.png │ │ ├── gen.png │ │ ├── habits-inbox-task.png │ │ ├── habits-overview.png │ │ ├── habits-update.png │ │ ├── inbox-tasks-swiftview.png │ │ ├── inbox-tasks-update.png │ │ ├── index-big-plans-timeline.png │ │ ├── index-inbox-mobile.png │ │ ├── index-inbox.png │ │ ├── install-release.png │ │ ├── journal-update.png │ │ ├── journals-overview.png │ │ ├── jupiter.png │ │ ├── metrics-entry-update.png │ │ ├── metrics-list.png │ │ ├── metrics-overview.png │ │ ├── metrics-settings.png │ │ ├── metrics-update.png │ │ ├── persons-overview.png │ │ ├── persons-settings.png │ │ ├── persons-update.png │ │ ├── pomodoro-timer.png │ │ ├── projects-overview.png │ │ ├── projects-update.png │ │ ├── recover-account-form.png │ │ ├── recover-account-login.png │ │ ├── report-form.png │ │ ├── report-global.png │ │ ├── report-streaks.png │ │ ├── search-quick.png │ │ ├── search.png │ │ ├── self-hosted-domain.png │ │ ├── self-hosting-pick-server.png │ │ ├── showcase │ │ │ ├── showcase-calendar.png │ │ │ ├── showcase-inbox-tasks.png │ │ │ ├── showcase-metrics.png │ │ │ └── showcase-timeplan.png │ │ ├── smart-lists-item-update.png │ │ ├── smart-lists-list.png │ │ ├── smart-lists-overview.png │ │ ├── smart-lists-update.png │ │ ├── stylesheet.css │ │ ├── time-plans-overview.png │ │ ├── tutorial-after-new-task-creation.png │ │ ├── tutorial-empty-workspace.png │ │ ├── tutorial-go-to-workspace.png │ │ ├── tutorial-init.png │ │ ├── tutorial-new-inbox-task.png │ │ ├── tutorial-task-kanban.png │ │ ├── user-feature-flags-overview.png │ │ ├── vacations-overview.png │ │ ├── vacations-update.png │ │ ├── workspace-feature-flags-overview.png │ │ ├── workspaces-update.png │ │ └── workspaces.png │ ├── concepts │ │ ├── accounts.md │ │ ├── archival-and-removal.md │ │ ├── big-plans.md │ │ ├── calendar.md │ │ ├── chores.md │ │ ├── clients.md │ │ ├── feature-flags.md │ │ ├── gamification.md │ │ ├── garbage-collection.md │ │ ├── habits.md │ │ ├── home-page.md │ │ ├── hosting-options.md │ │ ├── inbox-tasks.md │ │ ├── journals.md │ │ ├── metrics.md │ │ ├── overview.md │ │ ├── persons.md │ │ ├── projects.md │ │ ├── reporting.md │ │ ├── smart-lists.md │ │ ├── stats.md │ │ ├── tasks-generation.md │ │ ├── time-plans.md │ │ ├── vacations.md │ │ ├── working-mem.md │ │ └── workspaces.md │ ├── features.md │ ├── how-tos │ │ ├── do-garbage-collection.md │ │ ├── install.md │ │ ├── recover-your-account.md │ │ └── self-hosting.md │ ├── index.md │ ├── releases │ │ ├── version-0.0.1.md │ │ ├── version-0.0.2.md │ │ ├── version-0.0.3.md │ │ ├── version-0.0.4.md │ │ ├── version-0.0.5.md │ │ ├── version-0.1.0.md │ │ ├── version-0.1.1.md │ │ ├── version-0.1.2.md │ │ ├── version-0.1.3.md │ │ ├── version-0.1.4.md │ │ ├── version-0.1.5.md │ │ ├── version-0.1.6.md │ │ ├── version-0.10.0.md │ │ ├── version-0.10.1.md │ │ ├── version-0.2.0.md │ │ ├── version-0.3.0.md │ │ ├── version-0.4.2.md │ │ ├── version-0.5.0.md │ │ ├── version-0.5.1.md │ │ ├── version-0.6.0.md │ │ ├── version-0.6.1.md │ │ ├── version-0.7.0.md │ │ ├── version-0.8.0.md │ │ ├── version-0.9.0.md │ │ ├── version-1.0.3.md │ │ ├── version-1.0.4.md │ │ ├── version-1.0.5.md │ │ ├── version-1.0.6.md │ │ ├── version-1.1.0.md │ │ ├── version-1.1.1.md │ │ ├── version-1.1.2.md │ │ ├── version-1.1.3.md │ │ ├── version-1.1.4.md │ │ └── version-1.2.0.md │ ├── roadmap.md │ ├── tools │ │ ├── pomodoro-timer.md │ │ └── search.md │ └── tutorial.md ├── mkdocs.yml ├── poetry.lock └── pyproject.toml ├── mobile ├── Config.project ├── Config.project.live ├── PrivacyInfo.xcprivacy ├── README.md ├── android │ ├── app │ │ ├── build.gradle │ │ ├── capacitor.build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── io │ │ │ │ └── jupiter │ │ │ │ └── app │ │ │ │ └── MainActivity.java │ │ │ └── res │ │ │ ├── drawable-land-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-land-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-night-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-land-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-night │ │ │ └── splash.png │ │ │ ├── drawable-port-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-port-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-ldpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-night-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-port-xxxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── splash.png │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-ldpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── file_paths.xml │ ├── build.gradle │ ├── capacitor.settings.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── variables.gradle ├── assets │ └── logo.png ├── capacitor.config.ts ├── config.yaml ├── ios │ └── App │ │ ├── App.xcodeproj │ │ └── project.pbxproj │ │ ├── App.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── App │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── AppIcon-512@2x.png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── Splash.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Default@1x~universal~anyany-dark.png │ │ │ │ ├── Default@1x~universal~anyany.png │ │ │ │ ├── Default@2x~universal~anyany-dark.png │ │ │ │ ├── Default@2x~universal~anyany.png │ │ │ │ ├── Default@3x~universal~anyany-dark.png │ │ │ │ └── Default@3x~universal~anyany.png │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ └── Info.plist │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── PrivacyInfo.xcprivacy │ │ └── archive.plist ├── package-lock.json ├── package.json ├── src │ ├── config.js │ ├── error.html │ ├── index.html │ └── index.js └── vite.config.ts ├── webapi ├── Config.project ├── Config.project.live ├── Dockerfile ├── README.md ├── jupiter │ └── webapi │ │ ├── __init__.py │ │ ├── app.py │ │ ├── exceptions.py │ │ ├── jupiter.py │ │ ├── time_provider.py │ │ └── websocket_progress_reporter.py ├── poetry.lock ├── pyproject.toml ├── tests │ ├── __init__.py │ └── test_webapi.py └── typescript └── webui ├── Config.project ├── Config.project.live ├── Dockerfile ├── README.md ├── app ├── api-clients.server.ts ├── components │ ├── domain │ │ ├── application │ │ │ ├── auth │ │ │ │ └── password.tsx │ │ │ ├── calendar │ │ │ │ ├── calendar-daily-widget.tsx │ │ │ │ ├── schedule-daily-widget.tsx │ │ │ │ ├── shared.tsx │ │ │ │ ├── time-event-full-days-block-card.tsx │ │ │ │ ├── time-event-full-days-block-stack.tsx │ │ │ │ ├── time-event-in-day-block-card.tsx │ │ │ │ ├── time-event-in-day-block-stack.tsx │ │ │ │ ├── time-event-params-new-placeholder.tsx │ │ │ │ ├── time-event-params-source.tsx │ │ │ │ ├── time-event-source-link.tsx │ │ │ │ ├── view-as-calendar-daily.tsx │ │ │ │ ├── view-as-calendar-monthly.tsx │ │ │ │ ├── view-as-calendar-quarterly.tsx │ │ │ │ ├── view-as-calendar-weekly.tsx │ │ │ │ ├── view-as-calendar-yearly.tsx │ │ │ │ ├── view-as-schedule-daily-and-weekly.tsx │ │ │ │ └── view-as-schedule-monthly-quarterly-and-yearly.tsx │ │ │ ├── gamification │ │ │ │ ├── score-history.tsx │ │ │ │ ├── score-overview.tsx │ │ │ │ └── score-snackbar-manager.tsx │ │ │ ├── home │ │ │ │ ├── common.tsx │ │ │ │ └── home-tab-target-select.tsx │ │ │ ├── search │ │ │ │ └── show-report.tsx │ │ │ └── workspace │ │ │ │ └── feature-flags-editor.tsx │ │ ├── concept │ │ │ ├── big-plan │ │ │ │ ├── big-plan-card.tsx │ │ │ │ ├── big-plan-done-pct-tag.tsx │ │ │ │ ├── big-plan-stack.tsx │ │ │ │ ├── big-plan-status-big-tag.tsx │ │ │ │ ├── big-plan-status-tag.tsx │ │ │ │ ├── big-plan-tag.tsx │ │ │ │ ├── big-plan-timeline-big-screen.tsx │ │ │ │ └── big-plan-timeline-small-screen.tsx │ │ │ ├── chore │ │ │ │ └── chore-tag.tsx │ │ │ ├── doc │ │ │ │ └── doc-editor.tsx │ │ │ ├── email-task │ │ │ │ └── email-task-tag.tsx │ │ │ ├── habit │ │ │ │ ├── habit-inbox-tasks-widget.tsx │ │ │ │ ├── habit-key-habit-streak-widget.tsx │ │ │ │ ├── habit-repeat-strategy-select.tsx │ │ │ │ ├── habit-select-single.tsx │ │ │ │ ├── habit-streak-calendar.tsx │ │ │ │ └── habit-tag.tsx │ │ │ ├── inbox-task │ │ │ │ ├── inbox-task-card.tsx │ │ │ │ ├── inbox-task-properties-editor.tsx │ │ │ │ ├── inbox-task-source-link.tsx │ │ │ │ ├── inbox-task-source-tag.tsx │ │ │ │ ├── inbox-task-stack.tsx │ │ │ │ ├── inbox-task-status-big-tag.tsx │ │ │ │ ├── inbox-task-status-tag.tsx │ │ │ │ ├── inbox-tasks-no-nothing-card.tsx │ │ │ │ └── inbox-tasks-no-tasks-card.tsx │ │ │ ├── journal │ │ │ │ ├── journal-source-tag.tsx │ │ │ │ └── journal-stack.tsx │ │ │ ├── metric │ │ │ │ └── metric-tag.tsx │ │ │ ├── motd │ │ │ │ └── motd-widget.tsx │ │ │ ├── person │ │ │ │ ├── person-birthday-tag.tsx │ │ │ │ ├── person-relationship-tag.tsx │ │ │ │ └── person-tag.tsx │ │ │ ├── project │ │ │ │ ├── project-select.tsx │ │ │ │ └── project-tag.tsx │ │ │ ├── schedule │ │ │ │ ├── schedule-stream-color-input.tsx │ │ │ │ ├── schedule-stream-color-tag.tsx │ │ │ │ ├── schedule-stream-multi-select.tsx │ │ │ │ └── schedule-stream-select.tsx │ │ │ ├── slack-task │ │ │ │ └── slack-task-tag.tsx │ │ │ ├── smart-list │ │ │ │ └── smart-list-tag-tag.tsx │ │ │ ├── time-plan │ │ │ │ ├── time-plan-activity-card.tsx │ │ │ │ ├── time-plan-activity-feasability-select.tsx │ │ │ │ ├── time-plan-activity-feasability-tag.tsx │ │ │ │ ├── time-plan-activity-kind-select.tsx │ │ │ │ ├── time-plan-activity-kind-tag.tsx │ │ │ │ ├── time-plan-activity-list.tsx │ │ │ │ ├── time-plan-by-project-activities.tsx │ │ │ │ ├── time-plan-card.tsx │ │ │ │ ├── time-plan-generation-approach-select.tsx │ │ │ │ ├── time-plan-merged-activities.tsx │ │ │ │ ├── time-plan-source-tag.tsx │ │ │ │ ├── time-plan-stack.tsx │ │ │ │ ├── time-plan-tag.tsx │ │ │ │ └── time-plan-view-widget.tsx │ │ │ └── working-mem │ │ │ │ └── working-mem-tag.tsx │ │ └── core │ │ │ ├── adate-tag.tsx │ │ │ ├── difficulty-select.tsx │ │ │ ├── difficulty-tag.tsx │ │ │ ├── eisen-tag.tsx │ │ │ ├── eisenhower-select.tsx │ │ │ ├── is-key-select.tsx │ │ │ ├── is-key-tag.tsx │ │ │ ├── period-select.tsx │ │ │ ├── period-tag.tsx │ │ │ ├── recurring-task-gen-params-block.tsx │ │ │ ├── recurring-task-skip-rule-block.tsx │ │ │ ├── sync-target-select.tsx │ │ │ ├── sync-target-tag.tsx │ │ │ ├── tags-editor.tsx │ │ │ ├── time-diff-tag.tsx │ │ │ └── timezone-select.tsx │ ├── home │ │ ├── row-and-col-selector.tsx │ │ ├── widget-dimension-selector.tsx │ │ ├── widget-placement-quick-selector.tsx │ │ └── widget-type-selector.tsx │ └── infra │ │ ├── block-editor.tsx │ │ ├── check.tsx │ │ ├── chips.tsx │ │ ├── client-only.tsx │ │ ├── community-link.tsx │ │ ├── discord-icon.tsx │ │ ├── discord.svg │ │ ├── docs-help.tsx │ │ ├── entity-actions-header.tsx │ │ ├── entity-card.tsx │ │ ├── entity-icon.tsx │ │ ├── entity-name.tsx │ │ ├── entity-no-nothing-card.tsx │ │ ├── entity-note-editor.tsx │ │ ├── entity-stack.tsx │ │ ├── entity-summary-link.tsx │ │ ├── env-banner.tsx │ │ ├── error-boundary.tsx │ │ ├── errors.tsx │ │ ├── event-source-tag.tsx │ │ ├── icon-selector.tsx │ │ ├── layout │ │ ├── branch-panel.tsx │ │ ├── extra-controls.tsx │ │ ├── leaf-panel.tsx │ │ ├── lifecycle-panel.tsx │ │ ├── nesting-aware-block.tsx │ │ ├── standalone-container.tsx │ │ ├── tool-panel.tsx │ │ ├── trunk-panel.tsx │ │ └── workspace-container.tsx │ │ ├── link-tag.tsx │ │ ├── logo.tsx │ │ ├── named-entity-tag-select.tsx │ │ ├── progress-reporter.tsx │ │ ├── release-update-widget.tsx │ │ ├── search-box.tsx │ │ ├── section-actions.tsx │ │ ├── section-card-new.tsx │ │ ├── sidebar.tsx │ │ ├── smart-appbar.tsx │ │ ├── standard-divider.tsx │ │ ├── standard-link.tsx │ │ ├── tab-panel.tsx │ │ └── title.tsx ├── entry.client.tsx ├── entry.server.tsx ├── global-properties-client.ts ├── global-properties-server.ts ├── logic │ ├── action-result.ts │ ├── domain │ │ ├── adate.ts │ │ ├── big-plan-status.ts │ │ ├── big-plan.ts │ │ ├── chore.ts │ │ ├── difficulty.ts │ │ ├── eisen.ts │ │ ├── email-task.ts │ │ ├── entity-tag.ts │ │ ├── env.ts │ │ ├── event-source.ts │ │ ├── feature.ts │ │ ├── gamification │ │ │ ├── scores.server.ts │ │ │ └── scores.ts │ │ ├── habit-repeat-strategy.ts │ │ ├── habit.ts │ │ ├── home-tab-target.ts │ │ ├── hosting.ts │ │ ├── inbox-task-source.ts │ │ ├── inbox-task-status.ts │ │ ├── inbox-task.ts │ │ ├── infer-sync-target.ts │ │ ├── is-key.ts │ │ ├── journal-source.ts │ │ ├── journal.ts │ │ ├── metric-entry.ts │ │ ├── navigation.ts │ │ ├── notes.ts │ │ ├── period.ts │ │ ├── person-birthday.ts │ │ ├── person-relationship.ts │ │ ├── project.ts │ │ ├── recurring-task-skip-rule.ts │ │ ├── schedule-event-full-days.ts │ │ ├── schedule-event-in-day.ts │ │ ├── schedule-stream-color.ts │ │ ├── schedule-stream.ts │ │ ├── slack-task.ts │ │ ├── sync-target.ts │ │ ├── time-event.ts │ │ ├── time-plan-activity-feasability.ts │ │ ├── time-plan-activity-kind.ts │ │ ├── time-plan-activity.ts │ │ ├── time-plan-generation-approach.ts │ │ ├── time-plan-source.ts │ │ ├── time-plan.ts │ │ ├── timestamp.ts │ │ ├── user.ts │ │ ├── vacation.ts │ │ ├── working-mem.ts │ │ └── workspace.ts │ ├── field-names.ts │ ├── frontdoor.server.ts │ ├── frontdoor.ts │ ├── home-tab.ts │ ├── intent.ts │ ├── release.ts │ ├── select.ts │ └── widget.ts ├── names.ts ├── rendering │ ├── actionable-time.ts │ ├── leaf-panel-expansion.ts │ ├── routes.ts │ ├── scroll-restoration.ts │ ├── standard-should-revalidate.ts │ ├── use-big-screen.ts │ ├── use-hidrated.ts │ ├── use-loader-data-for-animation.ts │ └── use-nested-entities.ts ├── root.tsx ├── routes │ ├── app.tsx │ ├── app │ │ ├── index.tsx │ │ ├── init.tsx │ │ ├── login.tsx │ │ ├── logout.tsx │ │ ├── pick-server │ │ │ └── desktop.tsx │ │ ├── render-fix.tsx │ │ ├── reset-password.tsx │ │ ├── show-recovery-token.tsx │ │ ├── workspace.tsx │ │ └── workspace │ │ │ ├── account.tsx │ │ │ ├── big-plans.tsx │ │ │ ├── big-plans │ │ │ ├── $id.tsx │ │ │ ├── new.tsx │ │ │ └── update-status.tsx │ │ │ ├── calendar.tsx │ │ │ ├── calendar │ │ │ ├── schedule │ │ │ │ ├── event-full-days │ │ │ │ │ ├── $id.tsx │ │ │ │ │ └── new.tsx │ │ │ │ ├── event-in-day │ │ │ │ │ ├── $id.tsx │ │ │ │ │ └── new.tsx │ │ │ │ ├── stream.tsx │ │ │ │ └── stream │ │ │ │ │ ├── $id.tsx │ │ │ │ │ ├── new-external.tsx │ │ │ │ │ └── new.tsx │ │ │ ├── settings.tsx │ │ │ └── time-event │ │ │ │ ├── full-days-block │ │ │ │ └── $id.tsx │ │ │ │ └── in-day-block │ │ │ │ ├── $id.tsx │ │ │ │ └── new-for-inbox-task.tsx │ │ │ ├── chores.tsx │ │ │ ├── chores │ │ │ ├── $id.tsx │ │ │ └── new.tsx │ │ │ ├── core │ │ │ └── notes │ │ │ │ └── update.tsx │ │ │ ├── docs.tsx │ │ │ ├── docs │ │ │ ├── $id.tsx │ │ │ ├── create-action.tsx │ │ │ ├── new.tsx │ │ │ └── update-action.tsx │ │ │ ├── gamification.tsx │ │ │ ├── habits.tsx │ │ │ ├── habits │ │ │ ├── $id.tsx │ │ │ └── new.tsx │ │ │ ├── home │ │ │ ├── settings.tsx │ │ │ └── settings │ │ │ │ └── tabs │ │ │ │ ├── $id.tsx │ │ │ │ ├── $id │ │ │ │ ├── details.tsx │ │ │ │ └── widgets │ │ │ │ │ ├── $widgetId.tsx │ │ │ │ │ └── new.tsx │ │ │ │ └── new.tsx │ │ │ ├── inbox-tasks.tsx │ │ │ ├── inbox-tasks │ │ │ ├── $id.tsx │ │ │ ├── new.tsx │ │ │ └── update-status-and-eisen.tsx │ │ │ ├── index.tsx │ │ │ ├── journals.tsx │ │ │ ├── journals │ │ │ ├── $id.tsx │ │ │ ├── new.tsx │ │ │ └── settings.tsx │ │ │ ├── metrics.tsx │ │ │ ├── metrics │ │ │ ├── $id.tsx │ │ │ ├── $id │ │ │ │ ├── details.tsx │ │ │ │ └── entries │ │ │ │ │ ├── $entryId.tsx │ │ │ │ │ └── new.tsx │ │ │ ├── new.tsx │ │ │ └── settings.tsx │ │ │ ├── persons.tsx │ │ │ ├── persons │ │ │ ├── $id.tsx │ │ │ ├── new.tsx │ │ │ └── settings.tsx │ │ │ ├── projects.tsx │ │ │ ├── projects │ │ │ ├── $id.tsx │ │ │ └── new.tsx │ │ │ ├── push-integrations │ │ │ ├── email-tasks.tsx │ │ │ ├── email-tasks │ │ │ │ ├── $id.tsx │ │ │ │ └── settings.tsx │ │ │ ├── slack-tasks.tsx │ │ │ └── slack-tasks │ │ │ │ ├── $id.tsx │ │ │ │ └── settings.tsx │ │ │ ├── security.tsx │ │ │ ├── settings.tsx │ │ │ ├── smart-lists.tsx │ │ │ ├── smart-lists │ │ │ ├── $id │ │ │ │ ├── items.tsx │ │ │ │ ├── items │ │ │ │ │ ├── $itemId.tsx │ │ │ │ │ ├── details.tsx │ │ │ │ │ └── new.tsx │ │ │ │ ├── tags.tsx │ │ │ │ └── tags │ │ │ │ │ ├── $tagId.tsx │ │ │ │ │ └── new.tsx │ │ │ └── new.tsx │ │ │ ├── time-plans.tsx │ │ │ ├── time-plans │ │ │ ├── $id.tsx │ │ │ ├── $id │ │ │ │ ├── $activityId.tsx │ │ │ │ ├── add-from-current-big-plans.tsx │ │ │ │ ├── add-from-current-inbox-tasks.tsx │ │ │ │ ├── add-from-current-time-plans │ │ │ │ │ └── $otherTimePlanId.tsx │ │ │ │ └── add-from-generated-inbox-tasks.tsx │ │ │ ├── new.tsx │ │ │ └── settings.tsx │ │ │ ├── tools.tsx │ │ │ ├── tools │ │ │ ├── gc.tsx │ │ │ ├── gen.tsx │ │ │ ├── pomodoro.tsx │ │ │ ├── report.tsx │ │ │ ├── search.tsx │ │ │ └── stats.tsx │ │ │ ├── vacations.tsx │ │ │ ├── vacations │ │ │ ├── $id.tsx │ │ │ └── new.tsx │ │ │ ├── working-mem.tsx │ │ │ └── working-mem │ │ │ ├── archive.tsx │ │ │ ├── archive │ │ │ └── $id.tsx │ │ │ └── settings.tsx │ ├── apps-latest-versions.tsx │ ├── frontdoor.tsx │ ├── healthz.tsx │ ├── index.tsx │ ├── pwa-manifest.tsx │ └── release-manifest.tsx ├── secure.ts ├── sessions.ts ├── state │ └── entites-in-flux.ts ├── styles │ └── editorjs-tweaks.css ├── top-level-context.ts └── utils.ts ├── editorjs.d.ts ├── from-electron.d.ts ├── npm ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── frontdoor-redirect-hack-init.html ├── frontdoor-redirect-hack-workspace.html ├── logo.png └── pomodoro-notification.mp3 ├── remix.config.js ├── remix.env.d.ts └── tsconfig.json /.eslintignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules 3 | .pnp 4 | .pnp.js 5 | 6 | # testing 7 | coverage 8 | 9 | # production 10 | build 11 | .cache 12 | 13 | # misc 14 | .DS_Store 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | 19 | src/webui/remix.config.js -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 22.14 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules 3 | .pnp 4 | .pnp.js 5 | 6 | # testing 7 | coverage 8 | 9 | # production 10 | build 11 | .cache 12 | 13 | # misc 14 | .DS_Store 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.13.0 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source "https://rubygems.org" 4 | 5 | gem "mdl", "~> 0.11.0" 6 | -------------------------------------------------------------------------------- /assets/desc.txt: -------------------------------------------------------------------------------- 1 | Thrive is a tool for life planning. It provides goals management, task tracking, habit building, chores management, lists, metrics, a personal relationship manager, and much more all in a unified package. 2 | -------------------------------------------------------------------------------- /assets/jupiter-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/jupiter-512.png -------------------------------------------------------------------------------- /assets/jupiter.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/jupiter.icns -------------------------------------------------------------------------------- /assets/jupiter.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/jupiter.ico -------------------------------------------------------------------------------- /assets/jupiter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/jupiter.png -------------------------------------------------------------------------------- /assets/jupiter.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/jupiter.xcf -------------------------------------------------------------------------------- /assets/palette.yaml: -------------------------------------------------------------------------------- 1 | palette: 2 | mode: light 3 | primary: 4 | main: '#3F51B5' 5 | light: '#7986CB' 6 | dark: '#303F9F' 7 | secondary: 8 | main: '#FF4081' 9 | light: '#FF79B0' 10 | dark: '#C60055' 11 | divider: '#E0E0E0' 12 | text: 13 | primary: '#212121' 14 | secondary: '#757575' 15 | disabled: '#BDBDBD' 16 | -------------------------------------------------------------------------------- /assets/showcase-android-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-android-feature.png -------------------------------------------------------------------------------- /assets/showcase-desktop-calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-desktop-calendar.png -------------------------------------------------------------------------------- /assets/showcase-desktop-inbox-tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-desktop-inbox-tasks.png -------------------------------------------------------------------------------- /assets/showcase-desktop-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-desktop-metrics.png -------------------------------------------------------------------------------- /assets/showcase-desktop-timeplan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-desktop-timeplan.png -------------------------------------------------------------------------------- /assets/showcase-ipad-calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-ipad-calendar.png -------------------------------------------------------------------------------- /assets/showcase-ipad-inbox-tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-ipad-inbox-tasks.png -------------------------------------------------------------------------------- /assets/showcase-ipad-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-ipad-metrics.png -------------------------------------------------------------------------------- /assets/showcase-ipad-timeplan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-ipad-timeplan.png -------------------------------------------------------------------------------- /assets/showcase-iphone-calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-iphone-calendar.png -------------------------------------------------------------------------------- /assets/showcase-iphone-inbox-tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-iphone-inbox-tasks.png -------------------------------------------------------------------------------- /assets/showcase-iphone-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-iphone-metrics.png -------------------------------------------------------------------------------- /assets/showcase-iphone-timeplan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/assets/showcase-iphone-timeplan.png -------------------------------------------------------------------------------- /gen/py/webapi-client/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | build/ 3 | dist/ 4 | *.egg-info/ 5 | .pytest_cache/ 6 | 7 | # pyenv 8 | .python-version 9 | 10 | # Environments 11 | .env 12 | .venv 13 | 14 | # mypy 15 | .mypy_cache/ 16 | .dmypy.json 17 | dmypy.json 18 | 19 | # JetBrains 20 | .idea/ 21 | 22 | /coverage.xml 23 | /.coverage 24 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/__init__.py: -------------------------------------------------------------------------------- 1 | """A client library for accessing Jupiter Webapi""" 2 | 3 | from .client import AuthenticatedClient, Client 4 | 5 | __all__ = ( 6 | "AuthenticatedClient", 7 | "Client", 8 | ) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains methods for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/activity/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/application/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/auth/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/big_plans/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/calendar/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/chores/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/docs/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/email/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/entry/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/event_full_days/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/event_in_day/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/full_days_block/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/gc/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/gen/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/get_summaries/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/habits/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/home/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/in_day_block/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/inbox_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/item/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/journals/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/load_progress_reporter_token/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/load_top_level_info/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/login/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/motd/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/notes/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/persons/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/projects/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/schedule/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/slack/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/smart_lists/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/stats/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/stream/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/tab/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/tag/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/test_helper/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/time_plans/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/users/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/vacations/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/widget/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/working_mem/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/api/workspaces/__init__.py: -------------------------------------------------------------------------------- 1 | """Contains endpoint functions for accessing the API""" 2 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/app_core.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class AppCore(str, Enum): 5 | CLI = "cli" 6 | WEBUI = "webui" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/app_distribution_state.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class AppDistributionState(str, Enum): 5 | IN_REVIEW = "in-review" 6 | NOT_AVAILABLE = "not-available" 7 | READY = "ready" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/app_shell.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class AppShell(str, Enum): 5 | BROWSER = "browser" 6 | CLI = "cli" 7 | DESKTOP_ELECTRON = "desktop-electron" 8 | MOBILE_CAPACITOR = "mobile-capacitor" 9 | PWA = "pwa" 10 | 11 | def __str__(self) -> str: 12 | return str(self.value) 13 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/archival_reason.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ArchivalReason(str, Enum): 5 | GC = "gc" 6 | SYNC = "sync" 7 | USER = "user" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/big_plan_status.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class BigPlanStatus(str, Enum): 5 | BLOCKED = "blocked" 6 | DONE = "done" 7 | IN_PROGRESS = "in-progress" 8 | NOT_DONE = "not-done" 9 | NOT_STARTED = "not-started" 10 | 11 | def __str__(self) -> str: 12 | return str(self.value) 13 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/big_screen_home_tab_widget_placement_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class BigScreenHomeTabWidgetPlacementKind(str, Enum): 5 | BIG_SCREEN = "big-screen" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/bulleted_list_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class BulletedListBlockKind(str, Enum): 5 | BULLETED_LIST = "bulleted-list" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/checklist_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ChecklistBlockKind(str, Enum): 5 | CHECKLIST = "checklist" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/code_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class CodeBlockKind(str, Enum): 5 | CODE = "code" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/difficulty.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class Difficulty(str, Enum): 5 | EASY = "easy" 6 | HARD = "hard" 7 | MEDIUM = "medium" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/divider_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class DividerBlockKind(str, Enum): 5 | DIVIDER = "divider" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/eisen.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class Eisen(str, Enum): 5 | IMPORTANT = "important" 6 | IMPORTANT_AND_URGENT = "important-and-urgent" 7 | REGULAR = "regular" 8 | URGENT = "urgent" 9 | 10 | def __str__(self) -> str: 11 | return str(self.value) 12 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/entity_reference_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class EntityReferenceBlockKind(str, Enum): 5 | ENTITY_REFERENCE = "entity-reference" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/env.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class Env(str, Enum): 5 | LOCAL = "local" 6 | PRODUCTION = "production" 7 | STAGING = "staging" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/feature_control.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class FeatureControl(str, Enum): 5 | ALWAYS_OFF_HOSTING = "always-off-hosting" 6 | ALWAYS_OFF_TECH = "always-off-tech" 7 | ALWAYS_ON = "always-on" 8 | USER = "user" 9 | 10 | def __str__(self) -> str: 11 | return str(self.value) 12 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/habit_repeats_strategy.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class HabitRepeatsStrategy(str, Enum): 5 | ALL_SAME = "all-same" 6 | SPREAD_OUT_NO_OVERLAP = "spread-out-no-overlap" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/heading_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class HeadingBlockKind(str, Enum): 5 | HEADING = "heading" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/home_tab_target.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class HomeTabTarget(str, Enum): 5 | BIG_SCREEN = "big-screen" 6 | SMALL_SCREEN = "small-screen" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/hosting.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class Hosting(str, Enum): 5 | HOSTED_GLOBAL = "hosted-global" 6 | LOCAL = "local" 7 | SELF_HOSTED = "self-hosted" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/journal_generation_approach.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class JournalGenerationApproach(str, Enum): 5 | BOTH_JOURNAL_AND_TASK = "both-journal-and-task" 6 | NONE = "none" 7 | ONLY_JOURNAL = "only-journal" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/journal_source.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class JournalSource(str, Enum): 5 | GENERATED = "generated" 6 | USER = "user" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/link_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class LinkBlockKind(str, Enum): 5 | LINK = "link" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/metric_unit.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class MetricUnit(str, Enum): 5 | COUNT = "count" 6 | MONEY = "money" 7 | WEIGHT = "weight" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/numbered_list_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class NumberedListBlockKind(str, Enum): 5 | NUMBERED_LIST = "numbered-list" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/paragraph_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ParagraphBlockKind(str, Enum): 5 | PARAGRAPH = "paragraph" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/quote_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class QuoteBlockKind(str, Enum): 5 | QUOTE = "quote" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/recurring_task_period.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class RecurringTaskPeriod(str, Enum): 5 | DAILY = "daily" 6 | MONTHLY = "monthly" 7 | QUARTERLY = "quarterly" 8 | WEEKLY = "weekly" 9 | YEARLY = "yearly" 10 | 11 | def __str__(self) -> str: 12 | return str(self.value) 13 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/schedule_source.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ScheduleSource(str, Enum): 5 | EXTERNAL_ICAL = "external-ical" 6 | USER = "user" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/score_source.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ScoreSource(str, Enum): 5 | BIG_PLAN = "big-plan" 6 | INBOX_TASK = "inbox-task" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/small_screen_home_tab_widget_placement_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class SmallScreenHomeTabWidgetPlacementKind(str, Enum): 5 | SMALL_SCREEN = "small-screen" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/table_block_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TableBlockKind(str, Enum): 5 | TABLE = "table" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/time_plan_activity_doneness.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TimePlanActivityDoneness(str, Enum): 5 | DONE = "done" 6 | NOT_DONE = "not-done" 7 | WORKING = "working" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/time_plan_activity_feasability.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TimePlanActivityFeasability(str, Enum): 5 | MUST_DO = "must-do" 6 | NICE_TO_HAVE = "nice-to-have" 7 | STRETCH = "stretch" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/time_plan_activity_kind.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TimePlanActivityKind(str, Enum): 5 | FINISH = "finish" 6 | MAKE_PROGRESS = "make-progress" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/time_plan_activity_target.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TimePlanActivityTarget(str, Enum): 5 | BIG_PLAN = "big-plan" 6 | INBOX_TASK = "inbox-task" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/time_plan_generation_approach.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TimePlanGenerationApproach(str, Enum): 5 | BOTH_PLAN_AND_TASK = "both-plan-and-task" 6 | NONE = "none" 7 | ONLY_PLAN = "only-plan" 8 | 9 | def __str__(self) -> str: 10 | return str(self.value) 11 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/time_plan_source.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class TimePlanSource(str, Enum): 5 | GENERATED = "generated" 6 | USER = "user" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/user_category.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class UserCategory(str, Enum): 5 | APP_STORE_TEST = "app-store-test" 6 | STANDARD = "standard" 7 | 8 | def __str__(self) -> str: 9 | return str(self.value) 10 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/models/user_feature.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class UserFeature(str, Enum): 5 | GAMIFICATION = "gamification" 6 | 7 | def __str__(self) -> str: 8 | return str(self.value) 9 | -------------------------------------------------------------------------------- /gen/py/webapi-client/jupiter_webapi_client/py.typed: -------------------------------------------------------------------------------- 1 | # Marker file for PEP 561 -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ADate.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A date or possibly a datetime for the application. 7 | */ 8 | export type ADate = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/AppCore.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A client facing application. 7 | */ 8 | export enum AppCore { 9 | CLI = 'cli', 10 | WEBUI = 'webui', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/AppVersion.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The version of the app. 7 | */ 8 | export type AppVersion = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ArchivalReason.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The reason why an entity was archived. 7 | */ 8 | export enum ArchivalReason { 9 | USER = 'user', 10 | GC = 'gc', 11 | SYNC = 'sync', 12 | } 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/AuthTokenExt.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * An externally facing authentication token. 7 | */ 8 | export type AuthTokenExt = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/Avatar.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A user avatar image. 7 | */ 8 | export type Avatar = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/BigPlanArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type BigPlanArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/BigPlanName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The big plan name. 7 | */ 8 | export type BigPlanName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/BigPlanRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type BigPlanRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChecklistItem.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A checklist item. 7 | */ 8 | export type ChecklistItem = { 9 | text: string; 10 | checked: boolean; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChoreArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type ChoreArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChoreCreateResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { Chore } from './Chore'; 6 | /** 7 | * ChoreCreate result. 8 | */ 9 | export type ChoreCreateResult = { 10 | new_chore: Chore; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChoreName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The chore name. 7 | */ 8 | export type ChoreName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChoreRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type ChoreRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChoreSuspendArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type ChoreSuspendArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ChoreUnsuspendArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type ChoreUnsuspendArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/CloseAccountArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Close account args. 7 | */ 8 | export type CloseAccountArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/CorrelationId.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A generic entity id. 7 | */ 8 | export type CorrelationId = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/Difficulty.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The difficulty of a particular task. 7 | */ 8 | export enum Difficulty { 9 | HARD = 'hard', 10 | MEDIUM = 'medium', 11 | EASY = 'easy', 12 | } 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/DocArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * DocArchive args. 8 | */ 9 | export type DocArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/DocName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The doc name. 7 | */ 8 | export type DocName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/DocRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * DocRemove arguments. 8 | */ 9 | export type DocRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EmailAddress.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * An email address. 7 | */ 8 | export type EmailAddress = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EmailTaskArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type EmailTaskArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EmailTaskLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * EmailTaskLoadSettings args. 7 | */ 8 | export type EmailTaskLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EmailTaskRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type EmailTaskRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EmailUserName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * An email user name. 7 | */ 8 | export type EmailUserName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EntityIcon.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The icon for an entity. 7 | */ 8 | export type EntityIcon = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EntityId.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A generic entity id. 7 | */ 8 | export type EntityId = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/EntityName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The name for an entity which acts as both name and unique identifier. 7 | */ 8 | export type EntityName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/Env.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * An environment for a jupiter application. 7 | */ 8 | export enum Env { 9 | PRODUCTION = 'production', 10 | STAGING = 'staging', 11 | LOCAL = 'local', 12 | } 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/GCDoAllArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * GCDoAllArgs. 7 | */ 8 | export type GCDoAllArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/GCDoArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { SyncTarget } from './SyncTarget'; 6 | /** 7 | * GCArgs. 8 | */ 9 | export type GCDoArgs = { 10 | gc_targets?: (Array | null); 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/GCLoadRunsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * GCLoadRunsArgs. 7 | */ 8 | export type GCLoadRunsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/GenDoAllArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * GenDoAllArgs. 7 | */ 8 | export type GenDoAllArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/GenLoadRunsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * GenLoadRunsArgs. 7 | */ 8 | export type GenLoadRunsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HabitArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type HabitArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HabitCreateResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { Habit } from './Habit'; 6 | /** 7 | * HabitCreate result. 8 | */ 9 | export type HabitCreateResult = { 10 | new_habit: Habit; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HabitName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The habit name. 7 | */ 8 | export type HabitName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HabitRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type HabitRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HabitSuspendArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type HabitSuspendArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HabitUnsuspendArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type HabitUnsuspendArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HomeConfigLoadArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The arguments for the home config load use case. 7 | */ 8 | export type HomeConfigLoadArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HomeTabTarget.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A target for a tab. 7 | */ 8 | export enum HomeTabTarget { 9 | BIG_SCREEN = 'big-screen', 10 | SMALL_SCREEN = 'small-screen', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/HomeTabWidgetPlacement.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The placement of widgets on a tab. 7 | */ 8 | export type HomeTabWidgetPlacement = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/InboxTaskArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type InboxTaskArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/InboxTaskName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The name of an inbox task. 7 | */ 8 | export type InboxTaskName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/InboxTaskRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type InboxTaskRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/JournalArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type JournalArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/JournalLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * JournalLoadSettings args. 7 | */ 8 | export type JournalLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/JournalRefreshStatsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type JournalRefreshStatsArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/JournalRegenArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The arguments for the journal regen use case. 7 | */ 8 | export type JournalRegenArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/JournalRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type JournalRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/JournalSource.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The source of a journal entry. 7 | */ 8 | export enum JournalSource { 9 | USER = 'user', 10 | GENERATED = 'generated', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ListItem.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A list item. 7 | */ 8 | export type ListItem = { 9 | text: string; 10 | items: Array; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/LoadProgressReporterTokenArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Load progress reporter token args. 7 | */ 8 | export type LoadProgressReporterTokenArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/LoadTopLevelInfoArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Load user and workspsace args. 7 | */ 8 | export type LoadTopLevelInfoArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/LoginResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { AuthTokenExt } from './AuthTokenExt'; 6 | /** 7 | * Login result. 8 | */ 9 | export type LoginResult = { 10 | auth_token_ext: AuthTokenExt; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MOTDGetForTodayArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Args for getting a MOTD. 7 | */ 8 | export type MOTDGetForTodayArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MOTDGetForTodayResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { MOTD } from './MOTD'; 6 | /** 7 | * Result for getting a MOTD. 8 | */ 9 | export type MOTDGetForTodayResult = { 10 | motd: MOTD; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MetricArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type MetricArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MetricCreateResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { Metric } from './Metric'; 6 | /** 7 | * MetricCreate result. 8 | */ 9 | export type MetricCreateResult = { 10 | new_metric: Metric; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MetricLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * MetricLoadSettings args. 7 | */ 8 | export type MetricLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MetricName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * THe metric name. 7 | */ 8 | export type MetricName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MetricRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type MetricRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/MetricUnit.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The unit for a metric. 7 | */ 8 | export enum MetricUnit { 9 | COUNT = 'count', 10 | MONEY = 'money', 11 | WEIGHT = 'weight', 12 | } 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/NoteArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * NoteArchive args. 8 | */ 9 | export type NoteArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/NoteCreateResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { Note } from './Note'; 6 | /** 7 | * NoteCreate result. 8 | */ 9 | export type NoteCreateResult = { 10 | new_note: Note; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/NoteRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * NoteRemove arguments. 8 | */ 9 | export type NoteRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PasswordNewPlain.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A new password in plain text, as received from a user. 7 | */ 8 | export type PasswordNewPlain = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PasswordPlain.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A new password in plain text, as received from a user. 7 | */ 8 | export type PasswordPlain = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PersonArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type PersonArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PersonBirthday.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The birthday of a person. 7 | */ 8 | export type PersonBirthday = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PersonCreateResult.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { Person } from './Person'; 6 | /** 7 | * Person create result. 8 | */ 9 | export type PersonCreateResult = { 10 | new_person: Person; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PersonLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * PersonLoadSettings args. 7 | */ 8 | export type PersonLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PersonName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The person name. 7 | */ 8 | export type PersonName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/PersonRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * PersonFindArgs. 8 | */ 9 | export type PersonRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ProjectName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The project name. 7 | */ 8 | export type ProjectName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/RecoveryTokenPlain.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A recovery token for auth systems. 7 | */ 8 | export type RecoveryTokenPlain = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/RecurringTaskDueAtDay.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The due day for a recurring task. 7 | */ 8 | export type RecurringTaskDueAtDay = number; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/RecurringTaskDueAtMonth.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The due month for a recurring task. 7 | */ 8 | export type RecurringTaskDueAtMonth = number; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/RecurringTaskSkipRule.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The rules for skipping a recurring task. 7 | */ 8 | export type RecurringTaskSkipRule = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/RemoveAllArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * PersonFindArgs. 7 | */ 8 | export type RemoveAllArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleEventName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The name of a schedule event. 7 | */ 8 | export type ScheduleEventName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleExternalSyncDoAllArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * ScheduleExternalSyncDoArgs. 7 | */ 8 | export type ScheduleExternalSyncDoAllArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleExternalSyncLoadRunsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Args. 7 | */ 8 | export type ScheduleExternalSyncLoadRunsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleExternalUid.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * An external UID for a schedule. 7 | */ 8 | export type ScheduleExternalUid = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleSource.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The source of a schedule. 7 | */ 8 | export enum ScheduleSource { 9 | USER = 'user', 10 | EXTERNAL_ICAL = 'external-ical', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleStreamArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type ScheduleStreamArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleStreamName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The name of a schedule stream. 7 | */ 8 | export type ScheduleStreamName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScheduleStreamRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type ScheduleStreamRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/ScoreSource.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The source of a score. 7 | */ 8 | export enum ScoreSource { 9 | INBOX_TASK = 'inbox-task', 10 | BIG_PLAN = 'big-plan', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SearchLimit.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A search limit parameter for searches. 7 | */ 8 | export type SearchLimit = number; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SearchQuery.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A search query parameter for searches. 7 | */ 8 | export type SearchQuery = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SlackChannelName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A Slack channel name. 7 | */ 8 | export type SlackChannelName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SlackTaskLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * SlackTaskLoadSettings args. 7 | */ 8 | export type SlackTaskLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SlackUserName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A Slack user name. 7 | */ 8 | export type SlackUserName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SmartListItemName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The smart list item name. 7 | */ 8 | export type SmartListItemName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/SmartListName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The smart list name. 7 | */ 8 | export type SmartListName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/StatsDoAllArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * StatsDoAllArgs. 7 | */ 8 | export type StatsDoAllArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/StatsLoadRunsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * StatsLoadRunsArgs. 7 | */ 8 | export type StatsLoadRunsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TagName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The base value object for any kind of tag tag. 7 | */ 8 | export type TagName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TimeInDay.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The time in hh:mm format. 7 | */ 8 | export type TimeInDay = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TimePlanArchiveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type TimePlanArchiveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TimePlanLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * TimePlanLoadSettingsArgs. 7 | */ 8 | export type TimePlanLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TimePlanRegenArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The arguments for the time plan regen use case. 7 | */ 8 | export type TimePlanRegenArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TimePlanRemoveArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | import type { EntityId } from './EntityId'; 6 | /** 7 | * Args. 8 | */ 9 | export type TimePlanRemoveArgs = { 10 | ref_id: EntityId; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/TimePlanSource.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The source of a time plan. 7 | */ 8 | export enum TimePlanSource { 9 | USER = 'user', 10 | GENERATED = 'generated', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/Timestamp.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A timestamp in the application. 7 | */ 8 | export type Timestamp = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/Timezone.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A timezone in this domain. 7 | */ 8 | export type Timezone = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/URL.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A URL in this domain. 7 | */ 8 | export type URL = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/UserCategory.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The category of user. 7 | */ 8 | export enum UserCategory { 9 | STANDARD = 'standard', 10 | APP_STORE_TEST = 'app-store-test', 11 | } 12 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/UserFeature.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * A particular feature of a jupiter user. 7 | */ 8 | export enum UserFeature { 9 | GAMIFICATION = 'gamification', 10 | } 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/UserLoadArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * User find args. 7 | */ 8 | export type UserLoadArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/UserName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The user name for a user of jupiter. 7 | */ 8 | export type UserName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/VacationName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The vacation name. 7 | */ 8 | export type VacationName = string; 9 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/WorkingMemLoadCurrentArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Working mem find args. 7 | */ 8 | export type WorkingMemLoadCurrentArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/WorkingMemLoadSettingsArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * WorkingMemLoadSettings args. 7 | */ 8 | export type WorkingMemLoadSettingsArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/WorkspaceLoadArgs.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * Workspace find args. 7 | */ 8 | export type WorkspaceLoadArgs = { 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /gen/ts/webapi-client/gen/models/WorkspaceName.ts: -------------------------------------------------------------------------------- 1 | /* generated using openapi-typescript-codegen -- do not edit */ 2 | /* istanbul ignore file */ 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | /** 6 | * The workspace name. 7 | */ 8 | export type WorkspaceName = string; 9 | -------------------------------------------------------------------------------- /itests/README.md: -------------------------------------------------------------------------------- 1 | # Big Integration Tests 2 | -------------------------------------------------------------------------------- /itests/__init__.py: -------------------------------------------------------------------------------- 1 | """Integration tests.""" 2 | -------------------------------------------------------------------------------- /itests/entities/__init__.py: -------------------------------------------------------------------------------- 1 | """Integration tests around entities.""" 2 | -------------------------------------------------------------------------------- /itests/entities/test_working_mem.py: -------------------------------------------------------------------------------- 1 | """Tests for the working mem.""" 2 | 3 | from playwright.sync_api import Page 4 | 5 | from itests.conftest import TestUser 6 | 7 | 8 | def test_working_mem_write(page: Page, new_random_user: TestUser) -> None: 9 | page.goto("/app/workspace/working-mem") 10 | -------------------------------------------------------------------------------- /itests/lifecycle/__init__.py: -------------------------------------------------------------------------------- 1 | """Integration tests around large user lifecycle operations.""" 2 | -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | cache_dir=.build-cache/itest/pytest 3 | addopts = --capture=no 4 | -------------------------------------------------------------------------------- /scripts/build/docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | source src/Config.global 6 | 7 | docker build -t jupiter/webapi:latest -t jupiter/webapi:${VERSION} -f src/webapi/Dockerfile . 8 | docker build -t jupiter/webui:latest -t jupiter/webui:${VERSION} -f src/webui/Dockerfile . 9 | docker build -t jupiter/cli:latest -t jupiter/cli:${VERSION} -f src/cli/Dockerfile . -------------------------------------------------------------------------------- /scripts/check/check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | ./scripts/check/lint.sh 6 | # ./scripts/check/audits.sh 7 | ./scripts/check/check-all-is-formatted.sh 8 | ./scripts/check/run-tests.sh 9 | ./scripts/check/run-itests.sh ci 10 | -------------------------------------------------------------------------------- /scripts/check/lint-scripts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | shellcheck --external-sources --shell=bash ./scripts/*.sh -------------------------------------------------------------------------------- /scripts/check/lint-toplevel-yamls.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | poetry run yamllint --config-file=./scripts/check/lint/yamllint src/docs/mkdocs.yml 6 | -------------------------------------------------------------------------------- /scripts/check/lint-workflows.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | poetry run yamllint --config-file=./scripts/check/lint/yamllint .github/ 6 | -------------------------------------------------------------------------------- /scripts/check/lint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | ./scripts/check/lint-dockerfile.sh 6 | ./scripts/check/lint-workflows.sh 7 | ./scripts/check/lint-toplevel-yamls.sh 8 | ./scripts/check/lint-docs.sh 9 | # ./scripts/check/lint-scripts.sh 10 | ./scripts/check/lint-src.sh 11 | -------------------------------------------------------------------------------- /scripts/check/lint/autoflake: -------------------------------------------------------------------------------- 1 | [autoflake] 2 | recursive=true 3 | remove-all-unused-imports=true 4 | in-place=true -------------------------------------------------------------------------------- /scripts/check/lint/bandit: -------------------------------------------------------------------------------- 1 | # A source 2 | 3 | foo: "bar" 4 | 5 | -------------------------------------------------------------------------------- /scripts/check/lint/bandit.src.ini: -------------------------------------------------------------------------------- 1 | [bandit] 2 | skips=B101 3 | -------------------------------------------------------------------------------- /scripts/check/lint/bandit.test.ini: -------------------------------------------------------------------------------- 1 | [bandit] 2 | skips=B101,B404,B603,B607,B106 3 | -------------------------------------------------------------------------------- /scripts/check/lint/docs.rb: -------------------------------------------------------------------------------- 1 | all 2 | rule 'MD013', :line_length => 120 3 | exclude_rule 'MD014' -------------------------------------------------------------------------------- /scripts/check/lint/hadolint: -------------------------------------------------------------------------------- 1 | trustedRegistries: 2 | - docker.io 3 | ignored: 4 | - DL3003 5 | - DL3008 -------------------------------------------------------------------------------- /scripts/check/lint/mdl-docs: -------------------------------------------------------------------------------- 1 | style "./scripts/check/lint/docs.rb" -------------------------------------------------------------------------------- /scripts/check/lint/mdl-readme: -------------------------------------------------------------------------------- 1 | style "./scripts/check/lint/readme.rb" -------------------------------------------------------------------------------- /scripts/check/lint/pydocstyle: -------------------------------------------------------------------------------- 1 | [pydocstyle] 2 | convention=google 3 | match-dir=(?!migration).* -------------------------------------------------------------------------------- /scripts/check/lint/readme.rb: -------------------------------------------------------------------------------- 1 | all 2 | exclude_rule 'MD013' -------------------------------------------------------------------------------- /scripts/check/lint/ruff.toml: -------------------------------------------------------------------------------- 1 | # Assume Python 3.13 2 | lint.select = ["F", "E", "W", "I", "N", "YTT", "BLE", "B", "A", "DTZ", "T10", "EXE", "ICN", "G", "INP", "PIE", "PYI", "PT", "Q", "RSE", "TID", "PTH", "PLC", "PLE", "RUF"] 3 | lint.ignore = ["PYI019"] 4 | extend-exclude = ["migrations"] 5 | target-version = "py313" 6 | line-length = 190 # Black handle this 7 | -------------------------------------------------------------------------------- /scripts/check/lint/yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | extends: default 3 | 4 | rules: 5 | line-length: {max: 120} -------------------------------------------------------------------------------- /scripts/check/run-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | mkdir -p .build-cache/test 6 | 7 | # TODO(horia141): find out why the hell poetry run doesn't work here 8 | pytest src/core/tests --html-report=.build-cache/test/test-report.html --title="Jupiter Tests" $@ 9 | -------------------------------------------------------------------------------- /scripts/coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | parallel=True 3 | branch=True 4 | data_file=.build-cache/itest/coverage/coverage 5 | [paths] 6 | source = 7 | src/ 8 | [html] 9 | directory=.build-cache/itest/coverage-html/ -------------------------------------------------------------------------------- /scripts/release/abandon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | RELEASE_BRANCH=$(git rev-parse --abbrev-ref HEAD) 6 | 7 | if ! [[ "${RELEASE_BRANCH}" =~ "release/" ]] 8 | then 9 | echo "Must be in a release" 10 | exit 1 11 | fi 12 | 13 | git checkout -- . 14 | git reset --hard HEAD 15 | git checkout develop 16 | git branch -D "${RELEASE_BRANCH}" 17 | -------------------------------------------------------------------------------- /scripts/release/list-releases.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | git pull --ff-only --tags origin develop 6 | git tag --list 7 | -------------------------------------------------------------------------------- /scripts/release/release-manifest.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "web": "ready", 3 | "mac-web": "ready", 4 | "mac-store": "not-available", 5 | "app-store": "not-available", 6 | "google-play-store": "not-available" 7 | } 8 | -------------------------------------------------------------------------------- /scripts/release/template.md: -------------------------------------------------------------------------------- 1 | # Version {{release_version}} 2 | 3 | Launched on {{release_date}} 4 | 5 | This version introduces: 6 | 7 | * Features here ... 8 | -------------------------------------------------------------------------------- /scripts/run-docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | source src/Config.global 6 | 7 | export PUBLIC_NAME 8 | export AUTHOR 9 | export COPYRIGHT 10 | 11 | cd src/docs && mkdocs serve 12 | -------------------------------------------------------------------------------- /scripts/work/new-bugfix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | BUGFIX_NAME=$1 6 | 7 | git checkout develop 8 | git pull 9 | git checkout -b "bugfix/${BUGFIX_NAME}" 10 | -------------------------------------------------------------------------------- /scripts/work/new-dev-session.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source .build-cache/venv/bin/activate 4 | -------------------------------------------------------------------------------- /scripts/work/new-feature.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | FEATURE_NAME=$1 6 | 7 | git checkout develop 8 | git pull 9 | git checkout -b "feature/${FEATURE_NAME}" 10 | -------------------------------------------------------------------------------- /src/Config.global: -------------------------------------------------------------------------------- 1 | VERSION=1.2.0 2 | BUNDLE_ID=io.jupiter.app 3 | PUBLIC_NAME=Thrive 4 | HOSTED_GLOBAL_WEBUI_URL=https://app.get-thriving.com 5 | AUTHOR="Horia Coman" 6 | COPYRIGHT="2024 Horia Coman" 7 | -------------------------------------------------------------------------------- /src/cli/README.md: -------------------------------------------------------------------------------- 1 | # CLI Client 2 | 3 | The CLI client for Thrive. -------------------------------------------------------------------------------- /src/cli/jupiter/cli/__init__.py: -------------------------------------------------------------------------------- 1 | """The CLI application.""" 2 | -------------------------------------------------------------------------------- /src/cli/jupiter/cli/command/__init__.py: -------------------------------------------------------------------------------- 1 | """The commands modules.""" 2 | -------------------------------------------------------------------------------- /src/cli/tests/__init__.py: -------------------------------------------------------------------------------- 1 | """Tests for the CLI.""" 2 | -------------------------------------------------------------------------------- /src/cli/tests/test_cli.py: -------------------------------------------------------------------------------- 1 | """Tests for the CLI.""" 2 | -------------------------------------------------------------------------------- /src/core/README.md: -------------------------------------------------------------------------------- 1 | # Core 2 | 3 | The core business logic for Thrive. -------------------------------------------------------------------------------- /src/core/jupiter/core/__init__.py: -------------------------------------------------------------------------------- 1 | """The core business logic.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/__init__.py: -------------------------------------------------------------------------------- 1 | """The core domain layer of the application.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/__init__.py: -------------------------------------------------------------------------------- 1 | """Application level domain entities.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/calendar/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities for the calendar application.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gamification/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain model for gamification.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gamification/score_source.py: -------------------------------------------------------------------------------- 1 | """The source of a score.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class ScoreSource(EnumValue): 8 | """The source of a score.""" 9 | 10 | INBOX_TASK = "inbox-task" 11 | BIG_PLAN = "big-plan" 12 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gamification/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Services around gamification domain.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gc/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic related to garbage collection.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gc/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain services related to garbage collection.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gen/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic related to task generation.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/gen/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain services related to task generation.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/home/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain application for the home page.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/home/home_tab_target.py: -------------------------------------------------------------------------------- 1 | """A target for a tab.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class HomeTabTarget(EnumValue): 8 | """A target for a tab.""" 9 | 10 | BIG_SCREEN = "big-screen" 11 | SMALL_SCREEN = "small-screen" 12 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/report/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities for reports.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/report/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Services about report domain.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/search/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic related to search.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/search/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Search infra classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/stats/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain objects for stats computation.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/application/stats/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Service for computing stats.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/__init__.py: -------------------------------------------------------------------------------- 1 | """Concept level domain entities.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/auth/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for authentication.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/auth/use_case/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/big_plans/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for big plans.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/big_plans/big_plan_name.py: -------------------------------------------------------------------------------- 1 | """The name of the big plan.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class BigPlanName(EntityName): 9 | """The big plan name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/big_plans/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Big plans service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/chores/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for chores.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/chores/chore_name.py: -------------------------------------------------------------------------------- 1 | """The chore name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class ChoreName(EntityName): 9 | """The chore name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/chores/service/__init__.py: -------------------------------------------------------------------------------- 1 | """chores service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/docs/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities for docs.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/docs/doc_name.py: -------------------------------------------------------------------------------- 1 | """The doc name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class DocName(EntityName): 9 | """The doc name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/docs/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Infra domain classes related to docs.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/docs/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Service classes related to notes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/habits/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for habits.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/habits/habit_name.py: -------------------------------------------------------------------------------- 1 | """The habit name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class HabitName(EntityName): 9 | """The habit name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/habits/service/__init__.py: -------------------------------------------------------------------------------- 1 | """habits service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/inbox_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for inbox tasks.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/inbox_tasks/inbox_task_name.py: -------------------------------------------------------------------------------- 1 | """The name of an inbox task.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class InboxTaskName(EntityName): 9 | """The name of an inbox task.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/inbox_tasks/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Inbox tasks service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/journals/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain layer for journal module.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/journals/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Infrastructure classes for journal domain.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for metrics.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/metrics/metric_name.py: -------------------------------------------------------------------------------- 1 | """The metric name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class MetricName(EntityName): 9 | """THe metric name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/metrics/metric_unit.py: -------------------------------------------------------------------------------- 1 | """The unit for a metric.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class MetricUnit(EnumValue): 8 | """The unit for a metric.""" 9 | 10 | COUNT = "count" 11 | MONETARY_AMOUNT = "money" 12 | WEIGHT = "weight" 13 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/metrics/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Metrics service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/motd/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain classes for the Message of the Day.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/persons/__init__.py: -------------------------------------------------------------------------------- 1 | """Persons domain logic.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/persons/person_name.py: -------------------------------------------------------------------------------- 1 | """The person name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class PersonName(EntityName): 9 | """The person name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/persons/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Persons classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/projects/__init__.py: -------------------------------------------------------------------------------- 1 | """Projects domain logic.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/projects/errors.py: -------------------------------------------------------------------------------- 1 | """Common errors about projects.""" 2 | 3 | 4 | class ProjectInSignificantUseError(Exception): 5 | """Error raised when a project is in significant use.""" 6 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/projects/project_name.py: -------------------------------------------------------------------------------- 1 | """The project name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class ProjectName(EntityName): 9 | """The project name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/projects/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Project service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities related to push integrations of other tools.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/email/__init__.py: -------------------------------------------------------------------------------- 1 | """The entities around the email push integration.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/email/email_user_name.py: -------------------------------------------------------------------------------- 1 | """An email user name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class EmailUserName(EntityName): 9 | """An email user name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/email/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Common services for email push integrations.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/group/__init__.py: -------------------------------------------------------------------------------- 1 | """A container for all the group of various push integrations we have.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/slack/__init__.py: -------------------------------------------------------------------------------- 1 | """The entities around the Slack push integrations.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/slack/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Common services for Slack push integrations.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/push_integrations/slack/slack_user_name.py: -------------------------------------------------------------------------------- 1 | """A Slack user name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class SlackUserName(EntityName): 9 | """A Slack user name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/schedule/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain objects for schedules.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/schedule/schedule_event_name.py: -------------------------------------------------------------------------------- 1 | """The name of a schedule event.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class ScheduleEventName(EntityName): 9 | """The name of a schedule event.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/schedule/schedule_source.py: -------------------------------------------------------------------------------- 1 | """The source of a particular schedule.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class ScheduleSource(EnumValue): 8 | """The source of a schedule.""" 9 | 10 | USER = "user" 11 | EXTERNAL_ICAL = "external-ical" 12 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/schedule/schedule_stream_name.py: -------------------------------------------------------------------------------- 1 | """The name of a schedule stream.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class ScheduleStreamName(EntityName): 9 | """The name of a schedule stream.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/schedule/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Services for the schedule concept.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/smart_lists/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for smart lists.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/smart_lists/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Smart list service classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/smart_lists/smart_list_item_name.py: -------------------------------------------------------------------------------- 1 | """The smart list item name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class SmartListItemName(EntityName): 9 | """The smart list item name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/smart_lists/smart_list_name.py: -------------------------------------------------------------------------------- 1 | """The smart list name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class SmartListName(EntityName): 9 | """The smart list name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/time_plans/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain objects for timeplans.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/time_plans/time_plan_activity_target.py: -------------------------------------------------------------------------------- 1 | """The target of an activity.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class TimePlanActivityTarget(EnumValue): 8 | """The target of an activity.""" 9 | 10 | INBOX_TASK = "inbox-task" 11 | BIG_PLAN = "big-plan" 12 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/user/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for users.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/user/user_category.py: -------------------------------------------------------------------------------- 1 | """The category of user.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class UserCategory(EnumValue): 8 | """The category of user.""" 9 | 10 | STANDARD = "standard" 11 | APP_STORE_REVIEW = "app-store-test" 12 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/user/user_name.py: -------------------------------------------------------------------------------- 1 | """The user name for a user of jupiter.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class UserName(EntityName): 9 | """The user name for a user of jupiter.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/user_workspace_link/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for the user<>workspace mapping.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/vacations/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for vacations.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/vacations/vacation_name.py: -------------------------------------------------------------------------------- 1 | """The vacation name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class VacationName(EntityName): 9 | """The vacation name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/working_mem/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities relating to working memory.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/workspaces/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain logic for workspaces.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/workspaces/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Workspaces infra classes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/workspaces/infra/workspace_repository.py: -------------------------------------------------------------------------------- 1 | """A repository for workspaces.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/concept/workspaces/workspace_name.py: -------------------------------------------------------------------------------- 1 | """The workspace name.""" 2 | 3 | from jupiter.core.framework.base.entity_name import EntityName 4 | from jupiter.core.framework.value import hashable_value 5 | 6 | 7 | @hashable_value 8 | class WorkspaceName(EntityName): 9 | """The workspace name.""" 10 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/core/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities that support core entities.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/core/archival_reason.py: -------------------------------------------------------------------------------- 1 | """The reason why an entity was archived.""" 2 | 3 | from jupiter.core.framework.value import EnumValue, enum_value 4 | 5 | 6 | @enum_value 7 | class ArchivalReason(EnumValue): 8 | """The reason why an entity was archived.""" 9 | 10 | USER = "user" 11 | GC = "gc" 12 | SYNC = "sync" 13 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/core/notes/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities for notes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/core/notes/service/__init__.py: -------------------------------------------------------------------------------- 1 | """Services for notes domain.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/core/tags/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain entities dealing with tags.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/core/time_events/__init__.py: -------------------------------------------------------------------------------- 1 | """Common domain entities for time events.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/domain/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain level infrastructure.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/framework/__init__.py: -------------------------------------------------------------------------------- 1 | """The framework bits.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/framework/base/__init__.py: -------------------------------------------------------------------------------- 1 | """Basic values coming from the framework.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/framework/concept.py: -------------------------------------------------------------------------------- 1 | """A concept is some data carrying domain object.""" 2 | 3 | 4 | class Concept: 5 | """A concept is some data carrying domain object.""" 6 | -------------------------------------------------------------------------------- /src/core/jupiter/core/framework/primitive.py: -------------------------------------------------------------------------------- 1 | """The primitive types.""" 2 | 3 | from datetime import date, datetime 4 | 5 | from pendulum.date import Date 6 | from pendulum.datetime import DateTime 7 | 8 | Primitive = None | bool | int | float | str | date | datetime | Date | DateTime 9 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/__init__.py: -------------------------------------------------------------------------------- 1 | """Implementation aspects - reifying the entities and services and repositories where needed.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/crm/__init__.py: -------------------------------------------------------------------------------- 1 | """Implementation for the CRM.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/__init__.py: -------------------------------------------------------------------------------- 1 | """Repositories handle data access for a single entity.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/__init__.py: -------------------------------------------------------------------------------- 1 | """Concrete implementations of domain-level repositories with SQLite.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/domain/__init__.py: -------------------------------------------------------------------------------- 1 | """SQLite implementations of domain repositories.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/domain/application/__init__.py: -------------------------------------------------------------------------------- 1 | """Implementation in SQLite for application repositories.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/domain/concept/__init__.py: -------------------------------------------------------------------------------- 1 | """Implementation in SQLite for concept repositories.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/domain/core/__init__.py: -------------------------------------------------------------------------------- 1 | """SQLite repositories for core entities.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Infrastructure around SQLite storage.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/infra/row.py: -------------------------------------------------------------------------------- 1 | """Row type infra.""" 2 | 3 | from typing import Any 4 | 5 | from sqlalchemy.engine import Row 6 | 7 | RowType = Row[Any] # type: ignore 8 | # None | float | int | str | datetime | JSONDictType] 9 | -------------------------------------------------------------------------------- /src/core/jupiter/core/impl/repository/sqlite/use_case/__init__.py: -------------------------------------------------------------------------------- 1 | """SQLite implementations of use case helper repositories.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for applications.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/calendar/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the calendar application.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/gc/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases related to garbage collection.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/gen/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases related to task generation.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/home/__init__.py: -------------------------------------------------------------------------------- 1 | """The use cases for the home.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/home/tab/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for home tabs.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/home/widget/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for home widgets.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/application/stats/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for stats.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for concepts.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/auth/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for authentication.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/big_plans/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for big plans.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/chores/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for chores.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/docs/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases related to docs.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/habits/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for habits.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/inbox_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for inbox tasks.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/journals/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for journals.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for metrics.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/metrics/entry/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for metric entries.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/motd/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the Message of the Day.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/persons/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the persons.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/projects/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for projects.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/push_integrations/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for push integrations.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/push_integrations/email/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the email push integration.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/push_integrations/slack/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the Slack push integration.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/schedule/__init__.py: -------------------------------------------------------------------------------- 1 | """The use cases for the schedule feature.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/schedule/event_full_days/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the schedule full day blocks.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/schedule/event_in_day/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the schedule event.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/schedule/stream/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for the schedule stream.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/smart_lists/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for smart lists.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/smart_lists/item/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for smart list items.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/smart_lists/tag/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for smart list tags.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/time_plans/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for time plans.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/time_plans/activity/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for activities in time plans.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/users/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for users.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/vacations/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for vacations.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/working_mem/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases about working mem.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/concept/workspaces/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for workspaces.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/core/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases related to core entities.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/core/notes/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for notes.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/core/time_event/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for time events.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/core/time_event/full_days_block/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for full days time events.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/core/time_event/in_day_block/__init__.py: -------------------------------------------------------------------------------- 1 | """Use cases for in day time events.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/infra/__init__.py: -------------------------------------------------------------------------------- 1 | """Infrastructure classes for the use cases.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/use_cases/test_helper/__init__.py: -------------------------------------------------------------------------------- 1 | """Commands used in a test context.""" 2 | -------------------------------------------------------------------------------- /src/core/jupiter/core/utils/__init__.py: -------------------------------------------------------------------------------- 1 | """The utility module.""" 2 | -------------------------------------------------------------------------------- /src/core/pycparser-2.22-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/core/pycparser-2.22-py3-none-any.whl -------------------------------------------------------------------------------- /src/core/tests/__init__.py: -------------------------------------------------------------------------------- 1 | """Tests for the core business logic.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/__init__.py: -------------------------------------------------------------------------------- 1 | """Domain tests.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/__init__.py: -------------------------------------------------------------------------------- 1 | """Core domain object tests.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_recurring_task_due_at_time_inc.py: -------------------------------------------------------------------------------- 1 | """Tests for recurring task due at time.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_recurring_task_period.py: -------------------------------------------------------------------------------- 1 | """Tests for recurring task period.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_sync_target.py: -------------------------------------------------------------------------------- 1 | """Tests for sync target.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_tag_name.py: -------------------------------------------------------------------------------- 1 | """Tests for tag name.""" 2 | 3 | from jupiter.core.domain.core.tags.tag_name import TagName 4 | 5 | 6 | def test_construction() -> None: 7 | tag_name = TagName("tag-name") 8 | assert str(tag_name) == "tag-name" 9 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_timeline.py: -------------------------------------------------------------------------------- 1 | """Tests for timeline.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_timezone.py: -------------------------------------------------------------------------------- 1 | """Tests for the timezone.""" 2 | 3 | from jupiter.core.domain.core.timezone import UTC, Timezone 4 | 5 | 6 | def test_creation() -> None: 7 | timezone = Timezone("Europe/Paris") 8 | assert str(timezone) == "Europe/Paris" 9 | 10 | 11 | def test_utc() -> None: 12 | assert str(UTC) == "UTC" 13 | -------------------------------------------------------------------------------- /src/core/tests/domain/core/test_url.py: -------------------------------------------------------------------------------- 1 | """Tests for URL.""" 2 | -------------------------------------------------------------------------------- /src/core/tests/test_time_provider.py: -------------------------------------------------------------------------------- 1 | """Tests for the time provider.""" 2 | -------------------------------------------------------------------------------- /src/desktop/Config.project: -------------------------------------------------------------------------------- 1 | ENV=local 2 | HOSTING=local 3 | HOSTING_NAME=Main 4 | BASENAME=jupiter-desktop 5 | DESCRIPTION="The Thrive Desktop application" 6 | INITIAL_WINDOW_WIDTH=1400 7 | INITIAL_WINDOW_HEIGHT=900 8 | FRONTDOOR_PATTERN=/frontdoor?clientVersion=to-fill&appShell=desktop-electron&appPlatform=desktop-macos&appDistribution=mac-store&initialWindowWidth=to-fill 9 | -------------------------------------------------------------------------------- /src/desktop/README.md: -------------------------------------------------------------------------------- 1 | # Thrive Desktop App 2 | 3 | This is the Thrive Desktop app. 4 | -------------------------------------------------------------------------------- /src/desktop/assets/jupiter.icns: -------------------------------------------------------------------------------- 1 | ../../../assets/jupiter.icns -------------------------------------------------------------------------------- /src/desktop/assets/logo.png: -------------------------------------------------------------------------------- 1 | ../../../assets/jupiter.png -------------------------------------------------------------------------------- /src/desktop/src/config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/desktop/src/config.js -------------------------------------------------------------------------------- /src/docs/README.md: -------------------------------------------------------------------------------- 1 | # Docs 2 | 3 | The public facing docs for Jupiter. 4 | -------------------------------------------------------------------------------- /src/docs/material/assets/accounts-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/accounts-account.png -------------------------------------------------------------------------------- /src/docs/material/assets/accounts-change-password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/accounts-change-password.png -------------------------------------------------------------------------------- /src/docs/material/assets/accounts-where-to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/accounts-where-to.png -------------------------------------------------------------------------------- /src/docs/material/assets/big-plans-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/big-plans-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/calendar-event-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/calendar-event-view.png -------------------------------------------------------------------------------- /src/docs/material/assets/calendar-view-calendar-monthly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/calendar-view-calendar-monthly.png -------------------------------------------------------------------------------- /src/docs/material/assets/calendar-view-schedule-weekly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/calendar-view-schedule-weekly.png -------------------------------------------------------------------------------- /src/docs/material/assets/calendar-view-schedule-yearly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/calendar-view-schedule-yearly.png -------------------------------------------------------------------------------- /src/docs/material/assets/chores-inbox-task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/chores-inbox-task.png -------------------------------------------------------------------------------- /src/docs/material/assets/chores-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/chores-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/chores-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/chores-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/concepts-big-plan-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/concepts-big-plan-states.png -------------------------------------------------------------------------------- /src/docs/material/assets/concepts-task-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/concepts-task-states.png -------------------------------------------------------------------------------- /src/docs/material/assets/favicon.ico: -------------------------------------------------------------------------------- 1 | ../../../../assets/jupiter.ico -------------------------------------------------------------------------------- /src/docs/material/assets/gamification-account-creation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/gamification-account-creation.png -------------------------------------------------------------------------------- /src/docs/material/assets/gamification-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/gamification-history.png -------------------------------------------------------------------------------- /src/docs/material/assets/gamification-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/gamification-menu.png -------------------------------------------------------------------------------- /src/docs/material/assets/gamification-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/gamification-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/gc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/gc.png -------------------------------------------------------------------------------- /src/docs/material/assets/gen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/gen.png -------------------------------------------------------------------------------- /src/docs/material/assets/habits-inbox-task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/habits-inbox-task.png -------------------------------------------------------------------------------- /src/docs/material/assets/habits-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/habits-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/habits-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/habits-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/inbox-tasks-swiftview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/inbox-tasks-swiftview.png -------------------------------------------------------------------------------- /src/docs/material/assets/inbox-tasks-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/inbox-tasks-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/index-big-plans-timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/index-big-plans-timeline.png -------------------------------------------------------------------------------- /src/docs/material/assets/index-inbox-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/index-inbox-mobile.png -------------------------------------------------------------------------------- /src/docs/material/assets/index-inbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/index-inbox.png -------------------------------------------------------------------------------- /src/docs/material/assets/install-release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/install-release.png -------------------------------------------------------------------------------- /src/docs/material/assets/journal-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/journal-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/journals-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/journals-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/jupiter.png: -------------------------------------------------------------------------------- 1 | ../../../../assets/jupiter.png -------------------------------------------------------------------------------- /src/docs/material/assets/metrics-entry-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/metrics-entry-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/metrics-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/metrics-list.png -------------------------------------------------------------------------------- /src/docs/material/assets/metrics-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/metrics-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/metrics-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/metrics-settings.png -------------------------------------------------------------------------------- /src/docs/material/assets/metrics-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/metrics-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/persons-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/persons-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/persons-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/persons-settings.png -------------------------------------------------------------------------------- /src/docs/material/assets/persons-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/persons-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/pomodoro-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/pomodoro-timer.png -------------------------------------------------------------------------------- /src/docs/material/assets/projects-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/projects-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/projects-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/projects-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/recover-account-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/recover-account-form.png -------------------------------------------------------------------------------- /src/docs/material/assets/recover-account-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/recover-account-login.png -------------------------------------------------------------------------------- /src/docs/material/assets/report-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/report-form.png -------------------------------------------------------------------------------- /src/docs/material/assets/report-global.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/report-global.png -------------------------------------------------------------------------------- /src/docs/material/assets/report-streaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/report-streaks.png -------------------------------------------------------------------------------- /src/docs/material/assets/search-quick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/search-quick.png -------------------------------------------------------------------------------- /src/docs/material/assets/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/search.png -------------------------------------------------------------------------------- /src/docs/material/assets/self-hosted-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/self-hosted-domain.png -------------------------------------------------------------------------------- /src/docs/material/assets/self-hosting-pick-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/self-hosting-pick-server.png -------------------------------------------------------------------------------- /src/docs/material/assets/showcase/showcase-calendar.png: -------------------------------------------------------------------------------- 1 | ../../../../../assets/showcase-desktop-calendar.png -------------------------------------------------------------------------------- /src/docs/material/assets/showcase/showcase-inbox-tasks.png: -------------------------------------------------------------------------------- 1 | ../../../../../assets/showcase-desktop-inbox-tasks.png -------------------------------------------------------------------------------- /src/docs/material/assets/showcase/showcase-metrics.png: -------------------------------------------------------------------------------- 1 | ../../../../../assets/showcase-desktop-metrics.png -------------------------------------------------------------------------------- /src/docs/material/assets/showcase/showcase-timeplan.png: -------------------------------------------------------------------------------- 1 | ../../../../../assets/showcase-desktop-timeplan.png -------------------------------------------------------------------------------- /src/docs/material/assets/smart-lists-item-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/smart-lists-item-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/smart-lists-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/smart-lists-list.png -------------------------------------------------------------------------------- /src/docs/material/assets/smart-lists-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/smart-lists-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/smart-lists-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/smart-lists-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/stylesheet.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --md-text-font: Helvetica, Arial, sans-serif; 3 | --md-primary-fg-color: #3F51B5; 4 | --md-primary-fg-color--light: #7986CB; 5 | --md-primary-fg-color--dark: #303F9F; 6 | --md-accent-fg-color: #FF4081; 7 | --md-accent-fg-color--transparent: #FF79B0; 8 | --md-accent-bg-color: #C60055; 9 | } -------------------------------------------------------------------------------- /src/docs/material/assets/time-plans-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/time-plans-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/tutorial-after-new-task-creation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/tutorial-after-new-task-creation.png -------------------------------------------------------------------------------- /src/docs/material/assets/tutorial-empty-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/tutorial-empty-workspace.png -------------------------------------------------------------------------------- /src/docs/material/assets/tutorial-go-to-workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/tutorial-go-to-workspace.png -------------------------------------------------------------------------------- /src/docs/material/assets/tutorial-init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/tutorial-init.png -------------------------------------------------------------------------------- /src/docs/material/assets/tutorial-new-inbox-task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/tutorial-new-inbox-task.png -------------------------------------------------------------------------------- /src/docs/material/assets/tutorial-task-kanban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/tutorial-task-kanban.png -------------------------------------------------------------------------------- /src/docs/material/assets/user-feature-flags-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/user-feature-flags-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/vacations-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/vacations-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/vacations-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/vacations-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/workspace-feature-flags-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/workspace-feature-flags-overview.png -------------------------------------------------------------------------------- /src/docs/material/assets/workspaces-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/workspaces-update.png -------------------------------------------------------------------------------- /src/docs/material/assets/workspaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/docs/material/assets/workspaces.png -------------------------------------------------------------------------------- /src/docs/material/concepts/home-page.md: -------------------------------------------------------------------------------- 1 | # Home Page -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.0.1.md: -------------------------------------------------------------------------------- 1 | # Version 0.0.1 2 | 3 | Launched on 2020/03/01. 4 | 5 | Checkout [the announcing Thrive blog](https://dev.to/https://dev.to/horia141/announcing-jupiter-bf3) for the bulk of it 6 | (for version 0.0.0 if you will). 7 | 8 | This version introduces: 9 | 10 | * Some sensible release mechanism 11 | * Bigger docs 12 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.0.2.md: -------------------------------------------------------------------------------- 1 | # Version 0.0.2 2 | 3 | Launched on 2020/03/01. 4 | 5 | This version introduces: 6 | 7 | * Even smoother release mechanism. 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.0.3.md: -------------------------------------------------------------------------------- 1 | # Version 0.0.3 2 | 3 | Launched on 2020/03/03. 4 | 5 | This version introduces: 6 | 7 | * Display of period information in the Inbox board 8 | * Overwriting the "latest" docker image with the last pushed image as part of `docker-push` 9 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.0.4.md: -------------------------------------------------------------------------------- 1 | # Version 0.0.4 2 | 3 | Launched on 2020/03/11 4 | 5 | This version introduces: 6 | 7 | * GitFlow scripts 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.0.5.md: -------------------------------------------------------------------------------- 1 | # Version 0.0.5 2 | 3 | Launched on 2020/03/11 4 | 5 | This version introduces: 6 | 7 | * Small tech fixes for release scripts 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.1.1.md: -------------------------------------------------------------------------------- 1 | # Version 0.1.1 2 | 3 | This version was scrapped and superseded by [0.1.2](version-0.1.2.md). 4 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.1.3.md: -------------------------------------------------------------------------------- 1 | # Version 0.1.3 2 | 3 | Launched on 2020/03/26 4 | 5 | This version introduces: 6 | 7 | * Technical version to test readthedocs autointegrations 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.1.4.md: -------------------------------------------------------------------------------- 1 | # Version 0.1.4 2 | 3 | Launched on 2020/03/26 4 | 5 | This version introduces: 6 | 7 | * Release process bugfixes 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.1.5.md: -------------------------------------------------------------------------------- 1 | # Version 0.1.5 2 | 3 | Launched on 2020/03/26 4 | 5 | This version introduces: 6 | 7 | * Release process improvements 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.1.6.md: -------------------------------------------------------------------------------- 1 | # Version 0.1.6 2 | 3 | Launched on 2020/03/26 4 | 5 | This version introduces: 6 | 7 | * More release process fixes 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.10.1.md: -------------------------------------------------------------------------------- 1 | # Version 0.10.1 2 | 3 | Launched on 2022/02/25 4 | 5 | This version introduces: 6 | 7 | * Documentation typos issues. 8 | 9 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.2.0.md: -------------------------------------------------------------------------------- 1 | # Version 0.2.0 2 | 3 | Launched on 2020/03/26 4 | 5 | This version introduces: 6 | 7 | * Add the notion of task difficulty to regular and recurring tasks 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.5.0.md: -------------------------------------------------------------------------------- 1 | # Version 0.5.0 2 | 3 | Launched on 2020/09/26 4 | 5 | This version introduces: 6 | 7 | * [Smart lists](../concepts/smart-lists.md) to record things you want to do or have done. Such as reading books, 8 | seeing movies, or going to places. 9 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.6.0.md: -------------------------------------------------------------------------------- 1 | # Version 0.6.0 2 | 3 | Launched on 2020/12/03 4 | 5 | This version introduces: 6 | 7 | * Tags for smart lists. 8 | * An embedded notion of "done" for smart list items. 9 | * The actionable date fully controls visibility in boards - it's not just a week before. 10 | * Faster GC 11 | * Numerous bugfixes 12 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-0.6.1.md: -------------------------------------------------------------------------------- 1 | # Version 0.6.1 2 | 3 | Launched on 2020/12/06 4 | 5 | This version introduces: 6 | 7 | * Make storage work with relative paths, and allows easy support for non-Docker operation. 8 | 9 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.0.3.md: -------------------------------------------------------------------------------- 1 | # Version 1.0.3 2 | 3 | Launched on 2023/06/25 4 | 5 | The changes are too numerous to count here. But the major ones are: 6 | 7 | * A web app version of Thrive with a nice GUI and feature parity with the CLI 8 | * Multi-user support in both the web app and CLI app 9 | * Dropping Notion support 10 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.0.4.md: -------------------------------------------------------------------------------- 1 | # Version 1.0.4 2 | 3 | Launched on 2023/06/25 4 | 5 | This version introduces: 6 | 7 | * Infrastructure changes 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.0.5.md: -------------------------------------------------------------------------------- 1 | # Version 1.0.5 2 | 3 | Launched on 2023/06/25 4 | 5 | This version introduces: 6 | 7 | * Annoying infra change 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.0.6.md: -------------------------------------------------------------------------------- 1 | # Version 1.0.6 2 | 3 | Launched on 2023/06/26 4 | 5 | This version introduces: 6 | 7 | * Links to the docs. 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.1.1.md: -------------------------------------------------------------------------------- 1 | # Version 1.1.1 2 | 3 | Launched on 2024/12/24 4 | 5 | This version introduces: 6 | 7 | * Prep for MacOS distribution. 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.1.2.md: -------------------------------------------------------------------------------- 1 | # Version 1.1.2 2 | 3 | Launched on 2024/12/26 4 | 5 | This version introduces: 6 | 7 | * Minor work for a better mobile and desktop experience. 8 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.1.3.md: -------------------------------------------------------------------------------- 1 | # Version 1.1.3 2 | 3 | Launched on 2024/12/31 4 | 5 | This version introduces: 6 | 7 | * A lot of work for the mobile version. Mostly fixes and small tweaks. 8 | 9 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.1.4.md: -------------------------------------------------------------------------------- 1 | # Version 1.1.4 2 | 3 | Launched on 2025/01/06 4 | 5 | This version introduces: 6 | 7 | * Auto detection of new versions && ask for upload. 8 | * More robust error handling of loading the app on desktop and mobile. 9 | * Many improvements and bugfixes. 10 | -------------------------------------------------------------------------------- /src/docs/material/releases/version-1.2.0.md: -------------------------------------------------------------------------------- 1 | # Version 1.2.0 2 | 3 | Launched on 2025/04/06 4 | 5 | This version introduces: 6 | 7 | * Clearer support for self-hosting! 8 | * Support for running as a PWA 9 | * Many bugsfixes, stability improvements, perforamnce improvements, etc. 10 | -------------------------------------------------------------------------------- /src/docs/material/tools/pomodoro-timer.md: -------------------------------------------------------------------------------- 1 | # Pomodoro Timer 2 | 3 | Thrive offers a basic [Pomodoro timer](https://en.wikipedia.org/wiki/Pomodoro_Technique). 4 | You can use it during your work, instead of an external tool. 5 | 6 | ![Timer](../assets/pomodoro-timer.png) 7 | 8 | A CLI command also exists invoked via `thrive pomodoro`. -------------------------------------------------------------------------------- /src/mobile/Config.project: -------------------------------------------------------------------------------- 1 | ENV=local 2 | HOSTING=local 3 | HOSTING_NAME=Main 4 | BASENAME=jupiter-mobile 5 | DESCRIPTION="The Thrive Mobile application" 6 | BUILD_TARGET=to-fill 7 | FRONTDOOR_PATTERN=/frontdoor?clientVersion=to-fill&appShell=mobile-capacitor&appPlatform=to-fill&appDistribution=to-fill 8 | -------------------------------------------------------------------------------- /src/mobile/Config.project.live: -------------------------------------------------------------------------------- 1 | ENV=production 2 | HOSTING=hosted-global 3 | HOSTING_NAME=Main 4 | BASENAME=jupiter-mobile 5 | DESCRIPTION="The Thrive Mobile application" 6 | FRONTDOOR_PATTERN=/frontdoor?clientVersion=to-fill&appShell=mobile-capacitor&appPlatform=to-fill&appDistribution=to-fill 7 | -------------------------------------------------------------------------------- /src/mobile/README.md: -------------------------------------------------------------------------------- 1 | # Thrive Mobile App 2 | 3 | This is the Thrive mobile app. 4 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/java/io/jupiter/app/MainActivity.java: -------------------------------------------------------------------------------- 1 | package io.jupiter.app; 2 | 3 | import com.getcapacitor.BridgeActivity; 4 | 5 | public class MainActivity extends BridgeActivity {} 6 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-hdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-ldpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-mdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-night-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-night-hdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-night-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-night-ldpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-night-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-night-mdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-night-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-night-xhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-night-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-night-xxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-night-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-night-xxxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-xhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-xxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-land-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-land-xxxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-night/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-night/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-hdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-ldpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-mdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-night-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-night-hdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-night-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-night-ldpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-night-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-night-mdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-night-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-night-xhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-night-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-night-xxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-night-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-night-xxxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-xhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-xxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable-port-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable-port-xxxhdpi/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/drawable/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/drawable/splash.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-ldpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Thrive 4 | Thrive 5 | io.jupiter.app 6 | io.jupiter.app 7 | 8 | -------------------------------------------------------------------------------- /src/mobile/android/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/mobile/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/mobile/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /src/mobile/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | include ':capacitor-cordova-android-plugins' 3 | project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') 4 | 5 | apply from: 'capacitor.settings.gradle' -------------------------------------------------------------------------------- /src/mobile/assets/logo.png: -------------------------------------------------------------------------------- 1 | ../../../assets/jupiter.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/mobile/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "idiom": "universal", 5 | "size": "1024x1024", 6 | "filename": "AppIcon-512@2x.png", 7 | "platform": "ios" 8 | } 9 | ], 10 | "info": { 11 | "author": "xcode", 12 | "version": 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "version": 1, 4 | "author": "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany-dark.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@1x~universal~anyany.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany-dark.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@2x~universal~anyany.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany-dark.png -------------------------------------------------------------------------------- /src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/mobile/ios/App/App/Assets.xcassets/Splash.imageset/Default@3x~universal~anyany.png -------------------------------------------------------------------------------- /src/mobile/ios/App/archive.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | method 6 | app-store-connect 7 | 8 | -------------------------------------------------------------------------------- /src/webapi/README.md: -------------------------------------------------------------------------------- 1 | # Web API 2 | 3 | A Web RPI-ish API for Thrive. 4 | 5 | Based on Flask. 6 | -------------------------------------------------------------------------------- /src/webapi/jupiter/webapi/__init__.py: -------------------------------------------------------------------------------- 1 | """The root module for the Web RPC API.""" 2 | -------------------------------------------------------------------------------- /src/webapi/tests/__init__.py: -------------------------------------------------------------------------------- 1 | """Tests for the Web RPC API.""" 2 | -------------------------------------------------------------------------------- /src/webapi/tests/test_webapi.py: -------------------------------------------------------------------------------- 1 | """Tests for the Web RPC API.""" 2 | -------------------------------------------------------------------------------- /src/webapi/typescript: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/webapi/typescript -------------------------------------------------------------------------------- /src/webui/README.md: -------------------------------------------------------------------------------- 1 | # Thrive Web UI 2 | 3 | This is the Thrive Web UI. 4 | -------------------------------------------------------------------------------- /src/webui/app/components/domain/concept/chore/chore-tag.tsx: -------------------------------------------------------------------------------- 1 | import type { Chore } from "@jupiter/webapi-client"; 2 | 3 | import { LinkTag } from "~/components/infra/link-tag"; 4 | 5 | interface Props { 6 | chore: Chore; 7 | } 8 | 9 | export function ChoreTag(props: Props) { 10 | return ; 11 | } 12 | -------------------------------------------------------------------------------- /src/webui/app/components/domain/concept/habit/habit-tag.tsx: -------------------------------------------------------------------------------- 1 | import type { Habit } from "@jupiter/webapi-client"; 2 | 3 | import { LinkTag } from "~/components/infra/link-tag"; 4 | 5 | interface Props { 6 | habit: Habit; 7 | } 8 | 9 | export function HabitTag(props: Props) { 10 | return ; 11 | } 12 | -------------------------------------------------------------------------------- /src/webui/app/components/domain/concept/metric/metric-tag.tsx: -------------------------------------------------------------------------------- 1 | import type { Metric } from "@jupiter/webapi-client"; 2 | 3 | import { LinkTag } from "~/components/infra/link-tag"; 4 | 5 | interface Props { 6 | metric: Metric; 7 | } 8 | 9 | export function MetricTag(props: Props) { 10 | return ; 11 | } 12 | -------------------------------------------------------------------------------- /src/webui/app/components/domain/concept/person/person-tag.tsx: -------------------------------------------------------------------------------- 1 | import type { Person } from "@jupiter/webapi-client"; 2 | 3 | import { LinkTag } from "~/components/infra/link-tag"; 4 | 5 | interface Props { 6 | person: Person; 7 | } 8 | 9 | export function PersonTag(props: Props) { 10 | return ; 11 | } 12 | -------------------------------------------------------------------------------- /src/webui/app/components/domain/concept/project/project-tag.tsx: -------------------------------------------------------------------------------- 1 | import type { Project } from "@jupiter/webapi-client"; 2 | 3 | import { SlimChip } from "~/components/infra/chips"; 4 | 5 | interface Props { 6 | project: Project; 7 | } 8 | 9 | export function ProjectTag(props: Props) { 10 | return ; 11 | } 12 | -------------------------------------------------------------------------------- /src/webui/app/components/domain/core/is-key-tag.tsx: -------------------------------------------------------------------------------- 1 | import { SlimChip } from "~/components/infra/chips"; 2 | 3 | interface IsKeyTagProps { 4 | isKey: boolean; 5 | } 6 | 7 | export function IsKeyTag({ isKey }: IsKeyTagProps) { 8 | if (!isKey) return null; 9 | 10 | return ; 11 | } 12 | -------------------------------------------------------------------------------- /src/webui/app/components/infra/check.tsx: -------------------------------------------------------------------------------- 1 | interface CheckProps { 2 | isDone: boolean; 3 | label?: string; 4 | } 5 | 6 | export default function CheckComponent({ isDone, label }: CheckProps) { 7 | return ( 8 | 9 | {label} {isDone ? "✅" : "✗"} 10 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /src/webui/app/components/infra/entity-icon.tsx: -------------------------------------------------------------------------------- 1 | import type { EntityIcon } from "@jupiter/webapi-client"; 2 | 3 | interface EntityIconProps { 4 | icon: EntityIcon; 5 | } 6 | 7 | export default function EntityIconComponent({ icon }: EntityIconProps) { 8 | return {icon}; 9 | } 10 | -------------------------------------------------------------------------------- /src/webui/app/components/infra/layout/standalone-container.tsx: -------------------------------------------------------------------------------- 1 | import { Stack } from "@mui/material"; 2 | import type { PropsWithChildren } from "react"; 3 | 4 | export function StandaloneContainer(props: PropsWithChildren) { 5 | return {props.children}; 6 | } 7 | -------------------------------------------------------------------------------- /src/webui/app/components/infra/layout/workspace-container.tsx: -------------------------------------------------------------------------------- 1 | import { Stack } from "@mui/material"; 2 | import type { PropsWithChildren } from "react"; 3 | 4 | export function WorkspaceContainer(props: PropsWithChildren) { 5 | return {props.children}; 6 | } 7 | -------------------------------------------------------------------------------- /src/webui/app/components/infra/logo.tsx: -------------------------------------------------------------------------------- 1 | export function Logo() { 2 | return ( 3 | Logo 12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/email-task.ts: -------------------------------------------------------------------------------- 1 | import type { EmailTask, EntityName } from "@jupiter/webapi-client"; 2 | 3 | export function emailTaskNiceName(emailTask: EmailTask): EntityName { 4 | return `Respond to message from ${emailTask.from_name} <${emailTask.from_address}> about ${emailTask.subject}`; 5 | } 6 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/env.ts: -------------------------------------------------------------------------------- 1 | import { Env } from "@jupiter/webapi-client"; 2 | 3 | export function isDevelopment(env: Env) { 4 | return env !== Env.PRODUCTION; 5 | } 6 | 7 | export function isLocal(env: Env) { 8 | return env === Env.LOCAL; 9 | } 10 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/home-tab-target.ts: -------------------------------------------------------------------------------- 1 | import { HomeTabTarget } from "@jupiter/webapi-client"; 2 | 3 | export function homeTabTargetName(target: HomeTabTarget): string { 4 | switch (target) { 5 | case HomeTabTarget.BIG_SCREEN: 6 | return "Big Screen"; 7 | case HomeTabTarget.SMALL_SCREEN: 8 | return "Small Screen"; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/is-key.ts: -------------------------------------------------------------------------------- 1 | export function compareIsKey(a: boolean, b: boolean) { 2 | if (a === b) { 3 | return 0; 4 | } 5 | return a ? -1 : 1; 6 | } 7 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/metric-entry.ts: -------------------------------------------------------------------------------- 1 | import type { MetricEntry } from "@jupiter/webapi-client"; 2 | 3 | import { aDateToDate } from "~/logic/domain/adate"; 4 | 5 | export function metricEntryName(metricEntry: MetricEntry) { 6 | return `${metricEntry.value} at ${aDateToDate( 7 | metricEntry.collection_time, 8 | ).toFormat("yyyy-MM-dd")}`; 9 | } 10 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/schedule-event-full-days.ts: -------------------------------------------------------------------------------- 1 | import type { ScheduleEventInDay } from "@jupiter/webapi-client"; 2 | import { ScheduleSource } from "@jupiter/webapi-client"; 3 | 4 | export function isCorePropertyEditable(event: ScheduleEventInDay): boolean { 5 | return event.source === ScheduleSource.USER; 6 | } 7 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/schedule-event-in-day.ts: -------------------------------------------------------------------------------- 1 | import type { ScheduleEventInDay } from "@jupiter/webapi-client"; 2 | import { ScheduleSource } from "@jupiter/webapi-client"; 3 | 4 | export function isCorePropertyEditable(event: ScheduleEventInDay): boolean { 5 | return event.source === ScheduleSource.USER; 6 | } 7 | -------------------------------------------------------------------------------- /src/webui/app/logic/domain/user.ts: -------------------------------------------------------------------------------- 1 | import type { User, UserFeature } from "@jupiter/webapi-client"; 2 | 3 | export function isUserFeatureAvailable( 4 | user: User, 5 | feature: UserFeature, 6 | ): boolean { 7 | return user.feature_flags[feature]; 8 | } 9 | -------------------------------------------------------------------------------- /src/webui/app/rendering/use-hidrated.ts: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | 3 | export function useHydrated() { 4 | const [hydrated, setHydrated] = useState(false); 5 | useEffect(() => setHydrated(true), []); 6 | return hydrated; 7 | } 8 | -------------------------------------------------------------------------------- /src/webui/app/routes/healthz.tsx: -------------------------------------------------------------------------------- 1 | import { json } from "@remix-run/node"; 2 | 3 | export async function loader() { 4 | return json("OK"); 5 | } 6 | -------------------------------------------------------------------------------- /src/webui/app/routes/index.tsx: -------------------------------------------------------------------------------- 1 | import { redirect } from "@remix-run/node"; 2 | import { ShouldRevalidateFunction } from "@remix-run/react"; 3 | 4 | export const shouldRevalidate: ShouldRevalidateFunction = () => false; 5 | 6 | export async function loader() { 7 | return redirect("/app"); 8 | } 9 | -------------------------------------------------------------------------------- /src/webui/app/secure.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable */ 2 | /* eslint-disable */ 3 | export function secureFn( 4 | target: any, 5 | propertyKey: string, 6 | descriptor: PropertyDescriptor, 7 | ) {} 8 | -------------------------------------------------------------------------------- /src/webui/app/styles/editorjs-tweaks.css: -------------------------------------------------------------------------------- 1 | .ce-block__content { 2 | max-width: 100%; 3 | margin-left: 0.5rem; 4 | margin-right: 0.5rem; 5 | } 6 | 7 | .ce-toolbar__actions { 8 | right: -5px !important; 9 | } 10 | 11 | #entity-block-editor .codex-editor__redactor { 12 | padding-bottom: 4rem !important; 13 | } 14 | -------------------------------------------------------------------------------- /src/webui/npm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/webui/npm -------------------------------------------------------------------------------- /src/webui/public/favicon.ico: -------------------------------------------------------------------------------- 1 | ../../../assets/jupiter.ico -------------------------------------------------------------------------------- /src/webui/public/frontdoor-redirect-hack-init.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/webui/public/frontdoor-redirect-hack-workspace.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/webui/public/logo.png: -------------------------------------------------------------------------------- 1 | ../../../assets/jupiter.png -------------------------------------------------------------------------------- /src/webui/public/pomodoro-notification.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horia141/jupiter/27da346f850cb8124bf09f1dfabc30139c1c2d7b/src/webui/public/pomodoro-notification.mp3 -------------------------------------------------------------------------------- /src/webui/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | --------------------------------------------------------------------------------