
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck 
/*
 * This file exports the `McpToolExecutionLog` model and its related types.
 *
 * 🟢 You can import this file directly.
 */
import type * as runtime from "@prisma/client/runtime/client"
import type * as $Enums from "../enums.js"
import type * as Prisma from "../internal/prismaNamespace.js"

/**
 * Model McpToolExecutionLog
 * 
 */
export type McpToolExecutionLogModel = runtime.Types.Result.DefaultSelection<Prisma.$McpToolExecutionLogPayload>

export type AggregateMcpToolExecutionLog = {
  _count: McpToolExecutionLogCountAggregateOutputType | null
  _avg: McpToolExecutionLogAvgAggregateOutputType | null
  _sum: McpToolExecutionLogSumAggregateOutputType | null
  _min: McpToolExecutionLogMinAggregateOutputType | null
  _max: McpToolExecutionLogMaxAggregateOutputType | null
}

export type McpToolExecutionLogAvgAggregateOutputType = {
  latencyMs: number | null
}

export type McpToolExecutionLogSumAggregateOutputType = {
  latencyMs: number | null
}

export type McpToolExecutionLogMinAggregateOutputType = {
  mcpToolExecutionLogId: string | null
  organizationId: string | null
  agentId: string | null
  mcpConnectionId: string | null
  toolName: string | null
  callId: string | null
  status: string | null
  latencyMs: number | null
  error: string | null
  createdAt: Date | null
}

export type McpToolExecutionLogMaxAggregateOutputType = {
  mcpToolExecutionLogId: string | null
  organizationId: string | null
  agentId: string | null
  mcpConnectionId: string | null
  toolName: string | null
  callId: string | null
  status: string | null
  latencyMs: number | null
  error: string | null
  createdAt: Date | null
}

export type McpToolExecutionLogCountAggregateOutputType = {
  mcpToolExecutionLogId: number
  organizationId: number
  agentId: number
  mcpConnectionId: number
  toolName: number
  callId: number
  status: number
  latencyMs: number
  argumentsPreview: number
  resultPreview: number
  error: number
  createdAt: number
  _all: number
}


export type McpToolExecutionLogAvgAggregateInputType = {
  latencyMs?: true
}

export type McpToolExecutionLogSumAggregateInputType = {
  latencyMs?: true
}

export type McpToolExecutionLogMinAggregateInputType = {
  mcpToolExecutionLogId?: true
  organizationId?: true
  agentId?: true
  mcpConnectionId?: true
  toolName?: true
  callId?: true
  status?: true
  latencyMs?: true
  error?: true
  createdAt?: true
}

export type McpToolExecutionLogMaxAggregateInputType = {
  mcpToolExecutionLogId?: true
  organizationId?: true
  agentId?: true
  mcpConnectionId?: true
  toolName?: true
  callId?: true
  status?: true
  latencyMs?: true
  error?: true
  createdAt?: true
}

export type McpToolExecutionLogCountAggregateInputType = {
  mcpToolExecutionLogId?: true
  organizationId?: true
  agentId?: true
  mcpConnectionId?: true
  toolName?: true
  callId?: true
  status?: true
  latencyMs?: true
  argumentsPreview?: true
  resultPreview?: true
  error?: true
  createdAt?: true
  _all?: true
}

export type McpToolExecutionLogAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Filter which McpToolExecutionLog to aggregate.
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of McpToolExecutionLogs to fetch.
   */
  orderBy?: Prisma.McpToolExecutionLogOrderByWithRelationInput | Prisma.McpToolExecutionLogOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the start position
   */
  cursor?: Prisma.McpToolExecutionLogWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` McpToolExecutionLogs from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` McpToolExecutionLogs.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Count returned McpToolExecutionLogs
  **/
  _count?: true | McpToolExecutionLogCountAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to average
  **/
  _avg?: McpToolExecutionLogAvgAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to sum
  **/
  _sum?: McpToolExecutionLogSumAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to find the minimum value
  **/
  _min?: McpToolExecutionLogMinAggregateInputType
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
   * 
   * Select which fields to find the maximum value
  **/
  _max?: McpToolExecutionLogMaxAggregateInputType
}

export type GetMcpToolExecutionLogAggregateType<T extends McpToolExecutionLogAggregateArgs> = {
      [P in keyof T & keyof AggregateMcpToolExecutionLog]: P extends '_count' | 'count'
    ? T[P] extends true
      ? number
      : Prisma.GetScalarType<T[P], AggregateMcpToolExecutionLog[P]>
    : Prisma.GetScalarType<T[P], AggregateMcpToolExecutionLog[P]>
}




export type McpToolExecutionLogGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  where?: Prisma.McpToolExecutionLogWhereInput
  orderBy?: Prisma.McpToolExecutionLogOrderByWithAggregationInput | Prisma.McpToolExecutionLogOrderByWithAggregationInput[]
  by: Prisma.McpToolExecutionLogScalarFieldEnum[] | Prisma.McpToolExecutionLogScalarFieldEnum
  having?: Prisma.McpToolExecutionLogScalarWhereWithAggregatesInput
  take?: number
  skip?: number
  _count?: McpToolExecutionLogCountAggregateInputType | true
  _avg?: McpToolExecutionLogAvgAggregateInputType
  _sum?: McpToolExecutionLogSumAggregateInputType
  _min?: McpToolExecutionLogMinAggregateInputType
  _max?: McpToolExecutionLogMaxAggregateInputType
}

export type McpToolExecutionLogGroupByOutputType = {
  mcpToolExecutionLogId: string
  organizationId: string
  agentId: string | null
  mcpConnectionId: string
  toolName: string
  callId: string | null
  status: string
  latencyMs: number | null
  argumentsPreview: runtime.JsonValue | null
  resultPreview: runtime.JsonValue | null
  error: string | null
  createdAt: Date
  _count: McpToolExecutionLogCountAggregateOutputType | null
  _avg: McpToolExecutionLogAvgAggregateOutputType | null
  _sum: McpToolExecutionLogSumAggregateOutputType | null
  _min: McpToolExecutionLogMinAggregateOutputType | null
  _max: McpToolExecutionLogMaxAggregateOutputType | null
}

export type GetMcpToolExecutionLogGroupByPayload<T extends McpToolExecutionLogGroupByArgs> = Prisma.PrismaPromise<
  Array<
    Prisma.PickEnumerable<McpToolExecutionLogGroupByOutputType, T['by']> &
      {
        [P in ((keyof T) & (keyof McpToolExecutionLogGroupByOutputType))]: P extends '_count'
          ? T[P] extends boolean
            ? number
            : Prisma.GetScalarType<T[P], McpToolExecutionLogGroupByOutputType[P]>
          : Prisma.GetScalarType<T[P], McpToolExecutionLogGroupByOutputType[P]>
      }
    >
  >



