mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-28 03:00:29 -04:00
Folder tools
This commit is contained in:
@@ -65,14 +65,16 @@ function MentionHighlight({ context }: { context: ChatMessageContext }) {
|
||||
}
|
||||
|
||||
export function UserMessageContent({ content, contexts }: UserMessageContentProps) {
|
||||
const trimmed = content.trim()
|
||||
|
||||
if (!contexts || contexts.length === 0) {
|
||||
return <p className={USER_MESSAGE_CLASSES}>{content}</p>
|
||||
return <p className={USER_MESSAGE_CLASSES}>{trimmed}</p>
|
||||
}
|
||||
|
||||
const ranges = computeMentionRanges(content, contexts)
|
||||
|
||||
if (ranges.length === 0) {
|
||||
return <p className={USER_MESSAGE_CLASSES}>{content}</p>
|
||||
return <p className={USER_MESSAGE_CLASSES}>{trimmed}</p>
|
||||
}
|
||||
|
||||
const elements: React.ReactNode[] = []
|
||||
|
||||
@@ -20,12 +20,18 @@ import {
|
||||
MothershipStreamV1ToolPhase,
|
||||
} from '@/lib/copilot/generated/mothership-stream-v1'
|
||||
import {
|
||||
CreateFolder,
|
||||
DeleteFolder,
|
||||
DeleteWorkflow,
|
||||
DeployApi,
|
||||
DeployChat,
|
||||
DeployMcp,
|
||||
FileWrite,
|
||||
MoveFolder,
|
||||
MoveWorkflow,
|
||||
Read as ReadTool,
|
||||
Redeploy,
|
||||
RenameWorkflow,
|
||||
ToolSearchToolRegex,
|
||||
WorkspaceFile,
|
||||
} from '@/lib/copilot/generated/tool-catalog-v1'
|
||||
@@ -54,6 +60,7 @@ import {
|
||||
useChatHistory,
|
||||
} from '@/hooks/queries/tasks'
|
||||
import { getFolderMap } from '@/hooks/queries/utils/folder-cache'
|
||||
import { folderKeys } from '@/hooks/queries/utils/folder-keys'
|
||||
import { invalidateWorkflowSelectors } from '@/hooks/queries/utils/invalidate-workflow-lists'
|
||||
import { getTopInsertionSortOrder } from '@/hooks/queries/utils/top-insertion-sort-order'
|
||||
import { getWorkflowById, getWorkflows } from '@/hooks/queries/utils/workflow-cache'
|
||||
@@ -106,6 +113,14 @@ const DEPLOY_TOOL_NAMES: Set<string> = new Set([
|
||||
DeployMcp.id,
|
||||
Redeploy.id,
|
||||
])
|
||||
|
||||
const FOLDER_TOOL_NAMES: Set<string> = new Set([CreateFolder.id, DeleteFolder.id, MoveFolder.id])
|
||||
|
||||
const WORKFLOW_MUTATION_TOOL_NAMES: Set<string> = new Set([
|
||||
MoveWorkflow.id,
|
||||
RenameWorkflow.id,
|
||||
DeleteWorkflow.id,
|
||||
])
|
||||
const RECONNECT_TAIL_ERROR =
|
||||
'Live reconnect failed before the stream finished. The latest response may be incomplete.'
|
||||
const MAX_RECONNECT_ATTEMPTS = 10
|
||||
@@ -982,6 +997,17 @@ export function useChat(
|
||||
}
|
||||
}
|
||||
|
||||
if (FOLDER_TOOL_NAMES.has(tc.name) && tc.status === 'success') {
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: folderKeys.list(workspaceId),
|
||||
})
|
||||
}
|
||||
if (WORKFLOW_MUTATION_TOOL_NAMES.has(tc.name) && tc.status === 'success') {
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: workflowKeys.list(workspaceId),
|
||||
})
|
||||
}
|
||||
|
||||
const extractedResources =
|
||||
tc.status === 'success' && isResourceToolName(tc.name)
|
||||
? extractResourcesFromToolResult(
|
||||
|
||||
@@ -56,11 +56,14 @@ export interface ToolCatalogEntry {
|
||||
| 'manage_mcp_tool'
|
||||
| 'manage_skill'
|
||||
| 'materialize_file'
|
||||
| 'move_folder'
|
||||
| 'move_workflow'
|
||||
| 'oauth_get_auth_link'
|
||||
| 'oauth_request_access'
|
||||
| 'open_resource'
|
||||
| 'read'
|
||||
| 'redeploy'
|
||||
| 'rename_workflow'
|
||||
| 'research'
|
||||
| 'respond'
|
||||
| 'revert_to_version'
|
||||
@@ -137,11 +140,14 @@ export interface ToolCatalogEntry {
|
||||
| 'manage_mcp_tool'
|
||||
| 'manage_skill'
|
||||
| 'materialize_file'
|
||||
| 'move_folder'
|
||||
| 'move_workflow'
|
||||
| 'oauth_get_auth_link'
|
||||
| 'oauth_request_access'
|
||||
| 'open_resource'
|
||||
| 'read'
|
||||
| 'redeploy'
|
||||
| 'rename_workflow'
|
||||
| 'research'
|
||||
| 'respond'
|
||||
| 'revert_to_version'
|
||||
@@ -573,6 +579,22 @@ export const MaterializeFile: ToolCatalogEntry = {
|
||||
requiredPermission: 'write',
|
||||
}
|
||||
|
||||
export const MoveFolder: ToolCatalogEntry = {
|
||||
id: 'move_folder',
|
||||
name: 'move_folder',
|
||||
executor: 'sim',
|
||||
mode: 'async',
|
||||
requiredPermission: 'write',
|
||||
}
|
||||
|
||||
export const MoveWorkflow: ToolCatalogEntry = {
|
||||
id: 'move_workflow',
|
||||
name: 'move_workflow',
|
||||
executor: 'sim',
|
||||
mode: 'async',
|
||||
requiredPermission: 'write',
|
||||
}
|
||||
|
||||
export const OauthGetAuthLink: ToolCatalogEntry = {
|
||||
id: 'oauth_get_auth_link',
|
||||
name: 'oauth_get_auth_link',
|
||||
@@ -611,6 +633,14 @@ export const Redeploy: ToolCatalogEntry = {
|
||||
requiredPermission: 'admin',
|
||||
}
|
||||
|
||||
export const RenameWorkflow: ToolCatalogEntry = {
|
||||
id: 'rename_workflow',
|
||||
name: 'rename_workflow',
|
||||
executor: 'sim',
|
||||
mode: 'async',
|
||||
requiredPermission: 'write',
|
||||
}
|
||||
|
||||
export const Research: ToolCatalogEntry = {
|
||||
id: 'research',
|
||||
name: 'research',
|
||||
@@ -859,11 +889,14 @@ export const TOOL_CATALOG: Record<string, ToolCatalogEntry> = {
|
||||
[ManageMcpTool.id]: ManageMcpTool,
|
||||
[ManageSkill.id]: ManageSkill,
|
||||
[MaterializeFile.id]: MaterializeFile,
|
||||
[MoveFolder.id]: MoveFolder,
|
||||
[MoveWorkflow.id]: MoveWorkflow,
|
||||
[OauthGetAuthLink.id]: OauthGetAuthLink,
|
||||
[OauthRequestAccess.id]: OauthRequestAccess,
|
||||
[OpenResource.id]: OpenResource,
|
||||
[Read.id]: Read,
|
||||
[Redeploy.id]: Redeploy,
|
||||
[RenameWorkflow.id]: RenameWorkflow,
|
||||
[Research.id]: Research,
|
||||
[Respond.id]: Respond,
|
||||
[RevertToVersion.id]: RevertToVersion,
|
||||
|
||||
@@ -31,11 +31,14 @@ import {
|
||||
ManageMcpTool,
|
||||
ManageSkill,
|
||||
MaterializeFile,
|
||||
MoveFolder,
|
||||
MoveWorkflow,
|
||||
OauthGetAuthLink,
|
||||
OauthRequestAccess,
|
||||
OpenResource,
|
||||
Read as ReadTool,
|
||||
Redeploy,
|
||||
RenameWorkflow,
|
||||
RevertToVersion,
|
||||
RunBlock,
|
||||
RunFromBlock,
|
||||
@@ -84,6 +87,9 @@ import {
|
||||
executeDeleteFolder,
|
||||
executeDeleteWorkflow,
|
||||
executeGenerateApiKey,
|
||||
executeMoveFolder,
|
||||
executeMoveWorkflow,
|
||||
executeRenameWorkflow,
|
||||
executeRunBlock,
|
||||
executeRunFromBlock,
|
||||
executeRunWorkflow,
|
||||
@@ -132,6 +138,9 @@ function buildHandlerMap(): Record<string, ToolHandler> {
|
||||
[CreateFolder.id]: h(executeCreateFolder),
|
||||
[DeleteWorkflow.id]: h(executeDeleteWorkflow),
|
||||
[DeleteFolder.id]: h(executeDeleteFolder),
|
||||
[RenameWorkflow.id]: h(executeRenameWorkflow),
|
||||
[MoveWorkflow.id]: h(executeMoveWorkflow),
|
||||
[MoveFolder.id]: h(executeMoveFolder),
|
||||
[RunWorkflow.id]: h(executeRunWorkflow),
|
||||
[RunWorkflowUntilBlock.id]: h(executeRunWorkflowUntilBlock),
|
||||
[RunFromBlock.id]: h(executeRunFromBlock),
|
||||
|
||||
Reference in New Issue
Block a user