/**
 * SessionSummaryRef — the structured pointer a parent session sees when a
 * sub-session completes. Kernel-owned terminalization primitive: the only
 * producer is `SessionSummaryMaterializer.materialize` (see
 * `session/summary/materialize.ts`). See session-hierarchy.md §4.7 (shape)
 * and §8.1 (emission invariant).
 *
 * The `materializedBy: 'kernel'` literal field is load-bearing — combined
 * with the opaque {@link SummaryId} brand (mintable only by
 * `generateSummaryId`), it enforces at the type level that no agent or tool
 * can construct a valid `SessionSummaryRef`. `SessionStore.recordSummary`
 * only accepts `SessionSummaryRef & { materializedBy: 'kernel' }`, so even a
 * payload shaped correctly would fail the structural check.
 *
 * This is Convention #0 load-bearing: there is no "tool" path to emit a
 * summary; the parent agent sees only what the kernel seals.
 *
 * Runtime errors related to summary emission (`AgentSummaryTooLongError`,
 * `SessionAlreadySummarizedError`) are runtime and therefore live at
 * `session/summary/errors.ts` — they are NOT pure shapes.
 */
/**
 * Max characters allowed for {@link SessionSummaryRef.agentSummary}. See
 * session-hierarchy.md §4.7 — the agent's narration is bounded to keep
 * parent prompts token-finite regardless of the child's transcript length.
 */
export const AGENT_SUMMARY_MAX_CHARS = 4000;
//# sourceMappingURL=ref.js.map