export type McpToolExecutionLogWhereInput = {
  AND?: Prisma.McpToolExecutionLogWhereInput | Prisma.McpToolExecutionLogWhereInput[]
  OR?: Prisma.McpToolExecutionLogWhereInput[]
  NOT?: Prisma.McpToolExecutionLogWhereInput | Prisma.McpToolExecutionLogWhereInput[]
  mcpToolExecutionLogId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  organizationId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  agentId?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  mcpConnectionId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  toolName?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  callId?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  status?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  latencyMs?: Prisma.IntNullableFilter<"McpToolExecutionLog"> | number | null
  argumentsPreview?: Prisma.JsonNullableFilter<"McpToolExecutionLog">
  resultPreview?: Prisma.JsonNullableFilter<"McpToolExecutionLog">
  error?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  createdAt?: Prisma.DateTimeFilter<"McpToolExecutionLog"> | Date | string
  organization?: Prisma.XOR<Prisma.OrganizationScalarRelationFilter, Prisma.OrganizationWhereInput>
  agent?: Prisma.XOR<Prisma.AgentNullableScalarRelationFilter, Prisma.AgentWhereInput> | null
  mcpConnection?: Prisma.XOR<Prisma.McpConnectionScalarRelationFilter, Prisma.McpConnectionWhereInput>
}

export type McpToolExecutionLogOrderByWithRelationInput = {
  mcpToolExecutionLogId?: Prisma.SortOrder
  organizationId?: Prisma.SortOrder
  agentId?: Prisma.SortOrderInput | Prisma.SortOrder
  mcpConnectionId?: Prisma.SortOrder
  toolName?: Prisma.SortOrder
  callId?: Prisma.SortOrderInput | Prisma.SortOrder
  status?: Prisma.SortOrder
  latencyMs?: Prisma.SortOrderInput | Prisma.SortOrder
  argumentsPreview?: Prisma.SortOrderInput | Prisma.SortOrder
  resultPreview?: Prisma.SortOrderInput | Prisma.SortOrder
  error?: Prisma.SortOrderInput | Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  organization?: Prisma.OrganizationOrderByWithRelationInput
  agent?: Prisma.AgentOrderByWithRelationInput
  mcpConnection?: Prisma.McpConnectionOrderByWithRelationInput
}

export type McpToolExecutionLogWhereUniqueInput = Prisma.AtLeast<{
  mcpToolExecutionLogId?: string
  AND?: Prisma.McpToolExecutionLogWhereInput | Prisma.McpToolExecutionLogWhereInput[]
  OR?: Prisma.McpToolExecutionLogWhereInput[]
  NOT?: Prisma.McpToolExecutionLogWhereInput | Prisma.McpToolExecutionLogWhereInput[]
  organizationId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  agentId?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  mcpConnectionId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  toolName?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  callId?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  status?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  latencyMs?: Prisma.IntNullableFilter<"McpToolExecutionLog"> | number | null
  argumentsPreview?: Prisma.JsonNullableFilter<"McpToolExecutionLog">
  resultPreview?: Prisma.JsonNullableFilter<"McpToolExecutionLog">
  error?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  createdAt?: Prisma.DateTimeFilter<"McpToolExecutionLog"> | Date | string
  organization?: Prisma.XOR<Prisma.OrganizationScalarRelationFilter, Prisma.OrganizationWhereInput>
  agent?: Prisma.XOR<Prisma.AgentNullableScalarRelationFilter, Prisma.AgentWhereInput> | null
  mcpConnection?: Prisma.XOR<Prisma.McpConnectionScalarRelationFilter, Prisma.McpConnectionWhereInput>
}, "mcpToolExecutionLogId">

export type McpToolExecutionLogOrderByWithAggregationInput = {
  mcpToolExecutionLogId?: Prisma.SortOrder
  organizationId?: Prisma.SortOrder
  agentId?: Prisma.SortOrderInput | Prisma.SortOrder
  mcpConnectionId?: Prisma.SortOrder
  toolName?: Prisma.SortOrder
  callId?: Prisma.SortOrderInput | Prisma.SortOrder
  status?: Prisma.SortOrder
  latencyMs?: Prisma.SortOrderInput | Prisma.SortOrder
  argumentsPreview?: Prisma.SortOrderInput | Prisma.SortOrder
  resultPreview?: Prisma.SortOrderInput | Prisma.SortOrder
  error?: Prisma.SortOrderInput | Prisma.SortOrder
  createdAt?: Prisma.SortOrder
  _count?: Prisma.McpToolExecutionLogCountOrderByAggregateInput
  _avg?: Prisma.McpToolExecutionLogAvgOrderByAggregateInput
  _max?: Prisma.McpToolExecutionLogMaxOrderByAggregateInput
  _min?: Prisma.McpToolExecutionLogMinOrderByAggregateInput
  _sum?: Prisma.McpToolExecutionLogSumOrderByAggregateInput
}

export type McpToolExecutionLogScalarWhereWithAggregatesInput = {
  AND?: Prisma.McpToolExecutionLogScalarWhereWithAggregatesInput | Prisma.McpToolExecutionLogScalarWhereWithAggregatesInput[]
  OR?: Prisma.McpToolExecutionLogScalarWhereWithAggregatesInput[]
  NOT?: Prisma.McpToolExecutionLogScalarWhereWithAggregatesInput | Prisma.McpToolExecutionLogScalarWhereWithAggregatesInput[]
  mcpToolExecutionLogId?: Prisma.StringWithAggregatesFilter<"McpToolExecutionLog"> | string
  organizationId?: Prisma.StringWithAggregatesFilter<"McpToolExecutionLog"> | string
  agentId?: Prisma.StringNullableWithAggregatesFilter<"McpToolExecutionLog"> | string | null
  mcpConnectionId?: Prisma.StringWithAggregatesFilter<"McpToolExecutionLog"> | string
  toolName?: Prisma.StringWithAggregatesFilter<"McpToolExecutionLog"> | string
  callId?: Prisma.StringNullableWithAggregatesFilter<"McpToolExecutionLog"> | string | null
  status?: Prisma.StringWithAggregatesFilter<"McpToolExecutionLog"> | string
  latencyMs?: Prisma.IntNullableWithAggregatesFilter<"McpToolExecutionLog"> | number | null
  argumentsPreview?: Prisma.JsonNullableWithAggregatesFilter<"McpToolExecutionLog">
  resultPreview?: Prisma.JsonNullableWithAggregatesFilter<"McpToolExecutionLog">
  error?: Prisma.StringNullableWithAggregatesFilter<"McpToolExecutionLog"> | string | null
  createdAt?: Prisma.DateTimeWithAggregatesFilter<"McpToolExecutionLog"> | Date | string
}

export type McpToolExecutionLogCreateInput = {
  mcpToolExecutionLogId?: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
  organization: Prisma.OrganizationCreateNestedOneWithoutMcpToolExecutionLogsInput
  agent?: Prisma.AgentCreateNestedOneWithoutMcpToolExecutionLogsInput
  mcpConnection: Prisma.McpConnectionCreateNestedOneWithoutExecutionLogsInput
}

export type McpToolExecutionLogUncheckedCreateInput = {
  mcpToolExecutionLogId?: string
  organizationId: string
  agentId?: string | null
  mcpConnectionId: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogUpdateInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  organization?: Prisma.OrganizationUpdateOneRequiredWithoutMcpToolExecutionLogsNestedInput
  agent?: Prisma.AgentUpdateOneWithoutMcpToolExecutionLogsNestedInput
  mcpConnection?: Prisma.McpConnectionUpdateOneRequiredWithoutExecutionLogsNestedInput
}

export type McpToolExecutionLogUncheckedUpdateInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  organizationId?: Prisma.StringFieldUpdateOperationsInput | string
  agentId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  mcpConnectionId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogCreateManyInput = {
  mcpToolExecutionLogId?: string
  organizationId: string
  agentId?: string | null
  mcpConnectionId: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogUpdateManyMutationInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogUncheckedUpdateManyInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  organizationId?: Prisma.StringFieldUpdateOperationsInput | string
  agentId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  mcpConnectionId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogListRelationFilter = {
  every?: Prisma.McpToolExecutionLogWhereInput
  some?: Prisma.McpToolExecutionLogWhereInput
  none?: Prisma.McpToolExecutionLogWhereInput
}

export type McpToolExecutionLogOrderByRelationAggregateInput = {
  _count?: Prisma.SortOrder
}

export type McpToolExecutionLogCountOrderByAggregateInput = {
  mcpToolExecutionLogId?: Prisma.SortOrder
  organizationId?: Prisma.SortOrder
  agentId?: Prisma.SortOrder
  mcpConnectionId?: Prisma.SortOrder
  toolName?: Prisma.SortOrder
  callId?: Prisma.SortOrder
  status?: Prisma.SortOrder
  latencyMs?: Prisma.SortOrder
  argumentsPreview?: Prisma.SortOrder
  resultPreview?: Prisma.SortOrder
  error?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
}

export type McpToolExecutionLogAvgOrderByAggregateInput = {
  latencyMs?: Prisma.SortOrder
}

export type McpToolExecutionLogMaxOrderByAggregateInput = {
  mcpToolExecutionLogId?: Prisma.SortOrder
  organizationId?: Prisma.SortOrder
  agentId?: Prisma.SortOrder
  mcpConnectionId?: Prisma.SortOrder
  toolName?: Prisma.SortOrder
  callId?: Prisma.SortOrder
  status?: Prisma.SortOrder
  latencyMs?: Prisma.SortOrder
  error?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
}

export type McpToolExecutionLogMinOrderByAggregateInput = {
  mcpToolExecutionLogId?: Prisma.SortOrder
  organizationId?: Prisma.SortOrder
  agentId?: Prisma.SortOrder
  mcpConnectionId?: Prisma.SortOrder
  toolName?: Prisma.SortOrder
  callId?: Prisma.SortOrder
  status?: Prisma.SortOrder
  latencyMs?: Prisma.SortOrder
  error?: Prisma.SortOrder
  createdAt?: Prisma.SortOrder
}

export type McpToolExecutionLogSumOrderByAggregateInput = {
  latencyMs?: Prisma.SortOrder
}

export type McpToolExecutionLogCreateNestedManyWithoutOrganizationInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput> | Prisma.McpToolExecutionLogCreateWithoutOrganizationInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyOrganizationInputEnvelope
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
}

export type McpToolExecutionLogUncheckedCreateNestedManyWithoutOrganizationInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput> | Prisma.McpToolExecutionLogCreateWithoutOrganizationInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyOrganizationInputEnvelope
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
}

export type McpToolExecutionLogUpdateManyWithoutOrganizationNestedInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput> | Prisma.McpToolExecutionLogCreateWithoutOrganizationInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput[]
  upsert?: Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutOrganizationInput | Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutOrganizationInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyOrganizationInputEnvelope
  set?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  disconnect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  delete?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  update?: Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutOrganizationInput | Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutOrganizationInput[]
  updateMany?: Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutOrganizationInput | Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutOrganizationInput[]
  deleteMany?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
}

export type McpToolExecutionLogUncheckedUpdateManyWithoutOrganizationNestedInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput> | Prisma.McpToolExecutionLogCreateWithoutOrganizationInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutOrganizationInput[]
  upsert?: Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutOrganizationInput | Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutOrganizationInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyOrganizationInputEnvelope
  set?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  disconnect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  delete?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  update?: Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutOrganizationInput | Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutOrganizationInput[]
  updateMany?: Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutOrganizationInput | Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutOrganizationInput[]
  deleteMany?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
}

export type McpToolExecutionLogCreateNestedManyWithoutAgentInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput> | Prisma.McpToolExecutionLogCreateWithoutAgentInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyAgentInputEnvelope
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
}

export type McpToolExecutionLogUncheckedCreateNestedManyWithoutAgentInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput> | Prisma.McpToolExecutionLogCreateWithoutAgentInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyAgentInputEnvelope
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
}

export type McpToolExecutionLogUpdateManyWithoutAgentNestedInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput> | Prisma.McpToolExecutionLogCreateWithoutAgentInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput[]
  upsert?: Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutAgentInput | Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutAgentInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyAgentInputEnvelope
  set?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  disconnect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  delete?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  update?: Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutAgentInput | Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutAgentInput[]
  updateMany?: Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutAgentInput | Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutAgentInput[]
  deleteMany?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
}

export type McpToolExecutionLogUncheckedUpdateManyWithoutAgentNestedInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput> | Prisma.McpToolExecutionLogCreateWithoutAgentInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutAgentInput[]
  upsert?: Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutAgentInput | Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutAgentInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyAgentInputEnvelope
  set?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  disconnect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  delete?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  update?: Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutAgentInput | Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutAgentInput[]
  updateMany?: Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutAgentInput | Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutAgentInput[]
  deleteMany?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
}

export type McpToolExecutionLogCreateNestedManyWithoutMcpConnectionInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput> | Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyMcpConnectionInputEnvelope
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
}

export type McpToolExecutionLogUncheckedCreateNestedManyWithoutMcpConnectionInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput> | Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyMcpConnectionInputEnvelope
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
}

export type McpToolExecutionLogUpdateManyWithoutMcpConnectionNestedInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput> | Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput[]
  upsert?: Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutMcpConnectionInput | Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutMcpConnectionInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyMcpConnectionInputEnvelope
  set?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  disconnect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  delete?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  update?: Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutMcpConnectionInput | Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutMcpConnectionInput[]
  updateMany?: Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutMcpConnectionInput | Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutMcpConnectionInput[]
  deleteMany?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
}

export type McpToolExecutionLogUncheckedUpdateManyWithoutMcpConnectionNestedInput = {
  create?: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput> | Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput[] | Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput[]
  connectOrCreate?: Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput | Prisma.McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput[]
  upsert?: Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutMcpConnectionInput | Prisma.McpToolExecutionLogUpsertWithWhereUniqueWithoutMcpConnectionInput[]
  createMany?: Prisma.McpToolExecutionLogCreateManyMcpConnectionInputEnvelope
  set?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  disconnect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  delete?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  connect?: Prisma.McpToolExecutionLogWhereUniqueInput | Prisma.McpToolExecutionLogWhereUniqueInput[]
  update?: Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutMcpConnectionInput | Prisma.McpToolExecutionLogUpdateWithWhereUniqueWithoutMcpConnectionInput[]
  updateMany?: Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutMcpConnectionInput | Prisma.McpToolExecutionLogUpdateManyWithWhereWithoutMcpConnectionInput[]
  deleteMany?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
}

