diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/utils.ts b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/utils.ts index 8079fc40de6..4ccbf00f5a2 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/utils.ts +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/utils.ts @@ -64,6 +64,7 @@ const TOOL_ICONS: Record = { research: Search, scout: Search, search: Search, + platform: Library, context_compaction: Asterisk, open_resource: Eye, file: File, diff --git a/apps/sim/app/workspace/[workspaceId]/home/types.ts b/apps/sim/app/workspace/[workspaceId]/home/types.ts index e6d21c27765..cf2a46b1b7c 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/types.ts +++ b/apps/sim/app/workspace/[workspaceId]/home/types.ts @@ -189,6 +189,7 @@ export const SUBAGENT_LABELS: Record = { custom_tool: 'Custom Tool Agent', scout: 'Scout Agent', search: 'Search Agent', + platform: 'Platform Agent', superagent: 'Superagent', run: 'Run Agent', agent: 'Tools Agent', diff --git a/apps/sim/lib/copilot/generated/tool-catalog-v1.ts b/apps/sim/lib/copilot/generated/tool-catalog-v1.ts index 54b7cce13e7..79feea0cecd 100644 --- a/apps/sim/lib/copilot/generated/tool-catalog-v1.ts +++ b/apps/sim/lib/copilot/generated/tool-catalog-v1.ts @@ -85,6 +85,7 @@ export interface ToolCatalogEntry { | 'oauth_get_auth_link' | 'oauth_request_access' | 'open_resource' + | 'platform' | 'promote_to_live' | 'query_logs' | 'query_user_table' @@ -200,6 +201,7 @@ export interface ToolCatalogEntry { | 'oauth_get_auth_link' | 'oauth_request_access' | 'open_resource' + | 'platform' | 'promote_to_live' | 'query_logs' | 'query_user_table' @@ -247,6 +249,7 @@ export interface ToolCatalogEntry { | 'file' | 'knowledge' | 'media' + | 'platform' | 'run' | 'search' | 'table' @@ -3825,6 +3828,26 @@ export const OpenResource: ToolCatalogEntry = { }, } +export const Platform: ToolCatalogEntry = { + id: 'platform', + name: 'platform', + route: 'subagent', + mode: 'async', + parameters: { + properties: { + task: { + description: + "A fully self-contained question about Sim — the platform agent sees none of this conversation, so include every name, id, constraint, and prior finding it needs. Example: 'what is the minimum schedule-trigger interval, and does it differ by plan?' or 'does the agent block persist memory across runs?'.", + type: 'string', + }, + }, + required: ['task'], + type: 'object', + }, + subagentId: 'platform', + internal: true, +} + export const PromoteToLive: ToolCatalogEntry = { id: 'promote_to_live', name: 'promote_to_live', @@ -5937,6 +5960,7 @@ export const TOOL_CATALOG: Record = { [OauthGetAuthLink.id]: OauthGetAuthLink, [OauthRequestAccess.id]: OauthRequestAccess, [OpenResource.id]: OpenResource, + [Platform.id]: Platform, [PromoteToLive.id]: PromoteToLive, [QueryLogs.id]: QueryLogs, [QueryUserTable.id]: QueryUserTable, diff --git a/apps/sim/lib/copilot/generated/tool-schemas-v1.ts b/apps/sim/lib/copilot/generated/tool-schemas-v1.ts index 09fed92ed9d..c25280459dc 100644 --- a/apps/sim/lib/copilot/generated/tool-schemas-v1.ts +++ b/apps/sim/lib/copilot/generated/tool-schemas-v1.ts @@ -3696,6 +3696,20 @@ export const TOOL_RUNTIME_SCHEMAS: Record = { }, resultSchema: undefined, }, + platform: { + parameters: { + properties: { + task: { + description: + "A fully self-contained question about Sim — the platform agent sees none of this conversation, so include every name, id, constraint, and prior finding it needs. Example: 'what is the minimum schedule-trigger interval, and does it differ by plan?' or 'does the agent block persist memory across runs?'.", + type: 'string', + }, + }, + required: ['task'], + type: 'object', + }, + resultSchema: undefined, + }, promote_to_live: { parameters: { type: 'object', diff --git a/apps/sim/lib/copilot/tools/tool-display.ts b/apps/sim/lib/copilot/tools/tool-display.ts index 9ce2a848621..27d72a50d88 100644 --- a/apps/sim/lib/copilot/tools/tool-display.ts +++ b/apps/sim/lib/copilot/tools/tool-display.ts @@ -531,6 +531,7 @@ const TOOL_TITLES: Record = { research: 'Research Agent', scout: 'Scout Agent', search: 'Search Agent', + platform: 'Platform Agent', file: 'File Agent', media: 'Media Agent', browser: 'Browser Agent',