Knowledge Portal · engineering documentation

Skip to content

Federated from workspace · PL-003 · zaixos-ai-platform/docs/CONTRACTS_INVENTORY.md Do not edit canonical truth here — update the source repo, then re-run npm run docs:sync.


CONTRACTS_INVENTORY — M-18 Wave 1

Package: zaixos/ai-contracts @ 0.2.0
Namespace root: Zaixos\Ai\Contracts\

Wave 1 public contract surface extracted from PRD-001 AI module. Framework-agnostic; tenant-scoped via tenantId.


Contracts (Contracts/)

ContractPurpose
AiPlatformContractSubmit and retrieve AI jobs; returns AiJobSnapshot
AiProviderContractProvider identity and completion execution
AiStreamingProviderContractStreaming completion via AiStreamEvent generator
AiEmbeddingProviderContractEmbedding generation
AiProviderConnectivityContractProvider health verification
AiProviderFactoryResolve provider by key
AiAgentContractAgent run orchestration
AiToolHandlerContractTenant-scoped tool execution (no provider/vector access)
VectorStoreContractVector upsert, search, tenant-scoped delete
MemoryStoreContractSession memory remember/recall/delete
KnowledgeRetrievalContractRAG retrieval from vector knowledge
ConversationStoreContractConversation and message persistence (string IDs)
AiUsageQuotaContractPre-execution quota assertion and usage recording
AiEvaluationRunnerContractEvaluation suite runner stub

DTOs (DTOs/)

DTOPurpose
SubmitAiJobDataJob submission command
AiJobSnapshotJob read model (replaces Eloquent)
AiCompletionRequestProvider completion request
AiCompletionResponseNormalized provider completion response
AiCompletionResultGateway-facing completion result
AiStreamEventStreaming event payload
AiEmbeddingRequestEmbedding request
AiEmbeddingResponseEmbedding response
AiAgentRunRequestAgent run command (agentKey)
AiAgentRunResultAgent run result (agentKey)
AiAgentStreamRequestAgent streaming command (agentKey)
AiToolCallFunction-call invocation
AiToolHandlerResultTool handler output
AiToolExecutionRequestBatch tool execution request
AiToolExecutionResultBatch tool execution result
AiFunctionDefinitionDiscoverable tool schema
VectorSearchQueryVector similarity search query
VectorSearchResultVector search matches
VectorUpsertDataVector upsert payload
VectorMatchSingle vector match
AiRetrievalRequestKnowledge retrieval request
AiRetrievalResultKnowledge retrieval result
AiSessionMemoryDataSession memory entry
CreateAiConversationDataConversation creation command
AppendAiMessageDataMessage append command
CreateAiPromptTemplateDataPrompt template creation
AiCostEstimateCost estimation snapshot
AiAssistantDefinitionAssistant configuration
AiAssistantMemoryConfigAssistant memory settings
AiAssistantRetrievalConfigAssistant retrieval settings

Enums (Enums/)

EnumValues (summary)
AiJobOperationcompletion, chat, embedding
AiStreamEventTypestarted, content_delta, tool_call_delta, completed, error
AiContentBlockTypetext, image, audio
AiFinishReasonstop, length, content_filter, tool_calls, error, unknown
AiProviderHealthStatushealthy, degraded, unhealthy, stub, not_configured, not_implemented
AiProviderErrorCodeauthentication, rate_limit, invalid_request, not_found, server_error, timeout, connectivity, capability_denied, not_implemented, unknown
AiModelCapabilitychat, completion, vision, audio, image_generation, embeddings, function_calling, streaming
AiProviderCapabilitychat_completions, embeddings, image_generation, audio_transcription, audio_generation, function_calling, streaming, batch_processing
AiConversationRolesystem, user, assistant, tool
AiConversationStatusactive, archived
AiJobStatuspending, processing, completed, failed
AiProviderTypestub, openai, anthropic, google_gemini, azure_openai

All enums expose a static values(): array method.


Value Objects (ValueObjects/)

Value ObjectPurpose
AiUsageToken usage counts
AiContentBlockNormalized content block
AiProviderHealthSnapshotConnectivity check result (DateTimeImmutable)
AiProviderCapabilitiesProvider capability matrix
AiModelCapabilitiesModel capability matrix
AiProviderErrorStructured provider error

Exceptions (Exceptions/)

ExceptionPurpose
AiProviderExceptionProvider failure with structured error
AiCapabilityNotSupportedCapability denial
AiAgentNotFoundUnregistered agent
AiToolNotPermittedTool not allowed for assistant
AiToolHandlerNotFoundMissing tool handler
AiAssistantNotFoundUnregistered assistant

Extraction notes

  • Source: PRD-001 app/Modules/AI/ (reference only — not modified)
  • Renames: clinicIdtenantId, assistantKeyagentKey on agent run DTOs
  • AiAssistantDefinition::fromConfig() defaults defaultProviderKey to 'stub' (no config())
  • AiPlatformContract uses AiJobSnapshot instead of Eloquent AiJob

ZAIXOS Knowledge Portal — public engineering docs at /docs · Staff operations at /admin