export type McpToolExecutionLogCreateWithoutOrganizationInput = {
  mcpToolExecutionLogId?: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
  agent?: Prisma.AgentCreateNestedOneWithoutMcpToolExecutionLogsInput
  mcpConnection: Prisma.McpConnectionCreateNestedOneWithoutExecutionLogsInput
}

export type McpToolExecutionLogUncheckedCreateWithoutOrganizationInput = {
  mcpToolExecutionLogId?: string
  agentId?: string | null
  mcpConnectionId: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogCreateOrConnectWithoutOrganizationInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput>
}

export type McpToolExecutionLogCreateManyOrganizationInputEnvelope = {
  data: Prisma.McpToolExecutionLogCreateManyOrganizationInput | Prisma.McpToolExecutionLogCreateManyOrganizationInput[]
  skipDuplicates?: boolean
}

export type McpToolExecutionLogUpsertWithWhereUniqueWithoutOrganizationInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  update: Prisma.XOR<Prisma.McpToolExecutionLogUpdateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedUpdateWithoutOrganizationInput>
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutOrganizationInput>
}

export type McpToolExecutionLogUpdateWithWhereUniqueWithoutOrganizationInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateWithoutOrganizationInput, Prisma.McpToolExecutionLogUncheckedUpdateWithoutOrganizationInput>
}

export type McpToolExecutionLogUpdateManyWithWhereWithoutOrganizationInput = {
  where: Prisma.McpToolExecutionLogScalarWhereInput
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateManyMutationInput, Prisma.McpToolExecutionLogUncheckedUpdateManyWithoutOrganizationInput>
}

export type McpToolExecutionLogScalarWhereInput = {
  AND?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
  OR?: Prisma.McpToolExecutionLogScalarWhereInput[]
  NOT?: Prisma.McpToolExecutionLogScalarWhereInput | Prisma.McpToolExecutionLogScalarWhereInput[]
  mcpToolExecutionLogId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  organizationId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  agentId?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  mcpConnectionId?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  toolName?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  callId?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  status?: Prisma.StringFilter<"McpToolExecutionLog"> | string
  latencyMs?: Prisma.IntNullableFilter<"McpToolExecutionLog"> | number | null
  argumentsPreview?: Prisma.JsonNullableFilter<"McpToolExecutionLog">
  resultPreview?: Prisma.JsonNullableFilter<"McpToolExecutionLog">
  error?: Prisma.StringNullableFilter<"McpToolExecutionLog"> | string | null
  createdAt?: Prisma.DateTimeFilter<"McpToolExecutionLog"> | Date | string
}

export type McpToolExecutionLogCreateWithoutAgentInput = {
  mcpToolExecutionLogId?: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
  organization: Prisma.OrganizationCreateNestedOneWithoutMcpToolExecutionLogsInput
  mcpConnection: Prisma.McpConnectionCreateNestedOneWithoutExecutionLogsInput
}

export type McpToolExecutionLogUncheckedCreateWithoutAgentInput = {
  mcpToolExecutionLogId?: string
  organizationId: string
  mcpConnectionId: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogCreateOrConnectWithoutAgentInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput>
}

export type McpToolExecutionLogCreateManyAgentInputEnvelope = {
  data: Prisma.McpToolExecutionLogCreateManyAgentInput | Prisma.McpToolExecutionLogCreateManyAgentInput[]
  skipDuplicates?: boolean
}

export type McpToolExecutionLogUpsertWithWhereUniqueWithoutAgentInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  update: Prisma.XOR<Prisma.McpToolExecutionLogUpdateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedUpdateWithoutAgentInput>
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutAgentInput>
}

export type McpToolExecutionLogUpdateWithWhereUniqueWithoutAgentInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateWithoutAgentInput, Prisma.McpToolExecutionLogUncheckedUpdateWithoutAgentInput>
}

export type McpToolExecutionLogUpdateManyWithWhereWithoutAgentInput = {
  where: Prisma.McpToolExecutionLogScalarWhereInput
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateManyMutationInput, Prisma.McpToolExecutionLogUncheckedUpdateManyWithoutAgentInput>
}

export type McpToolExecutionLogCreateWithoutMcpConnectionInput = {
  mcpToolExecutionLogId?: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
  organization: Prisma.OrganizationCreateNestedOneWithoutMcpToolExecutionLogsInput
  agent?: Prisma.AgentCreateNestedOneWithoutMcpToolExecutionLogsInput
}

export type McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput = {
  mcpToolExecutionLogId?: string
  organizationId: string
  agentId?: string | null
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogCreateOrConnectWithoutMcpConnectionInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput>
}

export type McpToolExecutionLogCreateManyMcpConnectionInputEnvelope = {
  data: Prisma.McpToolExecutionLogCreateManyMcpConnectionInput | Prisma.McpToolExecutionLogCreateManyMcpConnectionInput[]
  skipDuplicates?: boolean
}

export type McpToolExecutionLogUpsertWithWhereUniqueWithoutMcpConnectionInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  update: Prisma.XOR<Prisma.McpToolExecutionLogUpdateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedUpdateWithoutMcpConnectionInput>
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedCreateWithoutMcpConnectionInput>
}

export type McpToolExecutionLogUpdateWithWhereUniqueWithoutMcpConnectionInput = {
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateWithoutMcpConnectionInput, Prisma.McpToolExecutionLogUncheckedUpdateWithoutMcpConnectionInput>
}

export type McpToolExecutionLogUpdateManyWithWhereWithoutMcpConnectionInput = {
  where: Prisma.McpToolExecutionLogScalarWhereInput
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateManyMutationInput, Prisma.McpToolExecutionLogUncheckedUpdateManyWithoutMcpConnectionInput>
}

export type McpToolExecutionLogCreateManyOrganizationInput = {
  mcpToolExecutionLogId?: string
  agentId?: string | null
  mcpConnectionId: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogUpdateWithoutOrganizationInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  agent?: Prisma.AgentUpdateOneWithoutMcpToolExecutionLogsNestedInput
  mcpConnection?: Prisma.McpConnectionUpdateOneRequiredWithoutExecutionLogsNestedInput
}

export type McpToolExecutionLogUncheckedUpdateWithoutOrganizationInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  agentId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  mcpConnectionId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogUncheckedUpdateManyWithoutOrganizationInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  agentId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  mcpConnectionId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogCreateManyAgentInput = {
  mcpToolExecutionLogId?: string
  organizationId: string
  mcpConnectionId: string
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogUpdateWithoutAgentInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  organization?: Prisma.OrganizationUpdateOneRequiredWithoutMcpToolExecutionLogsNestedInput
  mcpConnection?: Prisma.McpConnectionUpdateOneRequiredWithoutExecutionLogsNestedInput
}

export type McpToolExecutionLogUncheckedUpdateWithoutAgentInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  organizationId?: Prisma.StringFieldUpdateOperationsInput | string
  mcpConnectionId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogUncheckedUpdateManyWithoutAgentInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  organizationId?: Prisma.StringFieldUpdateOperationsInput | string
  mcpConnectionId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogCreateManyMcpConnectionInput = {
  mcpToolExecutionLogId?: string
  organizationId: string
  agentId?: string | null
  toolName: string
  callId?: string | null
  status: string
  latencyMs?: number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: string | null
  createdAt?: Date | string
}

