/** * questions/public — curated public surface of the questions capability. * * Re-exports stable contracts from domain, application, and ports. * Runtime adapter creation (tool factories, agent) is accessible here for * package consumers; internal module details (presets, prompt builders, qud * taxonomy) remain private to the application layer. * * ## Boundary * * References only questions/domain, questions/application, and questions/ports. * Never imports from runtime/foreground, host implementations, or other * capability internals. * * ## Intentionally excluded from public surface * * The following are application-internal: * - getPreset, QuestionerPreset — LLM preset internals; import from * questions/application/ when needed for testing overrides. * - QUD_UNDERSPECIFICATION_RULES — prompt composition detail. * - buildDiscoveryQuestionPrompt, DISCOVERY_SYSTEM_PROMPT — prompt internals. * - chatQuestionWaitTimeoutMs, CHAT_QUESTION_WAIT_TIMEOUT_MS_DEFAULT — only * needed inside the ask tool itself. * - setQuestionerAgentForTesting — test seam, not for consumers. * * ## Foreground vs ambient delivery * * **Foreground adapters** (authenticated, participant-directed): * - `createQuestionerTools` — MCP tools for read/answer/dismiss. * - `createAskUserQuestionTools` — blocking inline chat questions. * * **Ambient adapters** (background generation, not exported here): * - Recovery, pool, uptake, inflight, and push generation are scheduled by * QuestionerQueue (backend) via `QuestionerEnqueueFn`. The queue calls * `QuestionerAgent.invoke()` with the appropriate mode context. * * IND-547: canonical public surface for the questions capability. * Legacy paths (capabilities/questions.facade.ts) re-export from here. */ export * from "../domain/index.js"; export { QuestionerAgent } from "../application/index.js"; export type { QuestionerAgentConfig } from "../application/index.js"; export { isQuestionerEnabled, isDiscoveryQuestionsEnabled, isUptakeGuardEnabled, uptakeAuthorityThreshold, discoveryQuestionsInputMode, discoveryQuestionsTimeoutMs, DISCOVERY_QUESTIONS_TIMEOUT_MS_DEFAULT, UPTAKE_AUTHORITY_THRESHOLD_DEFAULT, } from "../application/index.js"; export { isValidQuestionerInputContract, } from "../application/index.js"; export type { QuestionerInput, QuestionerEnqueuePayload, QuestionerEnqueueFn, PoolDiscoveryContext, RecoveryQuestionerInput, UptakeQuestionerInput, PostStallQuestionerInput, InflightQuestionerInput, } from "../application/index.js"; export { createQuestionerTools, createAskUserQuestionTools } from "../application/index.js"; export type { AskUserQuestionToolDeps, ChatQuestionAnswerOutcome, ChatQuestionsHost, PersistableQuestion, PersistedQuestion, QuestionFilters, QuestionGeneratorReader, QuestionerDatabase, QuestionerToolDeps, } from "../ports/index.js";