first pass of merging in warp (doesn't build)

This commit is contained in:
Ryan Ward
2026-07-01 16:08:58 -05:00
parent 2f64909469
commit 4770ac06b5
3662 changed files with 414574 additions and 89772 deletions
+441 -15
View File
@@ -23,8 +23,6 @@ directive @goField(forceResolver: Boolean, name: String, omittable: Boolean) on
directive @isDogfood on FIELD_DEFINITION
directive @isWarpEng on FIELD_DEFINITION
directive @key on INTERFACE | OBJECT
"""
@@ -49,6 +47,9 @@ type AIConversation {
artifacts: [AIConversationArtifact!]!
conversationId: ID!
"""Public profile for the user who originally created the conversation, when available."""
creator: PublicUserProfile
"""Base64-encoded proto binary of the final task list."""
finalTaskList: String!
@@ -85,6 +86,11 @@ enum AICreditsUsageAndCostSubjectType {
}
enum AICreditsUsageAndCostType {
"""
Sentinel value used on synthetic UsageEntry rows that aggregate across
multiple cost types. Real usage rows never carry this value.
"""
AGGREGATE
AMBIENT_BONUS_GRANT
BASE_LIMIT
BONUS_GRANT
@@ -92,18 +98,35 @@ enum AICreditsUsageAndCostType {
}
enum AICreditsUsageBucket {
"""
Sentinel value used on synthetic UsageEntry rows that aggregate across
multiple usage buckets. Real usage rows never carry this value.
"""
AGGREGATE
AI
COMPUTE
PLATFORM
SUGGESTED_CODE_DIFFS
VOICE
}
enum AICreditsUsageSource {
"""
Sentinel value used on synthetic UsageEntry rows that aggregate across
multiple usage sources. Real usage rows never carry this value.
"""
AGGREGATE
CLOUD
LOCAL
}
type APIKeyAgentInfo {
name: String!
uid: ID!
}
type APIKeyProperties {
agentInfo: APIKeyAgentInfo
createdAt: Time!
expiresAt: Time
keySuffix: String!
@@ -215,10 +238,16 @@ enum AdminEnablementSetting {
"""The harness that produced an agent conversation."""
enum AgentHarness {
CLAUDE_CODE
CODEX
GEMINI
OZ
}
"""Controls whether a team can configure settings for agent harnesses."""
type AgentHarnessesPolicy {
toggleable: Boolean!
}
"""Controls how many agent identities (service accounts) a team can have."""
type AgentIdentitiesPolicy {
isUnlimited: Boolean!
@@ -317,6 +346,11 @@ input AgentTaskStatusMessageInput {
message: String!
}
enum AgentVisibility {
PERSONAL
TEAM
}
type AiAutonomyPolicy {
enabled: Boolean!
toggleable: Boolean!
@@ -382,6 +416,7 @@ type AmbientAgentSettings {
defaultHostSlug: String
enableWarpAttribution: AdminEnablementSetting!
instanceShape: InstanceShape
localAgentTracking: AgentVisibility!
warpHostedAgentsEnabled: Boolean!
}
@@ -389,10 +424,12 @@ input AmbientAgentSettingsInput {
defaultHostSlug: String
enableWarpAttribution: AdminEnablementSetting
instanceShape: InstanceShapeInput
localAgentTracking: AgentVisibility
warpHostedAgentsEnabled: Boolean
}
type AmbientAgentsPolicy {
allowedLocalAgentTrackingOptions: [AgentVisibility!]!
enabled: Boolean!
instanceShape: InstanceShape
maxConcurrentAgents: Int!
@@ -443,6 +480,10 @@ type ApplyFileDiffStats {
linesRemoved: Int!
}
type AvailableHarnesses {
harnesses: [HarnessInfo!]!
}
type AvailableLlms {
choices: [LlmInfo!]!
defaultId: String!
@@ -454,6 +495,8 @@ type AwsProviderConfig {
}
type BillingCycleUsageHistory {
currentPeriodEnd: Time!
currentPeriodStart: Time!
summaries: [BillingCycleUsageSummary!]!
}
@@ -625,6 +668,7 @@ type CloudEnvironmentConfig {
githubRepos: [GitHubRepo!]!
name: String!
providers: ProvidersConfig
secrets: [SecretRefOutput!]
setupCommands: [String!]
}
@@ -720,8 +764,42 @@ inside a folder or at the root of a drive.
"""
union Container = FolderContainer | Space
"""
Marker for the client to provide a CRC32C checksum of the upload content.
The checksum should be serialized as a base64-encoded big-endian 4-byte value.
"""
type ContentCRC32CFieldValue {
_: Boolean
}
"""Marker for the client to provide the upload content."""
type ContentDataFieldValue {
_: Boolean
}
scalar ContentHash
"""The kind of a context-window segment."""
enum ContextWindowSegmentType {
UNKNOWN
SYSTEM_PROMPT
TOOL_DEFINITIONS
CONVERSATION_HISTORY
LATEST_INPUT
IMAGES
OTHER
}
"""A single portion of the context window, described by its kind and token count."""
type ContextWindowSegment {
"""The kind of context window segment this entry represents."""
segmentType: ContextWindowSegmentType!
"""The estimated number of tokens this segment occupies."""
tokenCount: Int!
}
"""Represents usage data for a single multi-agent conversation."""
type ConversationUsage {
conversationId: String!
@@ -734,8 +812,21 @@ type ConversationUsage {
type ConversationUsageMetadata {
"""Token usage using a user's API key, keyed by model."""
byokTokenUsage: [TokenUsage!]!
"""
A breakdown of the context window usage into segments, each carrying a
kind and token count. Segment token counts add up to the token total
represented by contextWindowUsage. The client derives per-segment
percentages.
"""
contextWindowSegments: [ContextWindowSegment!]!
contextWindowUsage: Float!
"""The total number of inference credits spent so far in the conversation"""
creditsSpent: Float!
"""The total number of platform credits spent so far in the conversation."""
platformCreditsSpent: Float!
summarized: Boolean!
"""
@@ -764,7 +855,7 @@ input CreateAgentTaskInput {
"""Optional environment UID to run the task in."""
environmentUid: ID
"""Optional parent run ID to persist on the created task."""
"""Optional run ID of the parent that spawned this local task."""
parentRunId: ID
"""The prompt for the agent task."""
@@ -856,6 +947,23 @@ type CreateManagedSecretOutput implements Response {
union CreateManagedSecretResult = CreateManagedSecretOutput | UserFacingError
input CreateManagedMcpClientConfigInput {
uid: ID!
}
type CreateManagedMcpClientConfigOutput implements Response {
transportKind: ManagedMcpTransportKind!
mcpConfigJson: String!
proxyUrl: String
proxyToken: String
authorizationHeaderName: String
authorizationHeaderValue: String
expiresAt: Time
responseContext: ResponseContext!
}
union CreateManagedMcpClientConfigResult = CreateManagedMcpClientConfigOutput | UserFacingError
input CreateNotebookInput {
aiDocumentId: String
conversationId: String
@@ -875,6 +983,7 @@ type CreateNotebookOutput implements Response {
union CreateNotebookResult = CreateNotebookOutput | UserFacingError
input CreateSimpleIntegrationInput {
agentUid: ID
config: SimpleIntegrationConfig!
enabled: Boolean!
integrationType: String!
@@ -905,6 +1014,7 @@ type CreateTeamOutput implements Response {
union CreateTeamResult = CreateTeamOutput | UserFacingError
type CreateUploadTarget {
fields: [UploadField!]!
headers: [CreateUploadTargetHeader!]!
method: String!
url: String!
@@ -1083,6 +1193,9 @@ enum EmbeddingConfig {
"""Corresponds to the Voyage voyage-3.5-lite model with 512 dimensions."""
VOYAGE_3_5_LITE_512
"""Corresponds to the Voyage voyage-4 model with 512 dimensions."""
VOYAGE_4_512
"""Corresponds to the Voyage voyage-code-3 model with 512 dimensions."""
VOYAGE_CODE_3_512
}
@@ -1103,19 +1216,31 @@ type EmptyTrashOutput implements Response {
union EmptyTrashResult = EmptyTrashOutput | UserFacingError
type EnterpriseAnalyticsPolicy {
type EnterpriseAnalyticsDataCollectionSettings {
enabled: Boolean!
}
input EnterpriseAnalyticsDataCollectionSettingsInput {
enabled: Boolean
}
type EnterpriseAnalyticsPolicy {
default: Boolean!
enabled: Boolean!
toggleable: Boolean!
}
type EnterpriseBillingSettings {
maxMonthlyCloudAgentsSpendCents: Int
maxMonthlyLocalAgentsSpendCents: Int
maxMonthlyPerUserTotalSpendCents: Int
maxMonthlyTotalSpendCents: Int
}
input EnterpriseBillingSettingsInput {
maxMonthlyCloudAgentsSpendCents: Int
maxMonthlyLocalAgentsSpendCents: Int
maxMonthlyPerUserTotalSpendCents: Int
maxMonthlyTotalSpendCents: Int
}
@@ -1203,6 +1328,8 @@ enum Experiment {
SESSION_SHARING_EXPERIMENT
SPLIT_CREDIT_COST_CONTROL
SPLIT_CREDIT_COST_EXPERIMENT
SSH_REMOTE_SERVER_CONTROL
SSH_REMOTE_SERVER_EXPERIMENT
SUGGESTED_CODE_DIFFS_CONTROL
SUGGESTED_CODE_DIFFS_EXPERIMENT
TMUX_SSH_WARPIFICATION_CONTROL
@@ -1305,11 +1432,18 @@ union FreeAvailableModelsResult = FreeAvailableModelsOutput | UserFacingError
type GcpProviderConfig {
projectNumber: String!
serviceAccountEmail: String
workloadIdentityFederationPoolId: String!
workloadIdentityFederationProviderId: String!
}
input GenerateApiKeyInput {
"""
Optional agent UID to use as the authenticated principal for this key.
The team is resolved from the agent automatically. The caller must be a member of that team.
The agent must be available on the team's current plan.
"""
agentUid: ID
expiresAt: Time
name: String!
teamId: ID
@@ -1625,6 +1759,74 @@ type GithubRepositoryNotFoundError implements UserFacingErrorInterface {
union GuestSubject = PendingUserGuest | TeamGuest | UserGuest
input HarnessAuthSecretsInput {
claudeAuthSecretName: String
codexAuthSecretName: String
}
type HarnessAuthSecretsOutput implements Response {
managedSecrets: [ManagedSecret!]!
responseContext: ResponseContext!
}
union HarnessAuthSecretsResult = HarnessAuthSecretsOutput | UserFacingError
type HarnessConfig {
enabled: Boolean!
}
input HarnessConfigInput {
enabled: Boolean
}
"""A harness available to the requesting user."""
type HarnessInfo {
"""
Models the user can pick for this harness. Empty for harnesses without a
configured catalog.
"""
availableModels: [HarnessModel!]!
displayName: String!
enabled: Boolean!
harness: AgentHarness!
}
input HarnessInput {
type: String!
}
"""A single model available for a third-party harness."""
type HarnessModel {
displayName: String!
id: ID!
reasoningLevel: String
}
"""
Per-harness enablement settings for a team. Defaults to enabled for all harnesses.
Only configurable on enterprise plans.
"""
type HarnessSettings {
harnessConfigs: [HarnessSettingsEntry!]!
optOutOfNewHarnesses: Boolean!
}
type HarnessSettingsEntry {
displayName: String!
harness: AgentHarness!
settings: HarnessConfig!
}
input HarnessSettingsEntryInput {
harness: AgentHarness!
settings: HarnessConfigInput!
}
input HarnessSettingsInput {
harnessConfigs: [HarnessSettingsEntryInput!]
optOutOfNewHarnesses: Boolean
}
enum HostEnablementSetting {
ENFORCE
RESPECT_USER_SETTING
@@ -1766,6 +1968,14 @@ type ListAIConversationsOutput implements Response {
union ListAIConversationsResult = ListAIConversationsOutput | UserFacingError
input ListHarnessAuthSecretsInput {
"""
Harness whose auth-credential secrets should be returned. Harnesses that
don't use auth secrets (e.g. OZ) always return an empty result.
"""
harness: AgentHarness!
}
type ListWarpDevImagesOutput implements Response {
"""List of available Warp dev base images from Docker Hub"""
images: [ImageTag!]!
@@ -1774,18 +1984,74 @@ type ListWarpDevImagesOutput implements Response {
union ListWarpDevImagesResult = ListWarpDevImagesOutput | UserFacingError
type ListedHarnessAuthSecretsConfig {
claudeAuthSecretName: String
codexAuthSecretName: String
}
type ListedHarnessConfig {
type: String!
}
type ListedSimpleIntegrationConfig {
basePrompt: String!
computerUseEnabled: Boolean!
environmentUid: String!
harness: ListedHarnessConfig
harnessAuthSecrets: ListedHarnessAuthSecretsConfig
mcpServersJson: String!
modelId: String!
secrets: [SecretRefOutput!]
workerHost: String
}
type LlmContextWindow {
"""
Default context window size used when the client
does not send an explicit base_model_context_window_limit. For non-configurable
models this equals max.
"""
default: Uint!
"""
When true, the client can pick a context window size in the range [min, max].
"""
isConfigurable: Boolean!
"""
Maximum context window size. The upper bound for any user override
and the effective ceiling the server enforces on the request.
"""
max: Uint!
"""
Minimum context window size the user may select. For non-configurable
models this equals max.
"""
min: Uint!
}
type LlmHostSettings {
enabled: Boolean!
enablementSetting: HostEnablementSetting
"""
Full resource name of the GCP workload identity provider that Gemini Enterprise
clients exchange Warp OIDC JWTs against (used as both the JWT audience and the
STS exchange audience).
"""
gcpAudience: String
"""
Email of the GCP service account that Gemini Enterprise clients impersonate after
the STS exchange. Empty means the federated token is used directly.
"""
gcpSaEmail: String
"""
IAM role ARN that Oz Cloud Agents assume via the OIDC trust flow to obtain credentials for AWS Bedrock requests.
"""
oidcAssumeRoleArn: String
optOutOfNewModels: Boolean!
region: String
}
@@ -1799,6 +2065,7 @@ type LlmHostSettingsEntry {
input LlmHostSettingsInput {
enabled: Boolean
enablementSetting: HostEnablementSetting
oidcAssumeRoleArn: String
optOutOfNewModels: Boolean
region: String
}
@@ -1810,6 +2077,9 @@ input LlmHostSettingsInputEntry {
type LlmInfo {
baseModelName: String!
"""The model's context window configuration. Always non-null."""
contextWindow: LlmContextWindow!
description: String
disableReason: DisableReason
displayName: String!
@@ -1830,11 +2100,15 @@ Add self-hosted and other cloud providers here as needed.
"""
enum LlmModelHost {
AWS_BEDROCK
CUSTOM_ENDPOINT
DIRECT_API
GEMINI_ENTERPRISE
}
type LlmModelHostSettings {
defaultHostModelRef: String
enabled: Boolean!
hostModelRef: String
}
type LlmModelHostSettingsEntry {
@@ -1844,6 +2118,7 @@ type LlmModelHostSettingsEntry {
input LlmModelHostSettingsInput {
enabled: Boolean
hostModelRef: String
}
input LlmModelHostSettingsInputEntry {
@@ -1959,13 +2234,9 @@ type ManagedSecretAnthropicApiKeyValue {
apiKey: String!
}
"""A managed secret value representing an Anthropic Bedrock API key."""
type ManagedSecretAnthropicBedrockApiKeyValue {
awsBearerTokenBedrock: String!
awsRegion: String!
}
"""A managed secret value representing Anthropic Bedrock access key credentials."""
"""
A managed secret value representing Anthropic Bedrock access key credentials.
"""
type ManagedSecretAnthropicBedrockAccessKeyValue {
awsAccessKeyId: String!
awsRegion: String!
@@ -1978,6 +2249,12 @@ type ManagedSecretAnthropicBedrockAccessKeyValue {
awsSessionToken: String
}
"""A managed secret value representing an Anthropic Bedrock API key."""
type ManagedSecretAnthropicBedrockApiKeyValue {
awsBearerTokenBedrock: String!
awsRegion: String!
}
"""ManagedSecretConfig contains configuration for managed secrets."""
type ManagedSecretConfig {
"""
@@ -1988,21 +2265,38 @@ type ManagedSecretConfig {
publicKey: String
}
"""A managed secret value representing an OpenAI API key."""
type ManagedSecretOpenAiApiKeyValue {
apiKey: String!
"""
Optional base URL for the OpenAI API. When set, the harness uses this
instead of the provider default (e.g. for regional endpoints).
"""
baseUrl: String
}
"""A raw, unencrypted managed secret value."""
type ManagedSecretRawValue {
value: String!
}
enum ManagedMcpTransportKind {
URL
COMMAND
}
"""Type of Warp-managed secret values."""
enum ManagedSecretType {
ANTHROPIC_API_KEY
ANTHROPIC_BEDROCK_ACCESS_KEY
ANTHROPIC_BEDROCK_API_KEY
DOTENVX
OPENAI_API_KEY
RAW_VALUE
}
union ManagedSecretValue = ManagedSecretAnthropicApiKeyValue | ManagedSecretAnthropicBedrockAccessKeyValue | ManagedSecretAnthropicBedrockApiKeyValue | ManagedSecretRawValue
union ManagedSecretValue = ManagedSecretAnthropicApiKeyValue | ManagedSecretAnthropicBedrockAccessKeyValue | ManagedSecretAnthropicBedrockApiKeyValue | ManagedSecretOpenAiApiKeyValue | ManagedSecretRawValue
input ManagedSecretsInput {
"""Pagination cursor, currently unused."""
@@ -2016,6 +2310,12 @@ type ManagedSecretsOutput implements Response {
union ManagedSecretsResult = ManagedSecretsOutput | UserFacingError
type MemberSpendLimit {
maxMonthlySpendCents: Int!
principalType: PrincipalType!
principalUid: String!
}
enum MembershipRole {
ADMIN
OWNER
@@ -2608,6 +2908,7 @@ type RootMutation {
createFileArtifactUploadTarget(input: CreateFileArtifactUploadTargetInput!, requestContext: RequestContext!): CreateFileArtifactUploadTargetResult!
createFolder(input: CreateFolderInput!, requestContext: RequestContext!): CreateFolderResult!
createGenericStringObject(input: CreateGenericStringObjectInput!, requestContext: RequestContext!): CreateGenericStringObjectResult!
createManagedMcpClientConfig(input: CreateManagedMcpClientConfigInput!, requestContext: RequestContext!): CreateManagedMcpClientConfigResult!
createManagedSecret(input: CreateManagedSecretInput!, requestContext: RequestContext!): CreateManagedSecretResult!
createNotebook(input: CreateNotebookInput!, requestContext: RequestContext!): CreateNotebookResult!
createSimpleIntegration(input: CreateSimpleIntegrationInput!, requestContext: RequestContext!): CreateSimpleIntegrationResult!
@@ -2708,6 +3009,12 @@ type RootQuery {
getIntegrationsUsingEnvironment(input: GetIntegrationsUsingEnvironmentInput!, requestContext: RequestContext!): GetIntegrationsUsingEnvironmentResult!
getOAuthConnectTxStatus(input: GetOAuthConnectTxStatusInput!, requestContext: RequestContext!): GetOAuthConnectTxStatusResult!
getRelevantFragments(input: GetRelevantFragmentsInput!, requestContext: RequestContext!): GetRelevantFragmentsResult!
"""
Retrieve managed secrets that serve as authentication credentials for the given harness,
scoped to the caller's personal drive and team drives.
"""
harnessAuthSecrets(input: ListHarnessAuthSecretsInput!, requestContext: RequestContext!): HarnessAuthSecretsResult!
listAIConversations(input: ListAIConversationsInput!, requestContext: RequestContext!): ListAIConversationsResult!
"""
@@ -2737,6 +3044,7 @@ type RootQuery {
In the future, this may be merged with taskSecrets into a single task query.
"""
task(input: TaskInput!, requestContext: RequestContext!): TaskResult!
taskGitCredentials(input: TaskGitCredentialsInput!, requestContext: RequestContext!): TaskGitCredentialsResult!
taskSecrets(input: TaskSecretsInput!, requestContext: RequestContext!): TaskSecretsResult!
updatedCloudObjects(input: UpdatedCloudObjectsInput!, requestContext: RequestContext!): UpdatedCloudObjectsResult!
user(requestContext: RequestContext!): UserResult!
@@ -2788,6 +3096,13 @@ type ScreenshotArtifact {
mimeType: String!
}
"""
Error type for when a plan change would put the team over the target tier's seat cap.
"""
type SeatCapExceededError implements UserFacingErrorInterface {
message: String!
}
type SecretRedactionRegex {
name: String
pattern: String!
@@ -2809,6 +3124,15 @@ input SecretRedactionSettingsInput {
regexes: [SecretRedactionRegexInput!]
}
input SecretRefInput {
"""The managed secret name to include."""
name: String!
}
type SecretRefOutput {
name: String!
}
input SendOnboardingSurveyResponsesInput {
responses: [OnboardingSurveyResponse!]!
}
@@ -2970,6 +3294,7 @@ type SharedWorkflowsPolicy {
}
type SimpleIntegration {
agentUid: ID
connectionLink: String!
connectionStatus: SimpleIntegrationConnectionStatus!
createdAt: Time
@@ -2983,9 +3308,12 @@ input SimpleIntegrationConfig {
basePrompt: String
computerUseEnabled: Boolean
environmentUid: String
harness: HarnessInput
harnessAuthSecrets: HarnessAuthSecretsInput
mcpServersJson: String
modelId: String
removeMcpServerNames: [String!]
secrets: [SecretRefInput!]
workerHost: String
}
@@ -3030,6 +3358,11 @@ enum SpaceType {
User
}
"""A literal string value."""
type StaticUploadFieldValue {
value: String!
}
input StripeBillingPortalInput {
teamUid: ID!
}
@@ -3133,6 +3466,43 @@ type TaskAttachment {
mimeType: String!
}
"""A set of git credentials for a single hosting provider."""
type TaskGitCredential {
"""
The email address associated with the token, if available.
Null for service-account (installation) tokens.
"""
email: String
"""The git hosting provider (e.g. "github.com")."""
host: String!
"""The OAuth or installation access token."""
token: String!
"""
The GitHub username associated with the token, if available.
Null for service-account (installation) tokens.
"""
username: String
}
"""Input for the taskGitCredentials query."""
input TaskGitCredentialsInput {
"""The ID of the task."""
taskId: ID!
"""A short-lived token authorizing credential retrieval for the workload."""
workloadToken: String!
}
type TaskGitCredentialsOutput implements Response {
credentials: [TaskGitCredential!]!
responseContext: ResponseContext!
}
union TaskGitCredentialsResult = TaskGitCredentialsOutput | UserFacingError
"""Input for task-related queries."""
input TaskInput {
"""The ID of the task."""
@@ -3177,7 +3547,14 @@ type Team {
creatorId in v1 Team type is deprecated and should not be used. Use adminUid instead.
"""
adminUid: String! @deprecated(reason: "Use members.role to determine admin status")
"""
The email domain associated with the team, if one has been set by Warp staff.
Required for features that key off the team's domain (e.g. domain capture, SSO).
"""
domain: String
managedSecrets: ManagedSecretConfig
memberSpendLimits: [MemberSpendLimit!]
members: [TeamMember!]!
name: String!
uid: ID!
@@ -3227,6 +3604,7 @@ input TelemetrySettingsInput {
}
type Tier {
agentHarnessesPolicy: AgentHarnessesPolicy
agentIdentitiesPolicy: AgentIdentitiesPolicy
aiAutonomyPolicy: AiAutonomyPolicy
aiPermissionsPolicy: AiPermissionsPolicy
@@ -3258,6 +3636,7 @@ type Tier {
telemetryDataCollectionPolicy: TelemetryDataCollectionPolicy
ugcDataCollectionPolicy: UgcDataCollectionPolicy
usageBasedPricingPolicy: UsageBasedPricingPolicy
usageVisibilityPolicy: UsageVisibilityPolicy
warpAiPolicy: WarpAiPolicy
warpBasicPolicy: WarpBasicPolicy
}
@@ -3400,6 +3779,12 @@ type UgcDataCollectionPolicy {
toggleable: Boolean!
}
"""
scalar Uint is an unsigned integer. Maps to uint/uint32/uint64 on the Go
side and a non-negative number on the client side.
"""
scalar Uint
enum UniquePer {
User
}
@@ -3586,7 +3971,6 @@ type UpdateOnboardingSurveyStatusOutput implements Response {
union UpdateOnboardingSurveyStatusResult = UpdateOnboardingSurveyStatusOutput | UserFacingError
input UpdateUserSettingsInput {
agentAttributionEnabled: Boolean
cloudConversationStorageEnabled: Boolean
crashReportingEnabled: Boolean
telemetryEnabled: Boolean
@@ -3624,7 +4008,9 @@ input UpdateWorkspaceSettingsInput {
setCloudConversationStorageSettings: CloudConversationStorageSettingsInput
setCodebaseContextSettings: CodebaseContextSettingsInput
setDomainCaptureSettings: DomainCaptureSettingsInput
setEnterpriseAnalyticsDataCollectionSettings: EnterpriseAnalyticsDataCollectionSettingsInput
setEnterpriseBillingSettings: EnterpriseBillingSettingsInput
setHarnessSettings: HarnessSettingsInput
setLinkSharingSettings: LinkSharingSettingsInput
setLlmSettings: LlmSettingsInput
setSandboxedAgentSettings: SandboxedAgentSettingsInput
@@ -3691,6 +4077,17 @@ input UpdatedObjectInput {
uid: ID!
}
"""
A single name/value pair for a multipart form field in a presigned POST upload.
"""
type UploadField {
name: String!
value: UploadFieldValue!
}
"""The value of a multipart form field in a presigned POST upload target."""
union UploadFieldValue = ContentCRC32CFieldValue | ContentDataFieldValue | StaticUploadFieldValue
type UsageBasedPricingPolicy {
toggleable: Boolean!
}
@@ -3731,12 +4128,29 @@ enum UsagePlanSurveyResponse {
REPLACE_TERMINAL
}
"""
Granularity at which a user can see AI usage across their team. Non-admins
always collapse to OWN_ONLY regardless of tier.
"""
enum UsageVisibilityGranularity {
FULL_BREAKDOWN
OWN_ONLY
PER_USER_TOTALS
TEAM_AGGREGATE
}
type UsageVisibilityPolicy {
adminGranularity: UsageVisibilityGranularity!
maxPriorCycles: Int!
}
"""
The User type is the primary way of interacting with our graph.
Nearly all data is scoped to the currently logged-in user.
"""
type User {
anonymousUserInfo: AnonymousUserInfo
availableHarnesses: AvailableHarnesses!
billingMetadata: BillingMetadata
blocks: [Block!]!
bonusGrants: [BonusGrant!]!
@@ -3760,6 +4174,15 @@ type User {
"""
experiments: [Experiment!]
githubInstallations: UserGithubInstallationsOutput!
"""
Global skills that are always available to the calling principal.
The client will fetch and install these, so they're available in every conversation
on every device.
This is currently only supported for agents, not individual users.
"""
globalSkills: [String!]!
isOnWorkDomain: Boolean!
isOnboarded: Boolean!
llms: FeatureModelChoice!
@@ -3869,7 +4292,6 @@ Workspace specific settings like telemetry enablement override these user settin
UserSettings types and mutations are the v2 equivalent of the v1 user_settings.graphqls file.
"""
type UserSettings {
isAgentAttributionEnabled: Boolean!
isCloudConversationStorageEnabled: Boolean!
isCrashReportingEnabled: Boolean!
isTelemetryEnabled: Boolean!
@@ -3879,6 +4301,7 @@ type WarpAiPolicy {
acceptedAutosuggestionsLimit: Int!
disablePremiumModels: Boolean!
isCodeSuggestionsToggleable: Boolean!
isGitOperationsAiEnabled: Boolean!
isNextCommandEnabled: Boolean!
isPromptSuggestionsToggleable: Boolean!
isUnlimited: Boolean!
@@ -3959,6 +4382,7 @@ type Workspace {
inviteCode: String
inviteLinkDomainRestrictions: [InviteLinkDomainRestriction!]!
isEligibleForDiscovery: Boolean!
memberSpendLimits: [MemberSpendLimit!]
members: [WorkspaceMember!]!
name: String!
pendingEmailInvites: [EmailInvite!]!
@@ -3996,7 +4420,9 @@ type WorkspaceSettings {
cloudConversationStorageSettings: CloudConversationStorageSettings!
codebaseContextSettings: CodebaseContextSettings!
domainCaptureSettings: DomainCaptureSettings!
enterpriseAnalyticsDataCollectionSettings: EnterpriseAnalyticsDataCollectionSettings!
enterpriseBillingSettings: EnterpriseBillingSettings
harnessSettings: HarnessSettings
isDiscoverable: Boolean!
isInviteLinkEnabled: Boolean!
linkSharingSettings: LinkSharingSettings!
@@ -4013,4 +4439,4 @@ enum WriteToPtyAutonomyValue {
ALWAYS_ASK
ASK_ON_FIRST_WRITE
RESPECT_USER_SETTING
}
}