export type McpToolExecutionLogUpdateWithoutMcpConnectionInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
  organization?: Prisma.OrganizationUpdateOneRequiredWithoutMcpToolExecutionLogsNestedInput
  agent?: Prisma.AgentUpdateOneWithoutMcpToolExecutionLogsNestedInput
}

export type McpToolExecutionLogUncheckedUpdateWithoutMcpConnectionInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  organizationId?: Prisma.StringFieldUpdateOperationsInput | string
  agentId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}

export type McpToolExecutionLogUncheckedUpdateManyWithoutMcpConnectionInput = {
  mcpToolExecutionLogId?: Prisma.StringFieldUpdateOperationsInput | string
  organizationId?: Prisma.StringFieldUpdateOperationsInput | string
  agentId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  toolName?: Prisma.StringFieldUpdateOperationsInput | string
  callId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  status?: Prisma.StringFieldUpdateOperationsInput | string
  latencyMs?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
  argumentsPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  resultPreview?: Prisma.NullableJsonNullValueInput | runtime.InputJsonValue
  error?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}



export type McpToolExecutionLogSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  mcpToolExecutionLogId?: boolean
  organizationId?: boolean
  agentId?: boolean
  mcpConnectionId?: boolean
  toolName?: boolean
  callId?: boolean
  status?: boolean
  latencyMs?: boolean
  argumentsPreview?: boolean
  resultPreview?: boolean
  error?: boolean
  createdAt?: boolean
  organization?: boolean | Prisma.OrganizationDefaultArgs<ExtArgs>
  agent?: boolean | Prisma.McpToolExecutionLog$agentArgs<ExtArgs>
  mcpConnection?: boolean | Prisma.McpConnectionDefaultArgs<ExtArgs>
}, ExtArgs["result"]["mcpToolExecutionLog"]>

export type McpToolExecutionLogSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  mcpToolExecutionLogId?: boolean
  organizationId?: boolean
  agentId?: boolean
  mcpConnectionId?: boolean
  toolName?: boolean
  callId?: boolean
  status?: boolean
  latencyMs?: boolean
  argumentsPreview?: boolean
  resultPreview?: boolean
  error?: boolean
  createdAt?: boolean
  organization?: boolean | Prisma.OrganizationDefaultArgs<ExtArgs>
  agent?: boolean | Prisma.McpToolExecutionLog$agentArgs<ExtArgs>
  mcpConnection?: boolean | Prisma.McpConnectionDefaultArgs<ExtArgs>
}, ExtArgs["result"]["mcpToolExecutionLog"]>

export type McpToolExecutionLogSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
  mcpToolExecutionLogId?: boolean
  organizationId?: boolean
  agentId?: boolean
  mcpConnectionId?: boolean
  toolName?: boolean
  callId?: boolean
  status?: boolean
  latencyMs?: boolean
  argumentsPreview?: boolean
  resultPreview?: boolean
  error?: boolean
  createdAt?: boolean
  organization?: boolean | Prisma.OrganizationDefaultArgs<ExtArgs>
  agent?: boolean | Prisma.McpToolExecutionLog$agentArgs<ExtArgs>
  mcpConnection?: boolean | Prisma.McpConnectionDefaultArgs<ExtArgs>
}, ExtArgs["result"]["mcpToolExecutionLog"]>

export type McpToolExecutionLogSelectScalar = {
  mcpToolExecutionLogId?: boolean
  organizationId?: boolean
  agentId?: boolean
  mcpConnectionId?: boolean
  toolName?: boolean
  callId?: boolean
  status?: boolean
  latencyMs?: boolean
  argumentsPreview?: boolean
  resultPreview?: boolean
  error?: boolean
  createdAt?: boolean
}

export type McpToolExecutionLogOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"mcpToolExecutionLogId" | "organizationId" | "agentId" | "mcpConnectionId" | "toolName" | "callId" | "status" | "latencyMs" | "argumentsPreview" | "resultPreview" | "error" | "createdAt", ExtArgs["result"]["mcpToolExecutionLog"]>
export type McpToolExecutionLogInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  organization?: boolean | Prisma.OrganizationDefaultArgs<ExtArgs>
  agent?: boolean | Prisma.McpToolExecutionLog$agentArgs<ExtArgs>
  mcpConnection?: boolean | Prisma.McpConnectionDefaultArgs<ExtArgs>
}
export type McpToolExecutionLogIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  organization?: boolean | Prisma.OrganizationDefaultArgs<ExtArgs>
  agent?: boolean | Prisma.McpToolExecutionLog$agentArgs<ExtArgs>
  mcpConnection?: boolean | Prisma.McpConnectionDefaultArgs<ExtArgs>
}
export type McpToolExecutionLogIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  organization?: boolean | Prisma.OrganizationDefaultArgs<ExtArgs>
  agent?: boolean | Prisma.McpToolExecutionLog$agentArgs<ExtArgs>
  mcpConnection?: boolean | Prisma.McpConnectionDefaultArgs<ExtArgs>
}

export type $McpToolExecutionLogPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  name: "McpToolExecutionLog"
  objects: {
    organization: Prisma.$OrganizationPayload<ExtArgs>
    agent: Prisma.$AgentPayload<ExtArgs> | null
    mcpConnection: Prisma.$McpConnectionPayload<ExtArgs>
  }
  scalars: runtime.Types.Extensions.GetPayloadResult<{
    mcpToolExecutionLogId: string
    organizationId: string
    agentId: string | null
    mcpConnectionId: string
    toolName: string
    callId: string | null
    status: string
    latencyMs: number | null
    argumentsPreview: runtime.JsonValue | null
    resultPreview: runtime.JsonValue | null
    error: string | null
    createdAt: Date
  }, ExtArgs["result"]["mcpToolExecutionLog"]>
  composites: {}
}

export type McpToolExecutionLogGetPayload<S extends boolean | null | undefined | McpToolExecutionLogDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload, S>

export type McpToolExecutionLogCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> =
  Omit<McpToolExecutionLogFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
    select?: McpToolExecutionLogCountAggregateInputType | true
  }

