Implement workspace-scoped conversation storage with legacy migration based on host workspace metadata, active host workspace state protection, and frontend/backend conversation list scoping. Add proactive recent-conversation prompt support with a configurable personal-space limit, frozen per conversation metadata, empty-conversation filtering, and a dedicated prompt template. Add conversation_search and conversation_review tools with readable formatted results, workspace-only access, current-conversation exclusion, multi-keyword search, list mode, message/tool counts, read/save review modes, long-review fallback to .agents/review, and frontend detail renderers. Move internal workspace artifacts under .agents, update upload/skills/compact/review paths, show .agents internal directories in prompt file trees, and adjust versioning ignores. Add create_skill and a Skills tool category, move read_skill into that category, validate and archive skill folders, support host global skills and Docker/API private skills, and sync private skills into .agents/skills and prompts. Update memory stamping with conversation/time source metadata and include frontend icon/status/display updates plus tests for workspace conversation storage and skills management.
98 lines
2.9 KiB
TypeScript
98 lines
2.9 KiB
TypeScript
export const ICONS = Object.freeze({
|
|
bot: '/static/icons/bot.svg',
|
|
book: '/static/icons/book.svg',
|
|
brain: '/static/icons/brain.svg',
|
|
brainCog: '/static/icons/brain-cog.svg',
|
|
camera: '/static/icons/camera.svg',
|
|
check: '/static/icons/check.svg',
|
|
checkbox: '/static/icons/checkbox.svg',
|
|
circleAlert: '/static/icons/circle-alert.svg',
|
|
clipboard: '/static/icons/clipboard.svg',
|
|
clock: '/static/icons/clock.svg',
|
|
eye: '/static/icons/eye.svg',
|
|
file: '/static/icons/file.svg',
|
|
flag: '/static/icons/flag.svg',
|
|
folder: '/static/icons/folder.svg',
|
|
folderOpen: '/static/icons/folder-open.svg',
|
|
globe: '/static/icons/globe.svg',
|
|
hammer: '/static/icons/hammer.svg',
|
|
info: '/static/icons/info.svg',
|
|
laptop: '/static/icons/laptop.svg',
|
|
layers: '/static/icons/layers.svg',
|
|
keyboard: '/static/icons/keyboard.svg',
|
|
menu: '/static/icons/menu.svg',
|
|
mcpLogo: '/static/icons/mcp-logo.svg',
|
|
monitor: '/static/icons/monitor.svg',
|
|
navigation: '/static/icons/navigation.svg',
|
|
octagon: '/static/icons/octagon.svg',
|
|
pencil: '/static/icons/pencil.svg',
|
|
python: '/static/icons/python.svg',
|
|
recycle: '/static/icons/recycle.svg',
|
|
save: '/static/icons/save.svg',
|
|
search: '/static/icons/search.svg',
|
|
settings: '/static/icons/settings.svg',
|
|
sparkles: '/static/icons/sparkles.svg',
|
|
stickyNote: '/static/icons/sticky-note.svg',
|
|
terminal: '/static/icons/terminal.svg',
|
|
trash: '/static/icons/trash.svg',
|
|
triangleAlert: '/static/icons/triangle-alert.svg',
|
|
bell: '/static/icons/bell.svg',
|
|
user: '/static/icons/user.svg',
|
|
userPen: '/static/icons/user-pen.svg',
|
|
wrench: '/static/icons/wrench.svg',
|
|
x: '/static/icons/x.svg',
|
|
zap: '/static/icons/zap.svg'
|
|
});
|
|
|
|
export const TOOL_ICON_MAP = Object.freeze({
|
|
close_sub_agent: 'bot',
|
|
create_file: 'file',
|
|
create_skill: 'sparkles',
|
|
manage_personalization: 'userPen',
|
|
create_folder: 'folder',
|
|
create_sub_agent: 'bot',
|
|
delete_file: 'trash',
|
|
extract_webpage: 'globe',
|
|
write_file: 'pencil',
|
|
edit_file: 'pencil',
|
|
vlm_analyze: 'camera',
|
|
ocr_image: 'camera',
|
|
read_file: 'book',
|
|
read_skill: 'book',
|
|
rename_file: 'pencil',
|
|
run_command: 'terminal',
|
|
run_python: 'python',
|
|
save_webpage: 'save',
|
|
sleep: 'clock',
|
|
todo_create: 'stickyNote',
|
|
todo_update_task: 'check',
|
|
terminal_input: 'keyboard',
|
|
terminal_session: 'monitor',
|
|
terminal_snapshot: 'clipboard',
|
|
unfocus_file: 'eye',
|
|
update_memory: 'brain',
|
|
conversation_search: 'search',
|
|
conversation_review: 'book',
|
|
get_sub_agent_status: 'bot',
|
|
web_search: 'search',
|
|
trigger_easter_egg: 'sparkles',
|
|
list_mcp_servers: 'mcpLogo',
|
|
view_image: 'camera',
|
|
view_video: 'eye'
|
|
});
|
|
|
|
export const TOOL_CATEGORY_ICON_MAP = Object.freeze({
|
|
network: 'globe',
|
|
mcp: 'mcpLogo',
|
|
file_edit: 'pencil',
|
|
personalization: 'userPen',
|
|
read_focus: 'eye',
|
|
skills: 'sparkles',
|
|
terminal_realtime: 'monitor',
|
|
terminal_command: 'terminal',
|
|
memory: 'brain',
|
|
todo: 'stickyNote',
|
|
sub_agent: 'bot',
|
|
easter_egg: 'sparkles'
|
|
});
|