""" permanence.domains.meridian.actions — social-drama action definitions. The Meridian action DEFINITIONS themselves live in two shared modules: * ``permanence.actions.registry`` — hand-written ActionDefinitions (draft_internal_memo, send_external_communication, issue_public_statement, …) * ``permanence.actions.database_actions`` — DATABASE_ACTIONS list for the ``task_db_migration`` legacy task This module re-exports them under a clean domain-local surface so the ``register.py`` in this folder does not need to know where the code physically lives. If we later physically move the definition code into this file, callers do not change. Exposed symbols: ACTIONS: Dict[str, ActionDefinition] """ from __future__ import annotations from typing import Dict from ...actions.definitions import ActionDefinition # Action ids this domain owns. Anything in ACTION_REGISTRY or # DATABASE_ACTIONS that matches is claimed for Meridian. MERIDIAN_ACTION_IDS = frozenset({ "draft_internal_memo", "send_internal_communication", "send_external_communication", "issue_public_statement", "schedule_conversation", "reassign_project_lead", "initiate_hr_formal_process", "approve_full_launch", "approve_staged_rollout", "delay_release", "begin_internal_investigation", "prepare_response_draft", "brief_internal_stakeholders", "review_contract_internally", "align_with_legal", "communicate_resolution_externally", "update_contract_system", "update_internal_records", "schedule_client_follow_up", }) def _collect() -> Dict[str, ActionDefinition]: # Import here to avoid a circular dependency at module-load time # (actions.registry pulls from devtools.actions which pulls from # world.state which can cascade back through tasks.task_bank). from ...actions import registry as _registry_mod out: Dict[str, ActionDefinition] = {} for aid, spec in _registry_mod.ACTION_REGISTRY.items(): if aid in MERIDIAN_ACTION_IDS: out[aid] = spec # Legacy task_db_migration actions are also Meridian-owned (they mutate # the same employee/project/board state as other social actions). try: from ...actions.database_actions import DATABASE_ACTIONS for spec in DATABASE_ACTIONS: out[spec.action_id] = spec except ImportError: pass return out ACTIONS: Dict[str, ActionDefinition] = _collect()