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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plans/KEYMAP-PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Each finding is stated as: pattern, the fact, where it is restated (at), the mec
3. **MEMB-2, exposure is a hand roster per surface.** Fact: which actions a user can discover.
At: the footer reads `show` (49 hand flags). The palette reads the `PaletteAction` mixin (6 members, `application_actions.py:26`). The sidebar menu reads `MenuAction` (4 members, `widget_actions.py:33`). Textual's `HelpPanel` reads only the focused chain's `BINDINGS`. An action is invisible unless someone remembers each opt-in.
Derive: every declared action is exposed. The surfaces are views over one registry. Hiding is the exception, declared once (`System`, for instance).
By: the family registry filled at `__init_subclass__` (`agent_comms.declared_family.DeclaredFamily`, already the root of `ApplicationAction`).
By: the family registry filled at `__init_subclass__` (`agent_comms.nominal.declared_family.DeclaredFamily`, already the root of `ApplicationAction`).
4. **Hand-numbered ranks.** Fact: menu order.
At: `menu_order = 0/10/20/100` (6 sites: `application_actions.py:34, 72, 131`; `comms_transfer.py:66, 89, 107`).
Derive: declaration order in the registry.
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
PromptRequest,
)
from agent_comms.context_reading import UnmeasuredContext
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec
from agent_comms.goal_actions import GoalAction
from agent_comms.goal_presentation import GoalSnapshot, IdleGoalExecution
from agent_comms.goals import Goal, GoalDeclaration, NoGoal
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/agent_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
SessionConfigSelectOption,
)
from agent_comms.acp_failure import RequestFailure
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from metaclass_registry.mro_dispatch import MroDispatch, handles


Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/agent_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from agent_comms.acp_extension import HistoryOnlyQueueProjection
from agent_comms.acp_failure import ACPFailure, RequestFailure
from agent_comms.child_process import join_retirement
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.errors import RouteChangedError
from agent_comms.input_attempt import NotSentInput
from agent_comms.owner_protocol import IncompatibleOwner
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/log_records.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
)
from pydantic import TypeAdapter, ValidationError
from agent_comms.acp_failure import ACPFailure, RequestFailure
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily


class LogSource(DeclaredFamily, affix="LogSource"):
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/permission_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import asyncio
from abc import abstractmethod
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from acp import schema as protocol
from .client_session import ClientRequestOwner, ClientSessionRequest
from toad.answer import Answer
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/prompt.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from acp import schema
from acp.helpers import ContentBlock
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec
from agent_comms.image_input import ImageInput
from agent_comms.image_inputs import prompt_images

Expand Down
4 changes: 2 additions & 2 deletions src/toad/acp/sdk_boundary.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

from acp.schema import SessionNotification, ToolCall
from agent_comms.acp_extension import AgentCommsUpdate, decode_updates
from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import FieldRepresentation
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import FieldRepresentation

from toad.acp.notification_items import NotificationItems
from toad.render_backend import RenderTask
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/shell_command.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Shell syntax is decoded at the command boundary, not at retirement."""
from abc import abstractmethod
import os
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily


class ShellCommand(DeclaredFamily, affix="ShellCommand"):
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/status.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from acp.schema import ToolCall
from agent_comms.agent_event_updates import AcpToolAction
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from metaclass_registry.mro_dispatch import MroDispatch, handles
from agent_comms.transcript_events import (
ToolEndTranscript,
Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/terminal_controller.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""ACP terminal requests address operational executions, never mounted widgets."""
from abc import abstractmethod
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.child_process import join_retirement
import asyncio

Expand Down
2 changes: 1 addition & 1 deletion src/toad/acp/tool_calls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from dataclasses import dataclass, field, replace

from acp.schema import ToolCall, ToolCallStart, ToolCallUpdate
from agent_comms.field_codec import ToolCallId
from agent_comms.nominal.field_codec import ToolCallId
from agent_comms.transcript_sources import AssignedSourceIdentity
from agent_comms.transcripts import NativeCommittedPrefix
from toad.core import events
Expand Down
2 changes: 1 addition & 1 deletion src/toad/agent_presentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from abc import abstractmethod
from dataclasses import dataclass
from pathlib import Path
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.acp_extension import PendingQueueProjection, QueueProjection
from toad.private_native_cursor import CursorStatus, HiddenCursorStatus
from toad.conversation_turn import TurnBinding, LocalTurnBinding, ManagedTurnBinding
Expand Down
4 changes: 2 additions & 2 deletions src/toad/agent_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Annotated, Literal
from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import FieldCodec, TextRepresentation, WireName
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import FieldCodec, TextRepresentation, WireName
from toad.platform import Platform


