/** Deterministic UUID fixtures. Deliberately absent from the package barrel. */ import { createHash } from 'node:crypto' import { unsafeId } from '../types/ids/brand.js' import type { ActivityId, AdvisoryCallId, AdvisoryId, AgentId, AuditEventId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DeliverableId, DocumentId, EnvironmentId, ExecutionContextId, HandoffId, KnowledgeBaseId, KnowledgeBaseRef, LockId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MemoryStoreRef, MessageId, PlanId, PluginId, ProjectId, RecordId, SandboxId, SessionId, SubSessionId, SummaryId, TaskId, TenantId, ToolCallId, TopicId, TurnId, UserId, VaultRef, WorkspaceId, } from '../types/ids/index.js' /** Casts without checking. The name is the warning. */ export function unchecked(value: string): T { return unsafeId(value) } /** Maps a readable fixture label to a stable, valid UUID without global state. */ export function fixtureUuid(label: string): string { const bytes = createHash('sha256').update(label).digest().subarray(0, 16) bytes[6] = ((bytes[6] ?? 0) & 0x0f) | 0x40 bytes[8] = ((bytes[8] ?? 0) & 0x3f) | 0x80 const hex = bytes.toString('hex') return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}` } /** * One entry per entity type, keyed by the bare concept rather than the * type name — `fixtureId.turn('a')`, not `fixtureId.TurnId('a')`. */ export const fixtureId = { turn: (suffix: string): TurnId => unsafeId(fixtureUuid(`turn_${suffix}`)), record: (suffix: string): RecordId => unsafeId(fixtureUuid(`rec_${suffix}`)), message: (suffix: string): MessageId => unsafeId(fixtureUuid(`msg_${suffix}`)), session: (suffix: string): SessionId => unsafeId(fixtureUuid(`ses_${suffix}`)), toolCall: (suffix: string): ToolCallId => unsafeId(fixtureUuid(`call_${suffix}`)), activity: (suffix: string): ActivityId => unsafeId(fixtureUuid(`act_${suffix}`)), task: (suffix: string): TaskId => unsafeId(fixtureUuid(`task_${suffix}`)), plan: (suffix: string): PlanId => unsafeId(fixtureUuid(`plan_${suffix}`)), knowledgeBase: (suffix: string): KnowledgeBaseId => unsafeId(fixtureUuid(`kb_${suffix}`)), document: (suffix: string): DocumentId => unsafeId(fixtureUuid(`doc_${suffix}`)), chunk: (suffix: string): ChunkId => unsafeId(fixtureUuid(`chk_${suffix}`)), connector: (suffix: string): ConnectorId => unsafeId(fixtureUuid(`conn_${suffix}`)), connectorInstance: (suffix: string): ConnectorInstanceId => unsafeId(fixtureUuid(`ci_${suffix}`)), tenant: (suffix: string): TenantId => unsafeId(fixtureUuid(`tnt_${suffix}`)), credential: (suffix: string): CredentialId => unsafeId(fixtureUuid(`cred_${suffix}`)), executionContext: (suffix: string): ExecutionContextId => unsafeId(fixtureUuid(`ectx_${suffix}`)), mCPServer: (suffix: string): MCPServerId => unsafeId(fixtureUuid(`mcp_${suffix}`)), mCPClient: (suffix: string): MCPClientId => unsafeId(fixtureUuid(`mcpc_${suffix}`)), mCPSession: (suffix: string): MCPSessionId => unsafeId(fixtureUuid(`mcps_${suffix}`)), environment: (suffix: string): EnvironmentId => unsafeId(fixtureUuid(`env_${suffix}`)), checkpoint: (suffix: string): CheckpointId => unsafeId(fixtureUuid(`cp_${suffix}`)), lock: (suffix: string): LockId => unsafeId(fixtureUuid(`lock_${suffix}`)), advisory: (suffix: string): AdvisoryId => unsafeId(fixtureUuid(`adv_${suffix}`)), advisoryCall: (suffix: string): AdvisoryCallId => unsafeId(fixtureUuid(`advc_${suffix}`)), memory: (suffix: string): MemoryId => unsafeId(fixtureUuid(`mem_${suffix}`)), plugin: (suffix: string): PluginId => unsafeId(fixtureUuid(`plg_${suffix}`)), sandbox: (suffix: string): SandboxId => unsafeId(fixtureUuid(`sbx_${suffix}`)), auditEvent: (suffix: string): AuditEventId => unsafeId(fixtureUuid(`aud_${suffix}`)), user: (suffix: string): UserId => unsafeId(fixtureUuid(`usr_${suffix}`)), agent: (suffix: string): AgentId => unsafeId(fixtureUuid(`agt_${suffix}`)), memoryStoreRef: (suffix: string): MemoryStoreRef => unsafeId(fixtureUuid(`mms_${suffix}`)), vaultRef: (suffix: string): VaultRef => unsafeId(fixtureUuid(`vlt_${suffix}`)), knowledgeBaseRef: (suffix: string): KnowledgeBaseRef => unsafeId(fixtureUuid(`kbs_${suffix}`)), project: (suffix: string): ProjectId => unsafeId(fixtureUuid(`prj_${suffix}`)), topic: (suffix: string): TopicId => unsafeId(fixtureUuid(`top_${suffix}`)), subSession: (suffix: string): SubSessionId => unsafeId(fixtureUuid(`sub_${suffix}`)), handoff: (suffix: string): HandoffId => unsafeId(fixtureUuid(`hof_${suffix}`)), workspace: (suffix: string): WorkspaceId => unsafeId(fixtureUuid(`wsp_${suffix}`)), summary: (suffix: string): SummaryId => unsafeId(fixtureUuid(`sum_${suffix}`)), deliverable: (suffix: string): DeliverableId => unsafeId(fixtureUuid(`del_${suffix}`)), } as const