/**
 * Current-code invariants asserted (2026-04-21, ses_006 Phase 6):
 *
 *   - `AdvisoryExecutor.consult(advisor, request, callCtx)`:
 *     - Builds a system prompt (see buildSystemPrompt tests).
 *     - Builds a context message block (see buildContext tests).
 *     - Concatenates `[system, ...context, user(question)]` and calls
 *       `advisor.provider.chat(...)` with `toolChoice: 'none'`.
 *     - Parses the response via a passthrough `{ advice: rawContent }`
 *       shape (no structured parsing yet — advisor.ts line 166-168).
 *     - Returns `{result, usage, cost, durationMs}`. `cost` is a
 *       zero-value `CostInfo` — pricing is provider-specific and not
 *       applied here.
 *
 *   - `buildSystemPrompt` priority:
 *     1. `advisor.systemPrompt` (verbatim).
 *     2. `advisor.persona` (via `assembleSystemPrompt`).
 *     3. Fallback: "You are <name>, an advisory agent." + optional
 *        domains line + "Provide concise, actionable advice..."
 *
 *   - `buildContext`:
 *     - Returns [] when `request.includeContext === false`.
 *     - Includes workingStateSummary when present.
 *     - Includes toolCatalog names when present + non-empty.
 *     - Includes truncated conversation context (most-recent-first
 *       walk, bounded by `advisor.maxContextTokens * CHARS_PER_TOKEN`).
 *     - Returns [] when no context parts were assembled.
 *
 *   - `truncateMessages(msgs, maxTokens)` walks right-to-left and
 *     includes messages until the char budget is exhausted (in token
 *     terms). Returns the included subset preserving original order.
 *     No limit when `maxTokens` is undefined.
 */
export {};
//# sourceMappingURL=executor.test.d.ts.map