3216b634a3
⚠️ **AI-generated PR — not ready for review** ⚠️ cc @FelixMalfait --- ## Changes ### System prompt improvements - Explicit skill-before-tools workflow to prevent the model from calling tools without loading the matching skill first - Data efficiency guidance (default small limits, use filters) - Pluralized `load_skill` → `load_skills` for consistency with `load_tools` ### Token usage reduction - Output serialization layer: strips null/undefined/empty values from tool results - Lowered default `find_*` limit from 100 → 10, max from 1000 → 100 ### System object tool generation - System objects (calendar events, messages, etc.) now generate AI tools - Only workflow-related and favorite-related objects are excluded ### Context window display fix - **Bug**: UI compared cumulative tokens (sum of all turns) against single-request context window → showed 100% after a few turns - **Fix**: Track `conversationSize` (last step's `inputTokens`) which represents the actual conversation history size sent to the model - New `conversationSize` column on thread entity with migration ### Workspace AI instructions - Support for custom workspace-level AI instructions --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
39 lines
698 B
TypeScript
39 lines
698 B
TypeScript
import {
|
|
IconBook2,
|
|
IconDatabase,
|
|
IconMail,
|
|
IconTool,
|
|
IconWorld,
|
|
} from 'twenty-ui/display';
|
|
|
|
const TOOL_ICON_MAPPINGS = [
|
|
{
|
|
keywords: ['learn_tools'],
|
|
icon: IconBook2,
|
|
},
|
|
{
|
|
keywords: ['email'],
|
|
icon: IconMail,
|
|
},
|
|
{
|
|
keywords: ['http_request'],
|
|
icon: IconWorld,
|
|
},
|
|
{
|
|
keywords: ['create_', 'update_', 'find_', 'delete_'],
|
|
icon: IconDatabase,
|
|
},
|
|
{
|
|
keywords: ['workflow', 'handoff'],
|
|
icon: IconTool,
|
|
},
|
|
] as const;
|
|
|
|
export const getToolIcon = (toolName: string) => {
|
|
const mapping = TOOL_ICON_MAPPINGS.find(({ keywords }) =>
|
|
keywords.some((keyword) => toolName.includes(keyword)),
|
|
);
|
|
|
|
return mapping?.icon ?? IconTool;
|
|
};
|