Expand Down
2 changes: 1 addition & 1 deletion src/toad/ansi/_ansi.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from typing import ClassVar, Literal, NamedTuple

import rich.repr
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from rich.cells import chop_cells
from rich.color import Color
from rich.style import Style
Expand Down
2 changes: 1 addition & 1 deletion src/toad/application_actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from functools import partial
from typing import TYPE_CHECKING, Literal
from textual.command import DiscoveryHit, Hit, Hits, Provider
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec
from toad.preferences import SETTINGS
from toad.screens.keymap import KeymapScreen
from toad.widget_actions import (
Expand Down
2 changes: 1 addition & 1 deletion src/toad/block_navigation.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from functools import cached_property
from typing import TYPE_CHECKING, Callable, ClassVar, cast

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.ui_model.message_category import MessageCategory, OtherCategory
from textual.geometry import Region
from textual.widget import Widget
Expand Down
2 changes: 1 addition & 1 deletion src/toad/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import click

from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec
from agent_comms.repo import Checkout
from toad.session_scope import AgentAttached, AgentBinding, NoAgent

Expand Down
2 changes: 1 addition & 1 deletion src/toad/clipboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from abc import abstractmethod
from collections.abc import Callable

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from pyperclip import PyperclipException
from textual.app import App
from textual._clipboard import ClipboardContent
Expand Down
2 changes: 1 addition & 1 deletion src/toad/conversation_kind.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
)
from agent_comms.channels import AllChannel
from agent_comms.comms import Comms
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.display_references import CurrentDisplayReferences
from agent_comms.historical_views import (
ChannelDisplayHistory,
Expand Down
2 changes: 1 addition & 1 deletion src/toad/conversation_submission.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
QueueScope,
SteerPromptRequest,
)
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily

from toad import messages
from toad.acp.client_session import ClientSessionRequest
Expand Down
2 changes: 1 addition & 1 deletion src/toad/conversation_turn.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from typing import TYPE_CHECKING

from agent_comms.activity import ActivityState
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.turn_lease import NoTurn as IdleTurn
from agent_comms.turn_lease import TurnState
from agent_comms.ui_model.status import ThreadStatusModel
Expand Down
4 changes: 2 additions & 2 deletions src/toad/core/context_inspection.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
from agent_comms.coordination_errors import Refused
from agent_comms.context_store import LATEST_CONTEXT, ContextManifestCursor
from agent_comms.coordinator import Coordination
from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import FieldCodec
from agent_comms.importing import ImportedSessionMetadata
from metaclass_registry.mro_dispatch import handles
from agent_comms.native_turn_context import NativeContextData
Expand Down
4 changes: 2 additions & 2 deletions src/toad/core/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
from typing import TYPE_CHECKING, Annotated, ClassVar
from weakref import WeakMethod, WeakSet, WeakValueDictionary, ref

from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import PathText
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import PathText
from agent_comms.presentation import ReadState
from agent_comms.transcript_sources import AssignedSourceIdentity
from toad.plan import PlanItem
Expand Down
2 changes: 1 addition & 1 deletion src/toad/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from time import time_ns
from typing import Annotated, Self

