{"version":3,"file":"index.cjs","names":["BaseClient"],"sources":["../../../src/client/crons/index.ts"],"sourcesContent":["import {\n  Cron,\n  CronSelectField,\n  CronCreateForThreadResponse,\n  CronCreateResponse,\n  CronSortBy,\n  Metadata,\n  SortOrder,\n} from \"../../schema.js\";\nimport type { CronsCreatePayload, CronsUpdatePayload } from \"../../types.js\";\nimport { BaseClient } from \"../base.js\";\n\nexport class CronsClient extends BaseClient {\n  /**\n   *\n   * @param threadId The ID of the thread.\n   * @param assistantId Assistant ID to use for this cron job.\n   * @param payload Payload for creating a cron job.\n   * @returns The created background run.\n   */\n  async createForThread(\n    threadId: string,\n    assistantId: string,\n    payload?: CronsCreatePayload\n  ): Promise<CronCreateForThreadResponse> {\n    const json: Record<string, unknown> = {\n      schedule: payload?.schedule,\n      input: payload?.input,\n      config: payload?.config,\n      context: payload?.context,\n      metadata: payload?.metadata,\n      assistant_id: assistantId,\n      interrupt_before: payload?.interruptBefore,\n      interrupt_after: payload?.interruptAfter,\n      webhook: payload?.webhook,\n      multitask_strategy: payload?.multitaskStrategy,\n      checkpoint_during: payload?.checkpointDuring,\n      durability: payload?.durability,\n      enabled: payload?.enabled,\n      timezone: payload?.timezone,\n      stream_mode: payload?.streamMode,\n      stream_subgraphs: payload?.streamSubgraphs,\n      stream_resumable: payload?.streamResumable,\n      end_time: payload?.endTime,\n      on_run_completed: payload?.onRunCompleted,\n    };\n    return this.fetch<CronCreateForThreadResponse>(\n      `/threads/${threadId}/runs/crons`,\n      {\n        method: \"POST\",\n        json,\n        signal: payload?.signal,\n      }\n    );\n  }\n\n  /**\n   *\n   * @param assistantId Assistant ID to use for this cron job.\n   * @param payload Payload for creating a cron job.\n   * @returns\n   */\n  async create(\n    assistantId: string,\n    payload?: CronsCreatePayload\n  ): Promise<CronCreateResponse> {\n    const json: Record<string, unknown> = {\n      schedule: payload?.schedule,\n      input: payload?.input,\n      config: payload?.config,\n      context: payload?.context,\n      metadata: payload?.metadata,\n      assistant_id: assistantId,\n      interrupt_before: payload?.interruptBefore,\n      interrupt_after: payload?.interruptAfter,\n      webhook: payload?.webhook,\n      on_run_completed: payload?.onRunCompleted,\n      multitask_strategy: payload?.multitaskStrategy,\n      checkpoint_during: payload?.checkpointDuring,\n      durability: payload?.durability,\n      enabled: payload?.enabled,\n      timezone: payload?.timezone,\n      stream_mode: payload?.streamMode,\n      stream_subgraphs: payload?.streamSubgraphs,\n      stream_resumable: payload?.streamResumable,\n      end_time: payload?.endTime,\n    };\n    return this.fetch<CronCreateResponse>(`/runs/crons`, {\n      method: \"POST\",\n      json,\n      signal: payload?.signal,\n    });\n  }\n\n  /**\n   * Update a cron job by ID.\n   *\n   * @param cronId The cron ID to update.\n   * @param payload Payload for updating a cron job.\n   * @returns The updated cron job.\n   * ```\n   */\n  async update(cronId: string, payload?: CronsUpdatePayload): Promise<Cron> {\n    const json: Record<string, unknown> = {};\n\n    if (payload?.schedule !== undefined) {\n      json.schedule = payload.schedule;\n    }\n    if (payload?.timezone !== undefined) {\n      json.timezone = payload.timezone;\n    }\n    if (payload?.endTime !== undefined) {\n      json.end_time = payload.endTime;\n    }\n    if (payload?.input !== undefined) {\n      json.input = payload.input;\n    }\n    if (payload?.metadata !== undefined) {\n      json.metadata = payload.metadata;\n    }\n    if (payload?.config !== undefined) {\n      json.config = payload.config;\n    }\n    if (payload?.context !== undefined) {\n      json.context = payload.context;\n    }\n    if (payload?.webhook !== undefined) {\n      json.webhook = payload.webhook;\n    }\n    if (payload?.interruptBefore !== undefined) {\n      json.interrupt_before = payload.interruptBefore;\n    }\n    if (payload?.interruptAfter !== undefined) {\n      json.interrupt_after = payload.interruptAfter;\n    }\n    if (payload?.onRunCompleted !== undefined) {\n      json.on_run_completed = payload.onRunCompleted;\n    }\n    if (payload?.enabled !== undefined) {\n      json.enabled = payload.enabled;\n    }\n    if (payload?.streamMode !== undefined) {\n      json.stream_mode = payload.streamMode;\n    }\n    if (payload?.streamSubgraphs !== undefined) {\n      json.stream_subgraphs = payload.streamSubgraphs;\n    }\n    if (payload?.streamResumable !== undefined) {\n      json.stream_resumable = payload.streamResumable;\n    }\n    if (payload?.durability !== undefined) {\n      json.durability = payload.durability;\n    }\n\n    return this.fetch<Cron>(`/runs/crons/${cronId}`, {\n      method: \"PATCH\",\n      json,\n      signal: payload?.signal,\n    });\n  }\n\n  /**\n   * Delete a cron job by ID.\n   *\n   * @param cronId Cron ID of Cron job to delete.\n   * @param options Optional parameters for the request.\n   */\n  async delete(\n    cronId: string,\n    options?: { signal?: AbortSignal }\n  ): Promise<void> {\n    await this.fetch<void>(`/runs/crons/${cronId}`, {\n      method: \"DELETE\",\n      signal: options?.signal,\n    });\n  }\n\n  /**\n   *\n   * @param query Query options.\n   * @param query.metadata Metadata to filter by. Exact match filter for each KV pair.\n   *   Available in Agent Server version 0.9.0 and later.\n   * @returns List of crons.\n   */\n  async search(query?: {\n    assistantId?: string;\n    threadId?: string;\n    enabled?: boolean;\n    limit?: number;\n    offset?: number;\n    sortBy?: CronSortBy;\n    sortOrder?: SortOrder;\n    select?: CronSelectField[];\n    metadata?: Metadata;\n    signal?: AbortSignal;\n  }): Promise<Cron[]> {\n    return this.fetch<Cron[]>(\"/runs/crons/search\", {\n      method: \"POST\",\n      json: {\n        assistant_id: query?.assistantId ?? undefined,\n        thread_id: query?.threadId ?? undefined,\n        enabled: query?.enabled ?? 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        metadata: query?.metadata ?? undefined,\n      },\n      signal: query?.signal,\n    });\n  }\n\n  /**\n   * Count cron jobs matching filters.\n   *\n   * @param query.assistantId Assistant ID to filter by.\n   * @param query.threadId Thread ID to filter by.\n   * @param query.metadata Metadata to filter by. Exact match filter for each KV pair.\n   *   Available in Agent Server version 0.9.0 and later.\n   * @returns Number of cron jobs matching the criteria.\n   */\n  async count(query?: {\n    assistantId?: string;\n    threadId?: string;\n    metadata?: Metadata;\n    signal?: AbortSignal;\n  }): Promise<number> {\n    return this.fetch<number>(`/runs/crons/count`, {\n      method: \"POST\",\n      json: {\n        assistant_id: query?.assistantId ?? undefined,\n        thread_id: query?.threadId ?? undefined,\n        metadata: query?.metadata ?? undefined,\n      },\n      signal: query?.signal,\n    });\n  }\n}\n"],"mappings":"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"}