export interface McpToolExecutionLogDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
  [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['McpToolExecutionLog'], meta: { name: 'McpToolExecutionLog' } }
  /**
   * Find zero or one McpToolExecutionLog that matches the filter.
   * @param {McpToolExecutionLogFindUniqueArgs} args - Arguments to find a McpToolExecutionLog
   * @example
   * // Get one McpToolExecutionLog
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.findUnique({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findUnique<T extends McpToolExecutionLogFindUniqueArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogFindUniqueArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

  /**
   * Find one McpToolExecutionLog that matches the filter or throw an error with `error.code='P2025'`
   * if no matches were found.
   * @param {McpToolExecutionLogFindUniqueOrThrowArgs} args - Arguments to find a McpToolExecutionLog
   * @example
   * // Get one McpToolExecutionLog
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.findUniqueOrThrow({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findUniqueOrThrow<T extends McpToolExecutionLogFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Find the first McpToolExecutionLog that matches the filter.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogFindFirstArgs} args - Arguments to find a McpToolExecutionLog
   * @example
   * // Get one McpToolExecutionLog
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.findFirst({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findFirst<T extends McpToolExecutionLogFindFirstArgs>(args?: Prisma.SelectSubset<T, McpToolExecutionLogFindFirstArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

  /**
   * Find the first McpToolExecutionLog that matches the filter or
   * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogFindFirstOrThrowArgs} args - Arguments to find a McpToolExecutionLog
   * @example
   * // Get one McpToolExecutionLog
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.findFirstOrThrow({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   */
  findFirstOrThrow<T extends McpToolExecutionLogFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, McpToolExecutionLogFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Find zero or more McpToolExecutionLogs that matches the filter.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogFindManyArgs} args - Arguments to filter and select certain fields only.
   * @example
   * // Get all McpToolExecutionLogs
   * const mcpToolExecutionLogs = await prisma.mcpToolExecutionLog.findMany()
   * 
   * // Get first 10 McpToolExecutionLogs
   * const mcpToolExecutionLogs = await prisma.mcpToolExecutionLog.findMany({ take: 10 })
   * 
   * // Only select the `mcpToolExecutionLogId`
   * const mcpToolExecutionLogWithMcpToolExecutionLogIdOnly = await prisma.mcpToolExecutionLog.findMany({ select: { mcpToolExecutionLogId: true } })
   * 
   */
  findMany<T extends McpToolExecutionLogFindManyArgs>(args?: Prisma.SelectSubset<T, McpToolExecutionLogFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

  /**
   * Create a McpToolExecutionLog.
   * @param {McpToolExecutionLogCreateArgs} args - Arguments to create a McpToolExecutionLog.
   * @example
   * // Create one McpToolExecutionLog
   * const McpToolExecutionLog = await prisma.mcpToolExecutionLog.create({
   *   data: {
   *     // ... data to create a McpToolExecutionLog
   *   }
   * })
   * 
   */
  create<T extends McpToolExecutionLogCreateArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogCreateArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Create many McpToolExecutionLogs.
   * @param {McpToolExecutionLogCreateManyArgs} args - Arguments to create many McpToolExecutionLogs.
   * @example
   * // Create many McpToolExecutionLogs
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.createMany({
   *   data: [
   *     // ... provide data here
   *   ]
   * })
   *     
   */
  createMany<T extends McpToolExecutionLogCreateManyArgs>(args?: Prisma.SelectSubset<T, McpToolExecutionLogCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>

  /**
   * Create many McpToolExecutionLogs and returns the data saved in the database.
   * @param {McpToolExecutionLogCreateManyAndReturnArgs} args - Arguments to create many McpToolExecutionLogs.
   * @example
   * // Create many McpToolExecutionLogs
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.createManyAndReturn({
   *   data: [
   *     // ... provide data here
   *   ]
   * })
   * 
   * // Create many McpToolExecutionLogs and only return the `mcpToolExecutionLogId`
   * const mcpToolExecutionLogWithMcpToolExecutionLogIdOnly = await prisma.mcpToolExecutionLog.createManyAndReturn({
   *   select: { mcpToolExecutionLogId: true },
   *   data: [
   *     // ... provide data here
   *   ]
   * })
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * 
   */
  createManyAndReturn<T extends McpToolExecutionLogCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, McpToolExecutionLogCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

  /**
   * Delete a McpToolExecutionLog.
   * @param {McpToolExecutionLogDeleteArgs} args - Arguments to delete one McpToolExecutionLog.
   * @example
   * // Delete one McpToolExecutionLog
   * const McpToolExecutionLog = await prisma.mcpToolExecutionLog.delete({
   *   where: {
   *     // ... filter to delete one McpToolExecutionLog
   *   }
   * })
   * 
   */
  delete<T extends McpToolExecutionLogDeleteArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogDeleteArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Update one McpToolExecutionLog.
   * @param {McpToolExecutionLogUpdateArgs} args - Arguments to update one McpToolExecutionLog.
   * @example
   * // Update one McpToolExecutionLog
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.update({
   *   where: {
   *     // ... provide filter here
   *   },
   *   data: {
   *     // ... provide data here
   *   }
   * })
   * 
   */
  update<T extends McpToolExecutionLogUpdateArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogUpdateArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

  /**
   * Delete zero or more McpToolExecutionLogs.
   * @param {McpToolExecutionLogDeleteManyArgs} args - Arguments to filter McpToolExecutionLogs to delete.
   * @example
   * // Delete a few McpToolExecutionLogs
   * const { count } = await prisma.mcpToolExecutionLog.deleteMany({
   *   where: {
   *     // ... provide filter here
   *   }
   * })
   * 
   */
  deleteMany<T extends McpToolExecutionLogDeleteManyArgs>(args?: Prisma.SelectSubset<T, McpToolExecutionLogDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>

  /**
   * Update zero or more McpToolExecutionLogs.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogUpdateManyArgs} args - Arguments to update one or more rows.
   * @example
   * // Update many McpToolExecutionLogs
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.updateMany({
   *   where: {
   *     // ... provide filter here
   *   },
   *   data: {
   *     // ... provide data here
   *   }
   * })
   * 
   */
  updateMany<T extends McpToolExecutionLogUpdateManyArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>

  /**
   * Update zero or more McpToolExecutionLogs and returns the data updated in the database.
   * @param {McpToolExecutionLogUpdateManyAndReturnArgs} args - Arguments to update many McpToolExecutionLogs.
   * @example
   * // Update many McpToolExecutionLogs
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.updateManyAndReturn({
   *   where: {
   *     // ... provide filter here
   *   },
   *   data: [
   *     // ... provide data here
   *   ]
   * })
   * 
   * // Update zero or more McpToolExecutionLogs and only return the `mcpToolExecutionLogId`
   * const mcpToolExecutionLogWithMcpToolExecutionLogIdOnly = await prisma.mcpToolExecutionLog.updateManyAndReturn({
   *   select: { mcpToolExecutionLogId: true },
   *   where: {
   *     // ... provide filter here
   *   },
   *   data: [
   *     // ... provide data here
   *   ]
   * })
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * 
   */
  updateManyAndReturn<T extends McpToolExecutionLogUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

  /**
   * Create or update one McpToolExecutionLog.
   * @param {McpToolExecutionLogUpsertArgs} args - Arguments to update or create a McpToolExecutionLog.
   * @example
   * // Update or create a McpToolExecutionLog
   * const mcpToolExecutionLog = await prisma.mcpToolExecutionLog.upsert({
   *   create: {
   *     // ... data to create a McpToolExecutionLog
   *   },
   *   update: {
   *     // ... in case it already exists, update
   *   },
   *   where: {
   *     // ... the filter for the McpToolExecutionLog we want to update
   *   }
   * })
   */
  upsert<T extends McpToolExecutionLogUpsertArgs>(args: Prisma.SelectSubset<T, McpToolExecutionLogUpsertArgs<ExtArgs>>): Prisma.Prisma__McpToolExecutionLogClient<runtime.Types.Result.GetResult<Prisma.$McpToolExecutionLogPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


  /**
   * Count the number of McpToolExecutionLogs.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogCountArgs} args - Arguments to filter McpToolExecutionLogs to count.
   * @example
   * // Count the number of McpToolExecutionLogs
   * const count = await prisma.mcpToolExecutionLog.count({
   *   where: {
   *     // ... the filter for the McpToolExecutionLogs we want to count
   *   }
   * })
  **/
  count<T extends McpToolExecutionLogCountArgs>(
    args?: Prisma.Subset<T, McpToolExecutionLogCountArgs>,
  ): Prisma.PrismaPromise<
    T extends runtime.Types.Utils.Record<'select', any>
      ? T['select'] extends true
        ? number
        : Prisma.GetScalarType<T['select'], McpToolExecutionLogCountAggregateOutputType>
      : number
  >

  /**
   * Allows you to perform aggregations operations on a McpToolExecutionLog.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
   * @example
   * // Ordered by age ascending
   * // Where email contains prisma.io
   * // Limited to the 10 users
   * const aggregations = await prisma.user.aggregate({
   *   _avg: {
   *     age: true,
   *   },
   *   where: {
   *     email: {
   *       contains: "prisma.io",
   *     },
   *   },
   *   orderBy: {
   *     age: "asc",
   *   },
   *   take: 10,
   * })
  **/
  aggregate<T extends McpToolExecutionLogAggregateArgs>(args: Prisma.Subset<T, McpToolExecutionLogAggregateArgs>): Prisma.PrismaPromise<GetMcpToolExecutionLogAggregateType<T>>

  /**
   * Group by McpToolExecutionLog.
   * Note, that providing `undefined` is treated as the value not being there.
   * Read more here: https://pris.ly/d/null-undefined
   * @param {McpToolExecutionLogGroupByArgs} args - Group by arguments.
   * @example
   * // Group by city, order by createdAt, get count
   * const result = await prisma.user.groupBy({
   *   by: ['city', 'createdAt'],
   *   orderBy: {
   *     createdAt: true
   *   },
   *   _count: {
   *     _all: true
   *   },
   * })
   * 
  **/
  groupBy<
    T extends McpToolExecutionLogGroupByArgs,
    HasSelectOrTake extends Prisma.Or<
      Prisma.Extends<'skip', Prisma.Keys<T>>,
      Prisma.Extends<'take', Prisma.Keys<T>>
    >,
    OrderByArg extends Prisma.True extends HasSelectOrTake
      ? { orderBy: McpToolExecutionLogGroupByArgs['orderBy'] }
      : { orderBy?: McpToolExecutionLogGroupByArgs['orderBy'] },
    OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>,
    ByFields extends Prisma.MaybeTupleToUnion<T['by']>,
    ByValid extends Prisma.Has<ByFields, OrderFields>,
    HavingFields extends Prisma.GetHavingFields<T['having']>,
    HavingValid extends Prisma.Has<ByFields, HavingFields>,
    ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False,
    InputErrors extends ByEmpty extends Prisma.True
    ? `Error: "by" must not be empty.`
    : HavingValid extends Prisma.False
    ? {
        [P in HavingFields]: P extends ByFields
          ? never
          : P extends string
          ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
          : [
              Error,
              'Field ',
              P,
              ` in "having" needs to be provided in "by"`,
            ]
      }[HavingFields]
    : 'take' extends Prisma.Keys<T>
    ? 'orderBy' extends Prisma.Keys<T>
      ? ByValid extends Prisma.True
        ? {}
        : {
            [P in OrderFields]: P extends ByFields
              ? never
              : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
          }[OrderFields]
      : 'Error: If you provide "take", you also need to provide "orderBy"'
    : 'skip' extends Prisma.Keys<T>
    ? 'orderBy' extends Prisma.Keys<T>
      ? ByValid extends Prisma.True
        ? {}
        : {
            [P in OrderFields]: P extends ByFields
              ? never
              : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
          }[OrderFields]
      : 'Error: If you provide "skip", you also need to provide "orderBy"'
    : ByValid extends Prisma.True
    ? {}
    : {
        [P in OrderFields]: P extends ByFields
          ? never
          : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
      }[OrderFields]
  >(args: Prisma.SubsetIntersection<T, McpToolExecutionLogGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetMcpToolExecutionLogGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
/**
 * Fields of the McpToolExecutionLog model
 */
readonly fields: McpToolExecutionLogFieldRefs;
}

/**
 * The delegate class that acts as a "Promise-like" for McpToolExecutionLog.
 * Why is this prefixed with `Prisma__`?
 * Because we want to prevent naming conflicts as mentioned in
 * https://github.com/prisma/prisma-client-js/issues/707
 */
export interface Prisma__McpToolExecutionLogClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
  readonly [Symbol.toStringTag]: "PrismaPromise"
  organization<T extends Prisma.OrganizationDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.OrganizationDefaultArgs<ExtArgs>>): Prisma.Prisma__OrganizationClient<runtime.Types.Result.GetResult<Prisma.$OrganizationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
  agent<T extends Prisma.McpToolExecutionLog$agentArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.McpToolExecutionLog$agentArgs<ExtArgs>>): Prisma.Prisma__AgentClient<runtime.Types.Result.GetResult<Prisma.$AgentPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
  mcpConnection<T extends Prisma.McpConnectionDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.McpConnectionDefaultArgs<ExtArgs>>): Prisma.Prisma__McpConnectionClient<runtime.Types.Result.GetResult<Prisma.$McpConnectionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
  /**
   * Attaches callbacks for the resolution and/or rejection of the Promise.
   * @param onfulfilled The callback to execute when the Promise is resolved.
   * @param onrejected The callback to execute when the Promise is rejected.
   * @returns A Promise for the completion of which ever callback is executed.
   */
  then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): runtime.Types.Utils.JsPromise<TResult1 | TResult2>
  /**
   * Attaches a callback for only the rejection of the Promise.
   * @param onrejected The callback to execute when the Promise is rejected.
   * @returns A Promise for the completion of the callback.
   */
  catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): runtime.Types.Utils.JsPromise<T | TResult>
  /**
   * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
   * resolved value cannot be modified from the callback.
   * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
   * @returns A Promise for the completion of the callback.
   */
  finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise<T>
}