from agent_comms.field_codec import NullMember, RecordedTimestamp, TimestampText
from agent_comms.nominal.field_codec import NullMember, RecordedTimestamp, TimestampText
from agent_comms.repo import Checkout
from agent_comms.store_files import DEFAULT_ISOLATION
from agent_comms.typed_table import (
Expand Down
2 changes: 1 addition & 1 deletion src/toad/file_kind.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Accepted attachment and preview kinds have one declaration owner."""
from pathlib import Path
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from textual.widgets import Static


Expand Down
2 changes: 1 addition & 1 deletion src/toad/frame_presentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from typing import TYPE_CHECKING, ClassVar
from weakref import ref

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from textual._paint_state import PaintState
from textual.app import ScreenStackError, UnknownModeError
from textual.strip import Strip
Expand Down
2 changes: 1 addition & 1 deletion src/toad/goal_interaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from typing import ClassVar, TYPE_CHECKING
from weakref import ref

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.goal_actions import ClearGoalAction, GoalAction
from agent_comms.goal_presentation import ControlledExecution, GoalExecution
from agent_comms.goal_history import RecordedGoalHistory
Expand Down
4 changes: 2 additions & 2 deletions src/toad/inline_spans.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
from abc import abstractmethod
from dataclasses import dataclass, field

from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import FieldCodec

from toad.line_blocks import CodeRole, EmphasisRole, Span, StrongRole, TextRole, UrlRole
from toad.markdown_links import MessageMarkdownParser
Expand Down
2 changes: 1 addition & 1 deletion src/toad/input_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from pathlib import Path
from typing import Literal, cast

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from toad.history import History, HistoryEntry


Expand Down
4 changes: 2 additions & 2 deletions src/toad/keymap.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import toad
from objectstate import mark_ui_hidden_config

from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import NominalSpelling, NominalText
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import NominalSpelling, NominalText
from textual.binding import Binding, BindingsMap
from textual.document._editing import EditorCommand
from textual.keys import KeyInvocation
Expand Down
4 changes: 2 additions & 2 deletions src/toad/line_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
import re
from urllib.parse import quote, unquote

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.display_references import DisplayReference
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec

from typing import ClassVar

Expand Down
2 changes: 1 addition & 1 deletion src/toad/live_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from dataclasses import dataclass, field
from typing import TYPE_CHECKING

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily

from toad.response_delivery import ResponseDelivery, UnroutedResponse
from toad.widgets.committed_presentation import CAPTURED_CLAIM, CapturedClaim
Expand Down
4 changes: 2 additions & 2 deletions src/toad/markdown_links.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
from threading import local
from typing import TYPE_CHECKING

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.display_references import ReferenceContext
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec
from markdown_it import MarkdownIt
from markdown_it.rules_core import StateCore
from markdown_it.token import Token
Expand Down
4 changes: 2 additions & 2 deletions src/toad/mcp_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import os

from agent_comms.command import Command
from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import FieldCodec
from toad.mcp_declarations import Declaration, Inventory


Expand Down
4 changes: 2 additions & 2 deletions src/toad/mcp_declarations.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import re
from typing import Annotated, Literal

from agent_comms.declared_family import DeclaredFamily
from agent_comms.field_codec import WireName
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.nominal.field_codec import WireName


class InventoryScope(DeclaredFamily, affix="Scope"):
Expand Down
2 changes: 1 addition & 1 deletion src/toad/mcp_inventory.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import shutil
from pathlib import Path

from agent_comms.field_codec import FieldCodec
from agent_comms.nominal.field_codec import FieldCodec
from agent_comms.launch_runtime import LaunchRuntime
from toad import mcp_declarations

Expand Down
2 changes: 1 addition & 1 deletion src/toad/mcp_outcomes.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Local process outcomes do not establish approval."""

from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily


class DecisionOutcome(DeclaredFamily, affix="Outcome"):
Expand Down
2 changes: 1 addition & 1 deletion src/toad/message_rows.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

from agent_comms.channel_targets import CommandTarget, ChannelTarget, ThreadTarget
from metaclass_registry.mro_dispatch import MroDispatch, handles
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.messages import Message
from agent_comms.routing import MessageRoute

Expand Down
2 changes: 1 addition & 1 deletion src/toad/navigation_preparation.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

from agent_comms.coordination_errors import Refused
from agent_comms.comms import Comms
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily
from agent_comms.registry_document import RegistrySnapshot
from agent_comms.session_load import ExistingSessionLoadPlan
from agent_comms.thread_execution import ConversationPreparation
Expand Down
2 changes: 1 addition & 1 deletion src/toad/navigation_target.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from agent_comms.channel_targets import ChannelSelection, CommandTarget
from agent_comms.channel_targets import ChannelTarget as CoreChannelTarget
from agent_comms.channel_targets import ThreadTarget as CoreThreadTarget
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily

from toad.constants import ALL_COMMS_TARGET
from toad.navigation_context import NavigationContext, NavigationOwner
Expand Down
2 changes: 1 addition & 1 deletion src/toad/permission_presentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from abc import abstractmethod
from acp.schema import FileEditToolCallContent, ContentToolCallContent, TerminalToolCallContent
from dataclasses import dataclass
from agent_comms.declared_family import DeclaredFamily
from agent_comms.nominal.declared_family import DeclaredFamily


@dataclass
Expand Down
Loading
Loading