feat: add seat-scoped static and dynamic assistant modes

This commit is contained in:
vee
2026-09-12 14:56:30 +08:00
parent d09b5967f8
commit d8dad22ec0
60 changed files with 5847 additions and 149 deletions
@@ -25,8 +25,6 @@ from collections.abc import Set as AbstractSet
from dataclasses import dataclass
from typing import Any
from cognitive_agent.application.semantic_ir import resolve_scene_seat_scopes
MAX_PLAN_BYTES = 24 * 1024
MAX_PLAN_REQUESTS = 12
MAX_PLAN_PARAMETERS = 12
@@ -1159,10 +1157,13 @@ def guard_assistant_plan(
parser_claims.update(_intent_claims(intent))
local_keys = _resolved_keys(trusted_local or {})
non_execution = bool(_NON_EXECUTION_PATTERN.search(text))
scene_seat_scopes = (
resolve_scene_seat_scopes(text if scene_scope_utterance is None else scene_scope_utterance)
if allow_scene_composition else None
)
# An explicit empty internal scope is reserved for already validated saved
# schedules/draft revisions. New scenes use passenger when no seat is named.
scene_seat_scopes = None
if allow_scene_composition and scene_scope_utterance != "":
from cognitive_agent.application.mode_creation_seat_policy import creation_seat_scopes
scene_seat_scopes = creation_seat_scopes(text if scene_scope_utterance is None else scene_scope_utterance)
accepted: list[dict[str, Any]] = []
rejected: list[dict[str, str]] = []