- Add backend API endpoints for agent export/import
- GET /agents/{agent_id}/export - exports agent configuration as JSON
- POST /agents/import - imports agent from JSON (new agents only)
- Add AgentExportData and AgentImportRequest Pydantic models
- Integrate export functionality in agent config header
- Add always-visible 3-dots menu left of "Prompt to Build" tab
- Include export option in dropdown menu for all agent types
- Handle loading states during export process
- Add subtle import functionality to new agent dialog
- Replace mode selection with "or import from JSON" link
- Support file upload and validation for agent JSON
- Streamline UX for creating agents from templates
- Create React Query hooks for export/import operations
- useExportAgent: handles JSON download with proper error handling
- useImportAgent: creates new agent and invalidates cache
- Remove update existing agent option (import creates new agents only)
- Fix API integration to use direct fetch calls with backend URL
- Clean up unused components and improve code organization
This enables users to share agent configurations across instances
and create agents from templates with an intuitive interface.
- Updated the UsageLogEntry interface to include new fields: message_id, thread_id, created_at, content, total_tokens, estimated_cost, and project_id.
- Modified the truncateString function to handle optional string input, returning an empty string if no input is provided.
- Introduced separate mappings for production and staging environments.
- Updated the configuration to dynamically select the appropriate yearly commitment plans based on the current environment mode.
- Added support for yearly commitment plans with associated pricing tiers in the billing service.
- Introduced validation functions to manage plan changes and restrictions based on business rules.
- Updated configuration to include new yearly commitment pricing in both production and staging environments.
- Enhanced frontend components to handle subscription management, including cancellation and reactivation features.
- Refactored billing-related hooks and API calls to accommodate new subscription types and improve error handling.
- Added margin classes to labels for better spacing and alignment.
- Updated card header styling for a cleaner look.
- Enhanced text visibility by adding margin to description labels.
- Simplified the API key creation success message for clarity.
- Adjusted button labels for improved user experience.
- Added a new API keys service with endpoints for creating, listing, revoking, and deleting API keys.
- Integrated API key validation and caching for performance.
- Updated backend configuration to include API key secret and throttling settings.
- Created frontend components for managing API keys, including a user interface for creating and displaying keys.
- Introduced a new database migration for the API keys table with necessary constraints and security policies.
- Enhanced authentication methods to support API key usage alongside JWT.
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx:41:11
Type error: Object literal may only specify known properties, and 'color' does not exist in type 'ReactDiffViewerStylesVariables'.
39 | variables: {
40 | dark: {
> 41 | color: '#e2e8f0',
| ^
42 | background: '#09090b',
43 | addedBackground: '#104a32',
44 | addedColor: '#6ee7b7',
Next.js build worker exited with code: 1 and signal: null
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx:41:11
Type error: Object literal may only specify known properties, and 'color' does not exist in type 'ReactDiffViewerStylesVariables'.
39 | variables: {
40 | dark: {
> 41 | color: '#e2e8f0',
| ^
42 | background: '#09090b',
43 | addedBackground: '#104a32',
44 | addedColor: '#6ee7b7',
Next.js build worker exited with code: 1 and signal: null
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'generateLineDiff' is not exported from './_utils' (imported as 'generateLineDiff').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'calculateDiffStats' is not exported from './_utils' (imported as 'calculateDiffStats').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
⚠ Compiled with warnings in 40.0s
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'generateLineDiff' is not exported from './_utils' (imported as 'generateLineDiff').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'calculateDiffStats' is not exported from './_utils' (imported as 'calculateDiffStats').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
like stream the code-edit output of the agent; Then we should be able to show the diff as well, when the tool complete. We get the original file content, and the full updated code (output of morph) and some how send it to the front end.
the front end should show this properly , concisely so user can see the changes in green / red.
This shouldn't change the content feed to the model btw. Like it will pollute the context.
make a plan what to do first, not make changes yet