core/generate/__init__.py
Shay 4d68dc89c7
chore(generate): delete unreachable agenerate (#90)
Closes audit Finding 7 (2026-05-20).

``agenerate`` was a 43-line async generator at the bottom of
``generate/stream.py`` that reimplemented the walk loop without
salience candidates, inner-loop admissibility, language candidates,
rotor admissibility, margin mode, trajectory recording, vault recall
scoring, or admissibility tracing — every capability the sync
``generate()`` has accrued since ADR-0022.

Caller audit:
  * ``ChatRuntime.achat`` / ``ChatRuntime.arespond`` call the sync
    ``generate()`` under ``asyncio.to_thread`` semantics (the
    explicit comment in ``achat`` documents this: "the underlying
    call is still synchronous CPU-bound work").
  * No production code, eval, demo, or test references
    ``agenerate``.
  * Re-exported in ``generate/__init__.py`` but only as a public
    name, never consumed.

The function was therefore reachable only by accident — any caller
wiring it would silently get a walk that ignores every ADR added
since ADR-0022.  CLAUDE.md's "small, load-bearing PRs" doctrine
explicitly disfavors maintaining diverged reimplementations of the
core loop as a future hook.

Removed:
  * ``async def agenerate`` (43 lines) from ``generate/stream.py``.
  * ``agenerate`` from the ``generate/__init__.py`` star import and
    ``__all__``.

If a real async walk path becomes necessary later (e.g. once
``achat`` needs genuine off-thread execution), the right shape is a
thin ``asyncio.to_thread`` wrapper over the real ``generate()`` —
not a parallel reimplementation.

Verification:
  * ``ripgrep agenerate`` — zero remaining references in the repo.
  * ``core test --suite cognition`` — 120/0/1.
  * ``core test --suite smoke`` — 67/0.
  * ``core test --suite runtime`` — 19/0.
2026-05-20 19:59:28 -07:00

35 lines
721 B
Python

from .proposition import (
FrameRegistry,
FrameSlot,
Proposition,
PropositionFrame,
propose,
)
from .dialogue import (
DialogueRole,
DialogueTurn,
blade_alignment,
classify_dialogue_blade,
propose_dialogue,
trajectory_blade,
)
from .stream import generate
from .surface import SentenceAssembler, SentencePlan, assemble as assemble_surface
__all__ = [
"DialogueRole",
"DialogueTurn",
"FrameRegistry",
"FrameSlot",
"Proposition",
"PropositionFrame",
"blade_alignment",
"classify_dialogue_blade",
"generate",
"propose",
"propose_dialogue",
"trajectory_blade",
"SentenceAssembler",
"SentencePlan",
"assemble_surface",
]