The ai_member_voices table and the charter voice-pin migration, as hand-applied SQL
SP96 Task 2. The table remembers an AI member's voice per TTS model (spec 5.1); the migration moves every charter VOICE pin to a CHOSEN, MIGRATED, preferred row...
Translation and OCR façades on the router for the Tool Plane
F1 POST /api/ai/v1/translations {text, to, from?} and F2 POST /api/ai/v1/ocr (multipart file, optional filename), SP05 spec §4.17: the caller's session, SP04's ...
Member chat uses the Tool Plane with the member's own session; MCP server admin contract fixed
Member and widget chat routed, policy-checked and metered by the router stack
Realtime relay WebSocket with single-use tickets, session cap and metering
Realtime tickets — relay tickets in Redis or OpenAI ephemeral secrets
Ephemeral secrets are minted through the gateway's shared family walk (every dialled mint metered, a rejected key marks the provider, budget alerts after the ti...
Transcription and speech façades metered in audio seconds and characters
E4 POST /api/ai/v1/audio/transcriptions and E5 POST /api/ai/v1/audio/speech, each with its internal twin, on SP01's family adapters. The WAV-header duration wal...
Embeddings on the pinned model and rerank façades
Inputs and documents reach the model in batches it accepts (TEI refuses more than its client batch of 32 with 422; a reranker's maxDocuments); malformed fields ...
POST /api/ai/agent/step with tool use, thinking replay, cache breakpoints and SSE
OpenAI-compatible chat completions with tools, images, structured output and SSE
Internal router resolve endpoint
E1 POST **************** the ordered candidates and exclusions for a capability, 424 no_capability when none, 404 org_not_found for an org that is not live (rea...
Legacy routing, /internal/text and /internal/vision on the router, with provenance
The gate's AI-member path; retire the persona outreach engine
Quiet hours convert the service clock into the contact's zone instead of relabelling it (ruling SP03-T32).
Session/internal caller context, app gate, provenance and the gateway call runtime
Candidate walk with failover, one-shot parameter fallback and metered streaming
Provider credentials never reach the log, the usage row or the rethrown error; a failed provider-health write never costs an answer; an interrupt stops the walk...
Map a Studio config onto job-title charter items
SalesAgentCharterMapper maps a Sales Agent's AgentConfig onto job-title charter items (spec 4.7.8) for the fold-in, and the six Studio templates onto the A9 per...
Compile a charter into an operating brief and a job description
RRuleText words every rule CharterRRule accepts (month-day and monthly weekday lists, an hourly rule's days) and quotes one it cannot read, so a single stored r...
Chat, routing and the model picker run on the registry; capability backfill replaces the pricing backfill
Catalog and coverage, platform console API, internal registration and attestation, health sweep
Model endpoints — manual models, capability edits and verify, price rows, retire-not-delete
A context edit keeps an enabled LONG_CONTEXT in step, so the next capability write no longer restores the old value; a listed capability that needs details is r...
Provider endpoints on the registry — draft test, sync, verify, retire-not-delete, Provided-by-Kamo opt-out
Live capability probes — VERIFIED only from a passing probe; batch verify capped at 200
A chat probe fails on a 200 that is not a completion, names a failure as the connection check does (TLS included), cancels a call that runs out of time, and a 4...
Credentials from env or vault, org/platform visibility, platform-right authz, safe views, internal auth
Capability source precedence, the single capability writer, and the batch capability index
An adapter that denies TEXT_GENERATION speaks for the whole chat family; a switched-off LONG_CONTEXT never overwrites a reported context; remove leaves a tombst...
Deepgram, ElevenLabs, AssemblyAI, Cartesia families and the per-type adapter registry
Beyond the plan: the Perplexity chat check classifies failures as every other check does (spec 4.7.3); ElevenLabs and Cartesia refuse a missing voice and a voic...
Real model discovery for OpenAI-style, Anthropic, Google, Hugging Face, Ollama and catalogue-only vendors
Known-model catalogue (hints + unchanged prices) and name-hint classifier
The sales agent honours the organization's email opt-out list
Before any email touch the outbound gate now asks the organization's email opt-out ledger about the contact's address. The address is the one the contact key po...
Lock the shared sweeps, and run two pods
Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...
Unreviewed-response counts and a mark-read
Keyed by session guid, which is what a tool window carries. Not audited as a disclosure: it returns counts and never a word of a transcript, and recording a bad...
Point at YugabyteDB and use PostgreSQLDialect
CockroachDB has been replaced by YugabyteDB. Connection strings move from cockroachdb-public:26257 to yb-tserver-service:5433, and the Hibernate dialect from **...
Persist AI conversation PHI access trail to phi_access_log
Stored assistant conversations are the reads least able to afford a 14-day, unqueryable log stream: the module sits outside the compliance boundary, so prompts ...
Record PHI access on every read of stored AI conversation history
Wires the shared §164.312(b) spine into the paths that read persisted prompts and completions. The assistant is the module the compliance assessment put OUTSIDE...
Per-agent scorecard
What each agent actually did: conversations, how often a person had to take over and why, outreach outcomes including the ones held back, and what it cost. Eve...
Model pricing catalog, write path and backfill
Cost accounting could never work: AiModel has price columns, AiModelController reads them and ChatOrchestrationService reads them to compute costEstimate - but ...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
