@langchain/langgraph-sdk
Version:
Client library for interacting with the LangGraph API
1 lines • 11.7 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","names":["BaseClient","encodePathSegment"],"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, encodePathSegment } 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>(\n `/assistants/${encodePathSegment(assistantId)}`,\n {\n signal: options?.signal,\n }\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>(\n `/assistants/${encodePathSegment(assistantId)}/graph`,\n {\n params: { xray: options?.xray },\n signal: options?.signal,\n }\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>(\n `/assistants/${encodePathSegment(assistantId)}/schemas`,\n {\n signal: options?.signal,\n }\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/${encodePathSegment(assistantId)}/subgraphs/${encodePathSegment(options.namespace)}`,\n { params: { recurse: options?.recurse }, signal: options?.signal }\n );\n }\n return this.fetch<Subgraphs>(\n `/assistants/${encodePathSegment(assistantId)}/subgraphs`,\n {\n params: { recurse: options?.recurse },\n signal: options?.signal,\n }\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>(\n `/assistants/${encodePathSegment(assistantId)}`,\n {\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 /**\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>(`/assistants/${encodePathSegment(assistantId)}`, {\n method: \"DELETE\",\n params: { delete_threads: options?.deleteThreads ?? false },\n signal: options?.signal,\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/${encodePathSegment(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>(\n `/assistants/${encodePathSegment(assistantId)}/latest`,\n {\n method: \"POST\",\n json: { version },\n signal: options?.signal,\n }\n );\n }\n}\n"],"mappings":";;AAgBA,IAAa,mBAAb,cAAsCA,aAAAA,WAAW;;;;;;;CAO/C,MAAM,IACJ,aACA,SACoB;AACpB,SAAO,KAAK,MACV,eAAeC,aAAAA,kBAAkB,YAAY,IAC7C,EACE,QAAQ,SAAS,QAClB,CACF;;;;;;;;CASH,MAAM,SACJ,aACA,SACyB;AACzB,SAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,CAAC,SAC9C;GACE,QAAQ,EAAE,MAAM,SAAS,MAAM;GAC/B,QAAQ,SAAS;GAClB,CACF;;;;;;;CAQH,MAAM,WACJ,aACA,SACsB;AACtB,SAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,CAAC,WAC9C,EACE,QAAQ,SAAS,QAClB,CACF;;;;;;;;;CAUH,MAAM,aACJ,aACA,SAKoB;AACpB,MAAI,SAAS,UACX,QAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,CAAC,aAAaA,aAAAA,kBAAkB,QAAQ,UAAU,IAC/F;GAAE,QAAQ,EAAE,SAAS,SAAS,SAAS;GAAE,QAAQ,SAAS;GAAQ,CACnE;AAEH,SAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,CAAC,aAC9C;GACE,QAAQ,EAAE,SAAS,SAAS,SAAS;GACrC,QAAQ,SAAS;GAClB,CACF;;;;;;;CAQH,MAAM,OAAO,SAUU;AACrB,SAAO,KAAK,MAAiB,eAAe;GAC1C,QAAQ;GACR,MAAM;IACJ,UAAU,QAAQ;IAClB,QAAQ,QAAQ;IAChB,SAAS,QAAQ;IACjB,UAAU,QAAQ;IAClB,cAAc,QAAQ;IACtB,WAAW,QAAQ;IACnB,MAAM,QAAQ;IACd,aAAa,QAAQ;IACtB;GACD,QAAQ,QAAQ;GACjB,CAAC;;;;;;;;CASJ,MAAM,OACJ,aACA,SASoB;AACpB,SAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,IAC7C;GACE,QAAQ;GACR,MAAM;IACJ,UAAU,QAAQ;IAClB,QAAQ,QAAQ;IAChB,SAAS,QAAQ;IACjB,UAAU,QAAQ;IAClB,MAAM,QAAQ;IACd,aAAa,QAAQ;IACtB;GACD,QAAQ,QAAQ;GACjB,CACF;;;;;;;;CASH,MAAM,OACJ,aACA,SACe;AACf,SAAO,KAAK,MAAY,eAAeA,aAAAA,kBAAkB,YAAY,IAAI;GACvE,QAAQ;GACR,QAAQ,EAAE,gBAAgB,SAAS,iBAAiB,OAAO;GAC3D,QAAQ,SAAS;GAClB,CAAC;;CAkCJ,MAAM,OAAO,OAWuC;EAClD,MAAM,OAAO;GACX,UAAU,OAAO,WAAW,KAAA;GAC5B,MAAM,OAAO,QAAQ,KAAA;GACrB,UAAU,OAAO,YAAY,KAAA;GAC7B,OAAO,OAAO,SAAS;GACvB,QAAQ,OAAO,UAAU;GACzB,SAAS,OAAO,UAAU,KAAA;GAC1B,YAAY,OAAO,aAAa,KAAA;GAChC,QAAQ,OAAO,UAAU,KAAA;GAC1B;EACD,MAAM,CAAC,YAAY,YAAY,MAAM,KAAK,MACxC,sBACA;GACE,QAAQ;GACR;GACA,cAAc;GACd,QAAQ,OAAO;GAChB,CACF;AAED,MAAI,OAAO,kBAET,QAAO;GAAE;GAAY,MADR,SAAS,QAAQ,IAAI,oBAAoB;GAC3B;AAG7B,SAAO;;;;;;;;;;CAWT,MAAM,MAAM,OAKQ;AAClB,SAAO,KAAK,MAAc,qBAAqB;GAC7C,QAAQ;GACR,MAAM;IACJ,UAAU,OAAO,YAAY,KAAA;IAC7B,UAAU,OAAO,WAAW,KAAA;IAC5B,MAAM,OAAO,QAAQ,KAAA;IACtB;GACD,QAAQ,OAAO;GAChB,CAAC;;;;;;;;CASJ,MAAM,YACJ,aACA,SAM6B;AAC7B,SAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,CAAC,YAC9C;GACE,QAAQ;GACR,MAAM;IACJ,UAAU,SAAS,YAAY,KAAA;IAC/B,OAAO,SAAS,SAAS;IACzB,QAAQ,SAAS,UAAU;IAC5B;GACD,QAAQ,SAAS;GAClB,CACF;;;;;;;;;CAUH,MAAM,UACJ,aACA,SACA,SACoB;AACpB,SAAO,KAAK,MACV,eAAeA,aAAAA,kBAAkB,YAAY,CAAC,UAC9C;GACE,QAAQ;GACR,MAAM,EAAE,SAAS;GACjB,QAAQ,SAAS;GAClB,CACF"}