{"version":3,"file":"index.cjs","names":["BaseClient"],"sources":["../../../src/client/assistants/index.ts"],"sourcesContent":["import {\n  Assistant,\n  AssistantGraph,\n  AssistantSortBy,\n  AssistantSelectField,\n  AssistantVersion,\n  AssistantsSearchResponse,\n  Config,\n  GraphSchema,\n  Metadata,\n  SortOrder,\n  Subgraphs,\n} from \"../../schema.js\";\nimport type { OnConflictBehavior } from \"../../types.js\";\nimport { BaseClient } from \"../base.js\";\n\nexport class AssistantsClient extends BaseClient {\n  /**\n   * Get an assistant by ID.\n   *\n   * @param assistantId The ID of the assistant.\n   * @returns Assistant\n   */\n  async get(\n    assistantId: string,\n    options?: { signal?: AbortSignal }\n  ): Promise<Assistant> {\n    return this.fetch<Assistant>(`/assistants/${assistantId}`, {\n      signal: options?.signal,\n    });\n  }\n\n  /**\n   * Get the JSON representation of the graph assigned to a runnable\n   * @param assistantId The ID of the assistant.\n   * @param options.xray Whether to include subgraphs in the serialized graph representation. If an integer value is provided, only subgraphs with a depth less than or equal to the value will be included.\n   * @returns Serialized graph\n   */\n  async getGraph(\n    assistantId: string,\n    options?: { xray?: boolean | number; signal?: AbortSignal }\n  ): Promise<AssistantGraph> {\n    return this.fetch<AssistantGraph>(`/assistants/${assistantId}/graph`, {\n      params: { xray: options?.xray },\n      signal: options?.signal,\n    });\n  }\n\n  /**\n   * Get the state and config schema of the graph assigned to a runnable\n   * @param assistantId The ID of the assistant.\n   * @returns Graph schema\n   */\n  async getSchemas(\n    assistantId: string,\n    options?: { signal?: AbortSignal }\n  ): Promise<GraphSchema> {\n    return this.fetch<GraphSchema>(`/assistants/${assistantId}/schemas`, {\n      signal: options?.signal,\n    });\n  }\n\n  /**\n   * Get the schemas of an assistant by ID.\n   *\n   * @param assistantId The ID of the assistant to get the schema of.\n   * @param options Additional options for getting subgraphs, such as namespace or recursion extraction.\n   * @returns The subgraphs of the assistant.\n   */\n  async getSubgraphs(\n    assistantId: string,\n    options?: {\n      namespace?: string;\n      recurse?: boolean;\n      signal?: AbortSignal;\n    }\n  ): Promise<Subgraphs> {\n    if (options?.namespace) {\n      return this.fetch<Subgraphs>(\n        `/assistants/${assistantId}/subgraphs/${options.namespace}`,\n        { params: { recurse: options?.recurse }, signal: options?.signal }\n      );\n    }\n    return this.fetch<Subgraphs>(`/assistants/${assistantId}/subgraphs`, {\n      params: { recurse: options?.recurse },\n      signal: options?.signal,\n    });\n  }\n\n  /**\n   * Create a new assistant.\n   * @param payload Payload for creating an assistant.\n   * @returns The created assistant.\n   */\n  async create(payload: {\n    graphId: string;\n    config?: Config;\n    context?: unknown;\n    metadata?: Metadata;\n    assistantId?: string;\n    ifExists?: OnConflictBehavior;\n    name?: string;\n    description?: string;\n    signal?: AbortSignal;\n  }): Promise<Assistant> {\n    return this.fetch<Assistant>(\"/assistants\", {\n      method: \"POST\",\n      json: {\n        graph_id: payload.graphId,\n        config: payload.config,\n        context: payload.context,\n        metadata: payload.metadata,\n        assistant_id: payload.assistantId,\n        if_exists: payload.ifExists,\n        name: payload.name,\n        description: payload.description,\n      },\n      signal: payload.signal,\n    });\n  }\n\n  /**\n   * Update an assistant.\n   * @param assistantId ID of the assistant.\n   * @param payload Payload for updating the assistant.\n   * @returns The updated assistant.\n   */\n  async update(\n    assistantId: string,\n    payload: {\n      graphId?: string;\n      config?: Config;\n      context?: unknown;\n      metadata?: Metadata;\n      name?: string;\n      description?: string;\n      signal?: AbortSignal;\n    }\n  ): Promise<Assistant> {\n    return this.fetch<Assistant>(`/assistants/${assistantId}`, {\n      method: \"PATCH\",\n      json: {\n        graph_id: payload.graphId,\n        config: payload.config,\n        context: payload.context,\n        metadata: payload.metadata,\n        name: payload.name,\n        description: payload.description,\n      },\n      signal: payload.signal,\n    });\n  }\n\n  /**\n   * Delete an assistant.\n   *\n   * @param assistantId ID of the assistant.\n   * @param deleteThreads If true, delete all threads with `metadata.assistant_id` equal to `assistantId`. Defaults to false.\n   */\n  async delete(\n    assistantId: string,\n    options?: { signal?: AbortSignal; deleteThreads?: boolean }\n  ): Promise<void> {\n    return this.fetch<void>(\n      `/assistants/${assistantId}?delete_threads=${\n        options?.deleteThreads ?? false\n      }`,\n      {\n        method: \"DELETE\",\n        signal: options?.signal,\n      }\n    );\n  }\n\n  /**\n   * List assistants.\n   * @param query Query options.\n   * @returns List of assistants or, when includePagination is true, a mapping with the assistants and next cursor.\n   */\n  async search(query: {\n    graphId?: string;\n    name?: string;\n    metadata?: Metadata;\n    limit?: number;\n    offset?: number;\n    sortBy?: AssistantSortBy;\n    sortOrder?: SortOrder;\n    select?: AssistantSelectField[];\n    includePagination: true;\n    signal?: AbortSignal;\n  }): Promise<AssistantsSearchResponse>;\n\n  async search(query?: {\n    graphId?: string;\n    name?: string;\n    metadata?: Metadata;\n    limit?: number;\n    offset?: number;\n    sortBy?: AssistantSortBy;\n    sortOrder?: SortOrder;\n    select?: AssistantSelectField[];\n    includePagination?: false;\n    signal?: AbortSignal;\n  }): Promise<Assistant[]>;\n\n  async search(query?: {\n    graphId?: string;\n    name?: string;\n    metadata?: Metadata;\n    limit?: number;\n    offset?: number;\n    sortBy?: AssistantSortBy;\n    sortOrder?: SortOrder;\n    select?: AssistantSelectField[];\n    includePagination?: boolean;\n    signal?: AbortSignal;\n  }): Promise<Assistant[] | AssistantsSearchResponse> {\n    const json = {\n      graph_id: query?.graphId ?? undefined,\n      name: query?.name ?? undefined,\n      metadata: query?.metadata ?? undefined,\n      limit: query?.limit ?? 10,\n      offset: query?.offset ?? 0,\n      sort_by: query?.sortBy ?? undefined,\n      sort_order: query?.sortOrder ?? undefined,\n      select: query?.select ?? undefined,\n    };\n    const [assistants, response] = await this.fetch<Assistant[]>(\n      \"/assistants/search\",\n      {\n        method: \"POST\",\n        json,\n        withResponse: true,\n        signal: query?.signal,\n      }\n    );\n\n    if (query?.includePagination) {\n      const next = response.headers.get(\"X-Pagination-Next\");\n      return { assistants, next };\n    }\n\n    return assistants;\n  }\n\n  /**\n   * Count assistants matching filters.\n   *\n   * @param query.metadata Metadata to filter by. Exact match for each key/value.\n   * @param query.graphId Optional graph id to filter by.\n   * @param query.name Optional name to filter by.\n   * @returns Number of assistants matching the criteria.\n   */\n  async count(query?: {\n    metadata?: Metadata;\n    graphId?: string;\n    name?: string;\n    signal?: AbortSignal;\n  }): Promise<number> {\n    return this.fetch<number>(`/assistants/count`, {\n      method: \"POST\",\n      json: {\n        metadata: query?.metadata ?? undefined,\n        graph_id: query?.graphId ?? undefined,\n        name: query?.name ?? undefined,\n      },\n      signal: query?.signal,\n    });\n  }\n\n  /**\n   * List all versions of an assistant.\n   *\n   * @param assistantId ID of the assistant.\n   * @returns List of assistant versions.\n   */\n  async getVersions(\n    assistantId: string,\n    payload?: {\n      metadata?: Metadata;\n      limit?: number;\n      offset?: number;\n      signal?: AbortSignal;\n    }\n  ): Promise<AssistantVersion[]> {\n    return this.fetch<AssistantVersion[]>(\n      `/assistants/${assistantId}/versions`,\n      {\n        method: \"POST\",\n        json: {\n          metadata: payload?.metadata ?? undefined,\n          limit: payload?.limit ?? 10,\n          offset: payload?.offset ?? 0,\n        },\n        signal: payload?.signal,\n      }\n    );\n  }\n\n  /**\n   * Change the version of an assistant.\n   *\n   * @param assistantId ID of the assistant.\n   * @param version The version to change to.\n   * @returns The updated assistant.\n   */\n  async setLatest(\n    assistantId: string,\n    version: number,\n    options?: { signal?: AbortSignal }\n  ): Promise<Assistant> {\n    return this.fetch<Assistant>(`/assistants/${assistantId}/latest`, {\n      method: \"POST\",\n      json: { version },\n      signal: options?.signal,\n    });\n  }\n}\n"],"mappings":"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"}