4 KiB
Changelog
[Unreleased]
[0.40.0] - 2026-01-08
[0.39.1] - 2026-01-08
[0.39.0] - 2026-01-08
[0.38.0] - 2026-01-08
[0.37.8] - 2026-01-07
[0.37.7] - 2026-01-07
[0.37.6] - 2026-01-06
[0.37.5] - 2026-01-06
[0.37.4] - 2026-01-06
[0.37.3] - 2026-01-06
[0.37.2] - 2026-01-05
[0.37.1] - 2026-01-05
[0.37.0] - 2026-01-05
[0.36.0] - 2026-01-05
[0.35.0] - 2026-01-05
[0.34.2] - 2026-01-04
[0.34.1] - 2026-01-04
[0.34.0] - 2026-01-04
[0.33.0] - 2026-01-04
[0.32.3] - 2026-01-03
[0.32.2] - 2026-01-03
[0.32.1] - 2026-01-03
[0.32.0] - 2026-01-03
[0.31.1] - 2026-01-02
[0.31.0] - 2026-01-02
Breaking Changes
-
Agent class moved to
@mariozechner/pi-agent-core: TheAgentclass,AgentState, and related types are no longer exported from this package. Import them from@mariozechner/pi-agent-coreinstead. -
Transport abstraction removed:
ProviderTransport,AppTransport,AgentTransportinterface, and related types have been removed. TheAgentclass now usesstreamFnfor custom streaming. -
AppMessagerenamed toAgentMessage: Now imported from@mariozechner/pi-agent-core. Custom message types use declaration merging onCustomAgentMessagesinterface. -
UserMessageWithAttachmentsis now a custom message type: Hasrole: "user-with-attachments"instead ofrole: "user". UseisUserMessageWithAttachments()type guard. -
CustomMessagesinterface removed: Use declaration merging onCustomAgentMessagesfrom@mariozechner/pi-agent-coreinstead. -
agent.appendMessage()removed: Useagent.queueMessage()instead. -
Agent event types changed:
AgentInterfacenow handles new event types from@mariozechner/pi-agent-core:message_start,message_end,message_update,turn_start,turn_end,agent_start,agent_end.
Added
-
defaultConvertToLlm: Default message transformer that handlesUserMessageWithAttachmentsandArtifactMessage. Apps can extend this for custom message types. -
convertAttachments: Utility to convertAttachment[]to LLM content blocks (images and extracted document text). -
isUserMessageWithAttachments/isArtifactMessage: Type guard functions for custom message types. -
createStreamFn: Creates a stream function with CORS proxy support. Reads proxy settings on each call for dynamic configuration. -
Default
streamFnandgetApiKey:AgentInterfacenow sets sensible defaults if not provided:streamFn: UsescreateStreamFnwith proxy settings from storagegetApiKey: Reads fromproviderKeysstorage
-
Proxy utilities exported:
applyProxyIfNeeded,shouldUseProxyForProvider,isCorsError,createStreamFn
Removed
Agentclass (moved to@mariozechner/pi-agent-core)ProviderTransportclassAppTransportclassAgentTransportinterfaceAgentRunConfigtypeProxyAssistantMessageEventtypetest-sessions.tsexample file
Migration Guide
Before (0.30.x):
import { Agent, ProviderTransport, type AppMessage } from '@mariozechner/pi-web-ui';
const agent = new Agent({
transport: new ProviderTransport(),
messageTransformer: (messages: AppMessage[]) => messages.filter(...)
});
After:
import { Agent, type AgentMessage } from '@mariozechner/pi-agent-core';
import { defaultConvertToLlm } from '@mariozechner/pi-web-ui';
const agent = new Agent({
convertToLlm: (messages: AgentMessage[]) => {
// Extend defaultConvertToLlm for custom types
return defaultConvertToLlm(messages);
}
});
// AgentInterface will set streamFn and getApiKey defaults automatically
Custom message types:
// Before: declaration merging on CustomMessages
declare module "@mariozechner/pi-web-ui" {
interface CustomMessages {
"my-message": MyMessage;
}
}
// After: declaration merging on CustomAgentMessages
declare module "@mariozechner/pi-agent-core" {
interface CustomAgentMessages {
"my-message": MyMessage;
}
}