/**
 * Fields of the McpToolExecutionLog model
 */
export interface McpToolExecutionLogFieldRefs {
  readonly mcpToolExecutionLogId: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly organizationId: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly agentId: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly mcpConnectionId: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly toolName: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly callId: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly status: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly latencyMs: Prisma.FieldRef<"McpToolExecutionLog", 'Int'>
  readonly argumentsPreview: Prisma.FieldRef<"McpToolExecutionLog", 'Json'>
  readonly resultPreview: Prisma.FieldRef<"McpToolExecutionLog", 'Json'>
  readonly error: Prisma.FieldRef<"McpToolExecutionLog", 'String'>
  readonly createdAt: Prisma.FieldRef<"McpToolExecutionLog", 'DateTime'>
}
    

// Custom InputTypes
/**
 * McpToolExecutionLog findUnique
 */
export type McpToolExecutionLogFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * Filter, which McpToolExecutionLog to fetch.
   */
  where: Prisma.McpToolExecutionLogWhereUniqueInput
}

/**
 * McpToolExecutionLog findUniqueOrThrow
 */
export type McpToolExecutionLogFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * Filter, which McpToolExecutionLog to fetch.
   */
  where: Prisma.McpToolExecutionLogWhereUniqueInput
}

/**
 * McpToolExecutionLog findFirst
 */
