Commit Graph

8 Commits

  • Add defaultConvertToLlm to web-ui, simplify example
    - web-ui exports: defaultConvertToLlm, convertAttachments, isUserMessageWithAttachments, isArtifactMessage
    - defaultConvertToLlm handles UserMessageWithAttachments and filters ArtifactMessage
    - Example's customMessageTransformer now extends defaultConvertToLlm
    - Removes duplicated attachment conversion logic from example
  • Fix web-ui and example for new agent API
    - AgentInterface composes UserMessageWithAttachments for attachments
    - Updated example to use convertToLlm instead of transport/messageTransformer
    - Fixed declaration merging: target pi-agent-core, add path to example tsconfig
    - Fixed typo in CustomAgentMessages key (user-with-attachment -> user-with-attachments)
    - customMessageTransformer properly converts UserMessageWithAttachments to content blocks
  • WIP: Major cleanup - move Attachment to consumers, simplify agent API
    - Removed Attachment from agent package (now in web-ui/coding-agent)
    - Agent.prompt now takes (text, images?: ImageContent[])
    - Removed transports from web-ui (duplicate of agent package)
    - Updated coding-agent to use local message types
    - Updated mom package for new agent API
    
    Remaining: Fix AgentInterface.ts to compose UserMessageWithAttachments
  • WIP: Remove global state from pi-ai OAuth/API key handling
    - Remove setApiKey, resolveApiKey, and global apiKeys Map from stream.ts
    - Rename getApiKey to getApiKeyFromEnv (only checks env vars)
    - Remove OAuth storage layer (storage.ts deleted)
    - OAuth login/refresh functions now return credentials instead of saving
    - getOAuthApiKey/refreshOAuthToken now take credentials as params
    - Add test/oauth.ts helper for ai package tests
    - Simplify root npm run check (single biome + tsgo pass)
    - Remove redundant check scripts from most packages
    - Add web-ui and coding-agent examples to biome/tsgo includes
    
    coding-agent still has compile errors - needs refactoring for new API
  • Fix Lit dependency duplication and update mini-lit to 0.2.0
    - Move lit from dependencies to peerDependencies in web-ui to prevent multiple Lit instances being loaded
    - Update mini-lit from 0.1.8/0.1.10 to 0.2.0 in root package.json and web-ui/package.json
    - Install @tailwindcss/vite in web-ui/example
    - Run biome formatting fixes across codebase
    
    This resolves HMR custom element re-registration errors caused by duplicate Lit registries.
  • Add artifact message persistence for session reconstruction
    - Add ArtifactMessage type as core part of AppMessage union (not CustomMessages)
    - ArtifactsRuntimeProvider appends artifact messages on create/update/delete
    - MessageList filters out artifact messages (UI display only)
    - artifacts.ts reconstructFromMessages handles artifact messages
    - Export ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION from main index
    - Fix artifact creation bug: pass filename as title instead of mimeType
    
    Changes:
    - web-ui/src/components/Messages.ts: Add ArtifactMessage to BaseMessage union
    - web-ui/src/components/MessageList.ts: Skip artifact messages in render
    - web-ui/src/components/sandbox/ArtifactsRuntimeProvider.ts: Append messages, fix title parameter
    - web-ui/src/ChatPanel.ts: Pass agent.appendMessage callback
    - web-ui/src/tools/artifacts/artifacts.ts: Handle artifact messages in reconstructFromMessages
    - web-ui/src/index.ts: Export ARTIFACTS_RUNTIME_PROVIDER_DESCRIPTION
    - web-ui/example/src/custom-messages.ts: Update message transformer to filter artifacts
  • Add custom message extension system with typed renderers and message transformer
    - Implement CustomMessages interface for type-safe message extension via declaration merging
    - Add MessageRenderer<T> with generic typing for custom message rendering
    - Add messageTransformer to Agent for filtering/transforming messages before LLM
    - Move message filtering from transports to Agent (separation of concerns)
    - Add message renderer registry with typed role support
    - Update web-ui example with SystemNotificationMessage demo
    - Add custom transformer that converts notifications to <system> tags
    - Add SessionListDialog onDelete callback for active session cleanup
    - Handle non-existent session IDs in URL (redirect to new session)
    - Update both web-ui example and browser extension with session fixes