// Public surface of @oscharko-dev/keiko-contracts. Issue #158 carries the first real type surface
// out of `src/<layer>/types.ts` into this leaf package. Re-exports use the explicit `export type`
// form for type-only names and `export` for value-emitting frozen const tables because
// verbatimModuleSyntax is on in tsconfig.base.json.
//
// The workflow event families (unit-test, bug-investigation) reuse the harness event-type NAMES
// (ModelCallStartedEvent, ModelCallCompletedEvent, PatchAppliedEvent, VerificationResultEvent) by
// structural convention. We surface only the workflow event UNION types here; the harness member
// names own the bare identifiers. Callers narrow on the union to reach the member shapes — the
// same pattern src/index.ts already uses.
//
// Issue #178 adds the connected repository context surface (Epic #177): pure type contracts plus
// pure validation helpers for the upcoming Files window → Conversation Center handoff.
//
// Issue #191 adds the Local Knowledge Connector surface (Epic #189): KnowledgeSource /
// KnowledgeCapsule / CapsuleSet primitives, document and vector lineage records, connector
// graph state, and pure validation helpers. No implementation — types only. Implementation
// lands in subsequent epic children.
export const KEIKO_CONTRACTS_VERSION = "0.8.0";
// Single-source product version. Surfaced as `keiko --version`, in the BFF healthcheck
// response, and as the SDK's exported `SDK_VERSION` constant. Kept here on the leaf
// package so every consumer reaches it through one stable import path. Bump in lockstep
// with the root package.json "version" field as part of every release.
export const KEIKO_PRODUCT_VERSION = "0.2.0-beta.3";
export { TERMINAL_STATES, DEFAULT_LIMITS, HARNESS_CODES, HARNESS_VERSION } from "./harness.js";
export { DEFAULT_DISCOVERY_OPTIONS, DEFAULT_READ_OPTIONS, SELECTION_REASON_PRIORITY, DEFAULT_CONTEXT_REQUEST, } from "./workspace.js";
export { CONVERSATION_CAPABILITY_CONTRACT_VERSION } from "./gateway.js";
export { isConversationEligibleModel, explainConversationIneligibility } from "./gateway.js";
export { DEFAULT_ENV_ALLOWLIST, DEFAULT_SANDBOX_POLICY, DEFAULT_COMMAND_RULES, DEFAULT_PATCH_LIMITS, DEFAULT_TOOL_HOST_CONFIG, } from "./tools.js";
export { DEFAULT_VERIFICATION_LIMITS } from "./verification.js";
export { EVALUATION_DIMENSIONS, EVAL_SCORECARD_SCHEMA_VERSION } from "./evaluations.js";
export { DEFAULT_WORKFLOW_LIMITS } from "./unit-test-events.js";
export { DEFAULT_BUG_WORKFLOW_LIMITS } from "./bug-investigation-events.js";
export { EVIDENCE_SCHEMA_VERSION, DEFAULT_RETENTION } from "./evidence.js";
export { buildGroundedAnswerContextPackSummary, DEFAULT_GROUNDING_LIMITS, GROUNDING_LIMIT_CEILINGS, resolveGroundingLimits, } from "./bff-wire.js";
export { CONNECTED_CONTEXT_SCHEMA_VERSION, SELECTED_SCOPE_KINDS, EVIDENCE_ATOM_PROVENANCE_KINDS, EVIDENCE_ATOM_REDACTION_STATES, RETRIEVAL_QUERY_KINDS, CANDIDATE_OMISSION_REASONS, UNCERTAINTY_MARKER_KINDS, CONNECTED_FILE_ROLES, DEFAULT_EXPLORATION_BUDGET, isValidScopePath, isValidLineRange, isWithinBudget, validateSelectedScope, validateEvidenceAtom, validateRetrievalQuery, validateConnectedContextPack, } from "./connected-context.js";
export { WORKFLOW_HANDOFF_SCHEMA_VERSION, DEFAULT_PATCH_SCOPE_LIMITS, EXPECTED_CHECKS, WORKFLOW_KINDS, validatePatchScope, validateWorkflowHandoffRequest, isApprovalTokenShape, checkPatchAgainstScope, } from "./workflow-handoff.js";
export { CAPSULE_METADATA_MAX_KEYS, CAPSULE_METADATA_KEY_MAX_CHARS, CAPSULE_METADATA_VALUE_MAX_CHARS, CAPSULE_SET_MAX_MEMBERS, LOCAL_KNOWLEDGE_SCHEMA_VERSION, EMBEDDING_VECTOR_METRICS, KNOWLEDGE_SOURCE_SCOPE_KINDS, CAPSULE_LIFECYCLE_STATES, CAPSULE_RETRIEVAL_EFFORTS, CAPSULE_OUTPUT_MODES, CAPSULE_ANSWER_GROUNDING_POLICIES, CONNECTOR_NODE_KINDS, } from "./local-knowledge.js";
export { DOCUMENT_STATUSES, PARSED_UNIT_KINDS, PARSER_DIAGNOSTIC_SEVERITIES, INDEXING_JOB_STATUSES, } from "./local-knowledge-records.js";
export { isSafeScopePath, isSafeStorageReference } from "./local-knowledge-paths.js";
export { isSafeDisplaySummary, validateEmbeddingModelIdentity, validateKnowledgeSourceScope, validateKnowledgeCapsule, validateCapsuleSet, validateConnectorGraphState, } from "./local-knowledge-validation.js";
export { LOCAL_KNOWLEDGE_DB_SCHEMA_VERSION, KNOWLEDGE_CAPSULE_DDL, KNOWLEDGE_CAPSULE_INDEXES, KNOWLEDGE_CAPSULE_MIGRATIONS, KNOWLEDGE_CAPSULE_V1_TABLES, KNOWLEDGE_CAPSULE_TABLES, KNOWLEDGE_CAPSULE_INDEX_NAMES, DELETE_CAPSULE_SQL, } from "./local-knowledge-schema.js";
export { validateCapsuleRowShape, redactPathInDiagnostic, } from "./local-knowledge-schema-validation.js";
export { MEMORY_AUDIT_ACTION_KINDS, MEMORY_AUDIT_EVENT_KINDS, MEMORY_AUDIT_EVENT_SCHEMA_VERSION, MEMORY_AUDIT_EVENT_SUMMARY_MAX_CHARS, MEMORY_AUDIT_INITIATOR_SURFACES, MEMORY_EDGE_KINDS, MEMORY_SCHEMA_VERSION, MEMORY_SCOPE_KINDS, MEMORY_SENSITIVITIES, MEMORY_SOURCE_KINDS, MEMORY_STATUSES, MEMORY_STATUS_TRANSITIONS, MEMORY_STRUCTURED_PAYLOAD_KINDS, MEMORY_TYPES, MEMORY_UPDATE_FIELDS, assertNeverMemoryType, checkStatusTransition, hasStaleModelMetadata, isMemoryEdge, isMemoryRecord, isScopeReachable, looksLikeSecretShape, validateMemoryAcceptance, validateMemoryArchive, validateMemoryAuditRecord, validateMemoryEdge, validateMemoryForget, validateMemoryPin, validateMemoryProposal, validateMemoryProvenance, validateMemoryRecord, validateMemoryRejection, validateMemoryRetrievalRequest, validateMemoryScope, validateMemoryStructuredPayload, validateMemorySupersession, validateMemoryUnpin, validateMemoryUpdate, validateMemoryValidityInterval, } from "./memory-barrel.js";
export { estimateConversationBudget } from "./conversation-budget.js";
// ─── Quality Intelligence (Issue #277 / Epic #270) ─────────────────────────────
// QI surface is re-exported under a single namespace because the QI vocabulary
// (RunId, TestCaseId, finding kinds, etc.) collides with names already used by
// gateway/workflow/audit modules above. Consumers reach the QI types via
// `import { QualityIntelligence } from "@oscharko-dev/keiko-contracts";` and then
// `QualityIntelligence.QualityIntelligenceRunEvent`, or via the subpath barrel.
// The schema version literal follows the same evolution rule as
// LOCAL_KNOWLEDGE_SCHEMA_VERSION / MEMORY_SCHEMA_VERSION: a breaking change adds a
// new literal member instead of mutating the existing one.
export * as QualityIntelligence from "./qualityIntelligence/index.js";
export { assertExportBundleInvariant, QUALITY_INTELLIGENCE_EXPORT_ADAPTERS, QUALITY_INTELLIGENCE_TMS_ADAPTERS, } from "./qualityIntelligence/index.js";
export { WORKSPACE_RESERVED_CHORDS, workspaceActionLabel, workspaceChordKey, workspaceChordsEqual, isWorkspaceReservedChord, workspaceInverseAction, } from "./workspace-ui.js";
export { WORKSPACE_LIFECYCLE_STATES, WORKSPACE_TRUST_BOUNDARIES, WORKSPACE_AUTHORITY_REQUIREMENTS, WORKSPACE_PERSISTENCE_EXPECTATIONS, validateWorkspaceDescriptorMeta, } from "./workspace-descriptors.js";
export { RELATIONSHIP_ACTIVITY_STATES, RELATIONSHIP_DENIAL_CODES, RELATIONSHIP_FORBIDDEN_METADATA_KEY_SUBSTRINGS, RELATIONSHIP_LIFECYCLE_STATES, RELATIONSHIP_OBJECT_KINDS, RELATIONSHIP_SCHEMA_VERSION, RELATIONSHIP_SUPPORTED_OBJECT_KINDS, RELATIONSHIP_TYPE_DEFINITIONS, RELATIONSHIP_TYPES, } from "./relationships.js";
export { assertRelationshipTypeAllowsKinds, validateRelationship, } from "./relationships-validation.js";