export type McpToolExecutionLogFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * Filter, which McpToolExecutionLog to fetch.
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of McpToolExecutionLogs to fetch.
   */
  orderBy?: Prisma.McpToolExecutionLogOrderByWithRelationInput | Prisma.McpToolExecutionLogOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for searching for McpToolExecutionLogs.
   */
  cursor?: Prisma.McpToolExecutionLogWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` McpToolExecutionLogs from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` McpToolExecutionLogs.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of McpToolExecutionLogs.
   */
  distinct?: Prisma.McpToolExecutionLogScalarFieldEnum | Prisma.McpToolExecutionLogScalarFieldEnum[]
}

/**
 * McpToolExecutionLog findFirstOrThrow
 */
export type McpToolExecutionLogFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * Filter, which McpToolExecutionLog to fetch.
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of McpToolExecutionLogs to fetch.
   */
  orderBy?: Prisma.McpToolExecutionLogOrderByWithRelationInput | Prisma.McpToolExecutionLogOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for searching for McpToolExecutionLogs.
   */
  cursor?: Prisma.McpToolExecutionLogWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` McpToolExecutionLogs from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` McpToolExecutionLogs.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of McpToolExecutionLogs.
   */
  distinct?: Prisma.McpToolExecutionLogScalarFieldEnum | Prisma.McpToolExecutionLogScalarFieldEnum[]
}

/**
 * McpToolExecutionLog findMany
 */
export type McpToolExecutionLogFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * Filter, which McpToolExecutionLogs to fetch.
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
   * 
   * Determine the order of McpToolExecutionLogs to fetch.
   */
  orderBy?: Prisma.McpToolExecutionLogOrderByWithRelationInput | Prisma.McpToolExecutionLogOrderByWithRelationInput[]
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
   * 
   * Sets the position for listing McpToolExecutionLogs.
   */
  cursor?: Prisma.McpToolExecutionLogWhereUniqueInput
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Take `±n` McpToolExecutionLogs from the position of the cursor.
   */
  take?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
   * 
   * Skip the first `n` McpToolExecutionLogs.
   */
  skip?: number
  /**
   * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
   * 
   * Filter by unique combinations of McpToolExecutionLogs.
   */
  distinct?: Prisma.McpToolExecutionLogScalarFieldEnum | Prisma.McpToolExecutionLogScalarFieldEnum[]
}

/**
 * McpToolExecutionLog create
 */
export type McpToolExecutionLogCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * The data needed to create a McpToolExecutionLog.
   */
  data: Prisma.XOR<Prisma.McpToolExecutionLogCreateInput, Prisma.McpToolExecutionLogUncheckedCreateInput>
}

/**
 * McpToolExecutionLog createMany
 */
export type McpToolExecutionLogCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * The data used to create many McpToolExecutionLogs.
   */
  data: Prisma.McpToolExecutionLogCreateManyInput | Prisma.McpToolExecutionLogCreateManyInput[]
  skipDuplicates?: boolean
}

/**
 * McpToolExecutionLog createManyAndReturn
 */
export type McpToolExecutionLogCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelectCreateManyAndReturn<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * The data used to create many McpToolExecutionLogs.
   */
  data: Prisma.McpToolExecutionLogCreateManyInput | Prisma.McpToolExecutionLogCreateManyInput[]
  skipDuplicates?: boolean
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogIncludeCreateManyAndReturn<ExtArgs> | null
}

/**
 * McpToolExecutionLog update
 */
export type McpToolExecutionLogUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * The data needed to update a McpToolExecutionLog.
   */
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateInput, Prisma.McpToolExecutionLogUncheckedUpdateInput>
  /**
   * Choose, which McpToolExecutionLog to update.
   */
  where: Prisma.McpToolExecutionLogWhereUniqueInput
}

/**
 * McpToolExecutionLog updateMany
 */
export type McpToolExecutionLogUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * The data used to update McpToolExecutionLogs.
   */
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateManyMutationInput, Prisma.McpToolExecutionLogUncheckedUpdateManyInput>
  /**
   * Filter which McpToolExecutionLogs to update
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * Limit how many McpToolExecutionLogs to update.
   */
  limit?: number
}

/**
 * McpToolExecutionLog updateManyAndReturn
 */
export type McpToolExecutionLogUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelectUpdateManyAndReturn<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * The data used to update McpToolExecutionLogs.
   */
  data: Prisma.XOR<Prisma.McpToolExecutionLogUpdateManyMutationInput, Prisma.McpToolExecutionLogUncheckedUpdateManyInput>
  /**
   * Filter which McpToolExecutionLogs to update
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * Limit how many McpToolExecutionLogs to update.
   */
  limit?: number
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogIncludeUpdateManyAndReturn<ExtArgs> | null
}

/**
 * McpToolExecutionLog upsert
 */
export type McpToolExecutionLogUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * The filter to search for the McpToolExecutionLog to update in case it exists.
   */
  where: Prisma.McpToolExecutionLogWhereUniqueInput
  /**
   * In case the McpToolExecutionLog found by the `where` argument doesn't exist, create a new McpToolExecutionLog with this data.
   */
  create: Prisma.XOR<Prisma.McpToolExecutionLogCreateInput, Prisma.McpToolExecutionLogUncheckedCreateInput>
  /**
   * In case the McpToolExecutionLog was found with the provided `where` argument, update it with this data.
   */
  update: Prisma.XOR<Prisma.McpToolExecutionLogUpdateInput, Prisma.McpToolExecutionLogUncheckedUpdateInput>
}

/**
 * McpToolExecutionLog delete
 */
export type McpToolExecutionLogDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
  /**
   * Filter which McpToolExecutionLog to delete.
   */
  where: Prisma.McpToolExecutionLogWhereUniqueInput
}

/**
 * McpToolExecutionLog deleteMany
 */
export type McpToolExecutionLogDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Filter which McpToolExecutionLogs to delete
   */
  where?: Prisma.McpToolExecutionLogWhereInput
  /**
   * Limit how many McpToolExecutionLogs to delete.
   */
  limit?: number
}

/**
 * McpToolExecutionLog.agent
 */
export type McpToolExecutionLog$agentArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the Agent
   */
  select?: Prisma.AgentSelect<ExtArgs> | null
  /**
   * Omit specific fields from the Agent
   */
  omit?: Prisma.AgentOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.AgentInclude<ExtArgs> | null
  where?: Prisma.AgentWhereInput
}

/**
 * McpToolExecutionLog without action
 */
export type McpToolExecutionLogDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
  /**
   * Select specific fields to fetch from the McpToolExecutionLog
   */
  select?: Prisma.McpToolExecutionLogSelect<ExtArgs> | null
  /**
   * Omit specific fields from the McpToolExecutionLog
   */
  omit?: Prisma.McpToolExecutionLogOmit<ExtArgs> | null
  /**
   * Choose, which related nodes to fetch as well
   */
  include?: Prisma.McpToolExecutionLogInclude<ExtArgs> | null
}
