Skip to content

0.9.0

Choose a tag to compare

@spryker-release-bot spryker-release-bot released this 25 Sep 13:42
· 2 commits to master since this release

Included commits: 0.8.6...0.9.0

Improvements

  • Introduced AiFoundationClientInterface::streamPrompt() to let storefront features stream AI replies token by token directly from the Client layer, with a bounded tool-call loop, chat history persistence, and AI interaction logging per turn.
  • Introduced AiFoundationClientInterface::deleteConversationHistoryCollection() to let storefront features remove the stored conversation of a customer.
  • Introduced AiFoundationFacadeInterface::initChatSession() to resolve an allowlisted AI configuration together with the stored chat history in a single call.
  • Introduced AiFoundationFacadeInterface::saveConversationHistoryCollection() to persist the chat history of one or more conversation references in one transaction.
  • Introduced AiFoundationFacadeInterface::deleteConversationHistoryCollection() to remove the persisted chat history of the given conversation references.
  • Introduced AiFoundationConfig::getClientResolvableAiConfigurationNames() to let projects allowlist the AI configurations a storefront caller may resolve, keeping other configurations inaccessible from the Client layer.
  • Introduced initChatSessionAction(), saveConversationHistoryCollectionAction(), deleteConversationHistoryCollectionAction(), and createAiInteractionLogCollectionAction() in GatewayController to expose the chat session, chat history, and audit log operations to the Client layer.
  • Introduced the Client tool plugin stack via AiFoundationDependencyProvider::PLUGINS_AI_TOOL with Client\AiFoundation\Dependency\Tools\ToolPluginInterface and ToolParameterInterface, so storefront features can expose AI tools without a Zed round trip.
  • Introduced AiFoundationDependencyProvider::PLUGINS_PRE_TOOL_CALL and AiFoundationDependencyProvider::PLUGINS_POST_TOOL_CALL with PreToolCallPluginInterface and PostToolCallPluginInterface on the Client layer to let projects approve, block, or observe every tool call made during a streamed prompt.
  • Introduced AiFoundationDependencyProvider::PLUGINS_POST_PROMPT with PostPromptPluginInterface to let projects react after a streamed prompt turn completed.
  • Introduced AiFoundationDependencyProvider::PLUGINS_STREAM_EVENT with StreamEventPluginInterface to let projects deliver stream chunks to the customer, for example over server-sent events.
  • Introduced AiFoundationDependencyProvider::PLUGIN_VENDOR_PROVIDER with VendorProviderPluginInterface and NeuronAiVendorProviderPlugin to let projects replace the Client-side AI vendor adapter.
  • Introduced AiInteractionAuditLogPostPromptPlugin and AiInteractionAuditLogPostToolCallPlugin to write an AI interaction log entry for every storefront prompt and tool call.
  • Introduced AiInteractionAuditLoggerConfigPlugin to configure the AI interaction audit log channel on the Client layer.
  • Introduced AiFoundationConstants::PROVIDER_OPENAI_RESPONSES to support the OpenAI Responses API, which is required to combine tools with reasoning and to stream reasoning summaries.
  • Introduced the additionalModelRequestFields option of the bedrock provider configuration, which is forwarded to every Bedrock Converse request.
  • Introduced the ToolParameterType and PromptStreamChunkType enums to describe tool parameter types and stream chunk types consistently across the Client and Zed layers.
  • Introduced AiConfiguration, ChatSessionRequest, ChatSessionResponse, ConversationHistoryCollectionRequest, ConversationHistoryCollectionDeleteCriteria, ConversationHistoryCollectionResponse, and PromptStreamChunk transfers to carry the chat session, chat history, and streaming data.
  • Added PromptRequestTransfer.systemPrompt to let a caller override the system prompt of the resolved AI configuration per request.
  • Added PromptRequestTransfer.toolNames to let a caller select individual tools from the Client-side tool plugin stack.
  • Added PromptResponseTransfer.streamedContent to return the accumulated reply, including the partial reply when a stream ended early.
  • Added ToolInvocationTransfer.isSuccessful to show whether a tool execution completed successfully.
  • Added AiToolCallTransfer.toolCallId to pass the provider-generated tool call identifier to the pre- and post-tool-call plugins.
  • Added spryker/log to the module requirements to support AI interaction audit logging.

Adjustments

  • Adjusted ToolParameterInterface::getType() on the Zed layer to resolve its value against ToolParameterType, falling back to ToolParameterType::String for an unknown value.
  • Adjusted the spy_ai_conversation_history.original_messages column type from LONGVARCHAR to CLOB so that long conversations within the configured context window are no longer truncated.

Fixes

  • Fixed tool execution so that a tool blocked by a pre-tool-call plugin returns an explicit skip result instead of an empty one, preventing the model from reacting to a missing tool result.