@acedatacloud/sdk 2026.426.3 → 2026.503.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -268,7 +268,7 @@ declare class Search {
268
268
 
269
269
  /** Cross-service task retrieval. */
270
270
 
271
- declare class Tasks {
271
+ declare class Tasks$1 {
272
272
  private transport;
273
273
  constructor(transport: Transport);
274
274
  get(taskId: string, opts?: {
@@ -398,8 +398,10 @@ declare class Images {
398
398
  n?: number;
399
399
  background?: string;
400
400
  inputFidelity?: string;
401
+ mask?: string;
401
402
  outputFormat?: string;
402
403
  outputCompression?: number;
404
+ partialImages?: number;
403
405
  quality?: string;
404
406
  size?: string;
405
407
  responseFormat?: string;
@@ -418,11 +420,33 @@ declare class Embeddings {
418
420
  [key: string]: unknown;
419
421
  }): Promise<Record<string, unknown>>;
420
422
  }
423
+ declare class Tasks {
424
+ private transport;
425
+ constructor(transport: Transport);
426
+ retrieve(opts: {
427
+ id?: string;
428
+ traceId?: string;
429
+ [key: string]: unknown;
430
+ }): Promise<Record<string, unknown>>;
431
+ retrieveBatch(opts?: {
432
+ ids?: string[];
433
+ traceIds?: string[];
434
+ applicationId?: string;
435
+ userId?: string;
436
+ type?: string;
437
+ offset?: number;
438
+ limit?: number;
439
+ createdAtMin?: number;
440
+ createdAtMax?: number;
441
+ [key: string]: unknown;
442
+ }): Promise<Record<string, unknown>>;
443
+ }
421
444
  declare class OpenAI {
422
445
  readonly chat: ChatNamespace;
423
446
  readonly responses: Responses;
424
447
  readonly images: Images;
425
448
  readonly embeddings: Embeddings;
449
+ readonly tasks: Tasks;
426
450
  constructor(transport: Transport);
427
451
  }
428
452
 
@@ -449,7 +473,7 @@ declare class AceDataCloud {
449
473
  readonly audio: Audio;
450
474
  readonly video: Video;
451
475
  readonly search: Search;
452
- readonly tasks: Tasks;
476
+ readonly tasks: Tasks$1;
453
477
  readonly files: Files;
454
478
  readonly platform: Platform;
455
479
  readonly openai: OpenAI;
package/dist/index.d.ts CHANGED
@@ -268,7 +268,7 @@ declare class Search {
268
268
 
269
269
  /** Cross-service task retrieval. */
270
270
 
271
- declare class Tasks {
271
+ declare class Tasks$1 {
272
272
  private transport;
273
273
  constructor(transport: Transport);
274
274
  get(taskId: string, opts?: {
@@ -398,8 +398,10 @@ declare class Images {
398
398
  n?: number;
399
399
  background?: string;
400
400
  inputFidelity?: string;
401
+ mask?: string;
401
402
  outputFormat?: string;
402
403
  outputCompression?: number;
404
+ partialImages?: number;
403
405
  quality?: string;
404
406
  size?: string;
405
407
  responseFormat?: string;
@@ -418,11 +420,33 @@ declare class Embeddings {
418
420
  [key: string]: unknown;
419
421
  }): Promise<Record<string, unknown>>;
420
422
  }
423
+ declare class Tasks {
424
+ private transport;
425
+ constructor(transport: Transport);
426
+ retrieve(opts: {
427
+ id?: string;
428
+ traceId?: string;
429
+ [key: string]: unknown;
430
+ }): Promise<Record<string, unknown>>;
431
+ retrieveBatch(opts?: {
432
+ ids?: string[];
433
+ traceIds?: string[];
434
+ applicationId?: string;
435
+ userId?: string;
436
+ type?: string;
437
+ offset?: number;
438
+ limit?: number;
439
+ createdAtMin?: number;
440
+ createdAtMax?: number;
441
+ [key: string]: unknown;
442
+ }): Promise<Record<string, unknown>>;
443
+ }
421
444
  declare class OpenAI {
422
445
  readonly chat: ChatNamespace;
423
446
  readonly responses: Responses;
424
447
  readonly images: Images;
425
448
  readonly embeddings: Embeddings;
449
+ readonly tasks: Tasks;
426
450
  constructor(transport: Transport);
427
451
  }
428
452
 
@@ -449,7 +473,7 @@ declare class AceDataCloud {
449
473
  readonly audio: Audio;
450
474
  readonly video: Video;
451
475
  readonly search: Search;
452
- readonly tasks: Tasks;
476
+ readonly tasks: Tasks$1;
453
477
  readonly files: Files;
454
478
  readonly platform: Platform;
455
479
  readonly openai: OpenAI;
package/dist/index.js CHANGED
@@ -723,11 +723,13 @@ var Images2 = class {
723
723
  return this.transport.request("POST", "/openai/images/generations", { json: body });
724
724
  }
725
725
  async edit(opts) {
726
- const { image, prompt, inputFidelity, outputFormat, outputCompression, responseFormat, callbackUrl, ...rest } = opts;
726
+ const { image, prompt, inputFidelity, mask, outputFormat, outputCompression, partialImages, responseFormat, callbackUrl, ...rest } = opts;
727
727
  const body = { image, prompt, ...rest };
728
728
  if (inputFidelity !== void 0) body.input_fidelity = inputFidelity;
729
+ if (mask !== void 0) body.mask = mask;
729
730
  if (outputFormat !== void 0) body.output_format = outputFormat;
730
731
  if (outputCompression !== void 0) body.output_compression = outputCompression;
732
+ if (partialImages !== void 0) body.partial_images = partialImages;
731
733
  if (responseFormat !== void 0) body.response_format = responseFormat;
732
734
  if (callbackUrl !== void 0) body.callback_url = callbackUrl;
733
735
  return this.transport.request("POST", "/openai/images/edits", { json: body });
@@ -746,16 +748,45 @@ var Embeddings = class {
746
748
  return this.transport.request("POST", "/openai/embeddings", { json: body });
747
749
  }
748
750
  };
751
+ var Tasks2 = class {
752
+ constructor(transport) {
753
+ this.transport = transport;
754
+ }
755
+ transport;
756
+ async retrieve(opts) {
757
+ const { id, traceId, ...rest } = opts;
758
+ const body = { action: "retrieve", ...rest };
759
+ if (id !== void 0) body.id = id;
760
+ if (traceId !== void 0) body.trace_id = traceId;
761
+ return this.transport.request("POST", "/openai/tasks", { json: body });
762
+ }
763
+ async retrieveBatch(opts = {}) {
764
+ const { ids, traceIds, applicationId, userId, type, offset, limit, createdAtMin, createdAtMax, ...rest } = opts;
765
+ const body = { action: "retrieve_batch", ...rest };
766
+ if (ids !== void 0) body.ids = ids;
767
+ if (traceIds !== void 0) body.trace_ids = traceIds;
768
+ if (applicationId !== void 0) body.application_id = applicationId;
769
+ if (userId !== void 0) body.user_id = userId;
770
+ if (type !== void 0) body.type = type;
771
+ if (offset !== void 0) body.offset = offset;
772
+ if (limit !== void 0) body.limit = limit;
773
+ if (createdAtMin !== void 0) body.created_at_min = createdAtMin;
774
+ if (createdAtMax !== void 0) body.created_at_max = createdAtMax;
775
+ return this.transport.request("POST", "/openai/tasks", { json: body });
776
+ }
777
+ };
749
778
  var OpenAI = class {
750
779
  chat;
751
780
  responses;
752
781
  images;
753
782
  embeddings;
783
+ tasks;
754
784
  constructor(transport) {
755
785
  this.chat = new ChatNamespace(transport);
756
786
  this.responses = new Responses(transport);
757
787
  this.images = new Images2(transport);
758
788
  this.embeddings = new Embeddings(transport);
789
+ this.tasks = new Tasks2(transport);
759
790
  }
760
791
  };
761
792
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/runtime/errors.ts","../src/runtime/transport.ts","../src/resources/aichat.ts","../src/resources/chat.ts","../src/runtime/tasks.ts","../src/resources/images.ts","../src/resources/audio.ts","../src/resources/video.ts","../src/resources/search.ts","../src/resources/tasks.ts","../src/resources/files.ts","../src/resources/platform.ts","../src/resources/openai.ts","../src/client.ts"],"sourcesContent":["/** @acedatacloud/sdk — Official TypeScript SDK for AceDataCloud. */\n\nexport { AceDataCloud, AceDataCloudOptions } from './client';\n\nexport {\n AceDataCloudError,\n APIError,\n AuthenticationError,\n InsufficientBalanceError,\n ModerationError,\n RateLimitError,\n ResourceDisabledError,\n TimeoutError,\n TokenMismatchError,\n TransportError,\n ValidationError,\n} from './runtime/errors';\n\nexport { TaskHandle, TaskHandleOptions } from './runtime/tasks';\n\nexport type {\n PaymentHandler,\n PaymentHandlerContext,\n PaymentHandlerResult,\n PaymentRequirement,\n PaymentRequiredBody,\n} from './runtime/payment';\n\nexport type { AiChatModel } from './resources/aichat';\nexport type { ImageProvider } from './resources/images';\nexport type { VideoProvider } from './resources/video';\nexport type { AudioProvider } from './resources/audio';\n","/** AceDataCloud SDK errors. */\n\nexport class AceDataCloudError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AceDataCloudError';\n }\n}\n\nexport class TransportError extends AceDataCloudError {\n constructor(message: string) {\n super(message);\n this.name = 'TransportError';\n }\n}\n\nexport class APIError extends AceDataCloudError {\n statusCode: number;\n code: string;\n traceId?: string;\n body: Record<string, unknown>;\n\n constructor(opts: {\n message: string;\n statusCode: number;\n code: string;\n traceId?: string;\n body?: Record<string, unknown>;\n }) {\n super(opts.message);\n this.name = 'APIError';\n this.statusCode = opts.statusCode;\n this.code = opts.code;\n this.traceId = opts.traceId;\n this.body = opts.body ?? {};\n }\n}\n\nexport class AuthenticationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'AuthenticationError';\n }\n}\n\nexport class TokenMismatchError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TokenMismatchError';\n }\n}\n\nexport class RateLimitError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'RateLimitError';\n }\n}\n\nexport class ValidationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ValidationError';\n }\n}\n\nexport class InsufficientBalanceError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'InsufficientBalanceError';\n }\n}\n\nexport class ResourceDisabledError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ResourceDisabledError';\n }\n}\n\nexport class ModerationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ModerationError';\n }\n}\n\nexport class TimeoutError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TimeoutError';\n }\n}\n","/** HTTP transport for AceDataCloud SDK. Uses native fetch (Node 18+). */\n\nimport {\n APIError,\n AuthenticationError,\n InsufficientBalanceError,\n ModerationError,\n RateLimitError,\n ResourceDisabledError,\n TimeoutError,\n TokenMismatchError,\n TransportError,\n ValidationError,\n} from './errors';\nimport type {\n PaymentHandler,\n PaymentRequiredBody,\n} from './payment';\n\nconst ERROR_CODE_MAP: Record<string, typeof APIError> = {\n invalid_token: AuthenticationError,\n token_expired: AuthenticationError,\n no_token: AuthenticationError,\n token_mismatched: TokenMismatchError,\n used_up: InsufficientBalanceError,\n disabled: ResourceDisabledError,\n too_many_requests: RateLimitError,\n bad_request: ValidationError,\n};\n\nconst RETRY_STATUS_CODES = new Set([408, 409, 429, 500, 502, 503, 504]);\n\nexport function mapError(statusCode: number, body: Record<string, unknown>): APIError {\n // The server occasionally returns ``error`` as a bare string (e.g. x402\n // facilitator diagnostics) or omits/nulls it entirely. Normalize to an\n // object so downstream property access is always safe and the message\n // is preserved verbatim.\n let errorData: Record<string, unknown>;\n if (typeof body.error === 'string') {\n errorData = { message: body.error };\n } else if (body.error && typeof body.error === 'object' && !Array.isArray(body.error)) {\n errorData = body.error as Record<string, unknown>;\n } else {\n errorData = {};\n }\n const code = (errorData.code ?? '') as string;\n const message = (errorData.message ?? '') as string;\n const traceId = body.trace_id as string | undefined;\n\n let ErrorClass = ERROR_CODE_MAP[code];\n if (!ErrorClass) {\n if (statusCode === 403) ErrorClass = ModerationError;\n else if (statusCode === 401) ErrorClass = AuthenticationError;\n else if (statusCode === 429) ErrorClass = RateLimitError;\n else if (statusCode === 400) ErrorClass = ValidationError;\n else ErrorClass = APIError;\n }\n\n return new ErrorClass({ message, statusCode, code, traceId, body });\n}\n\nfunction backoffDelay(attempt: number): number {\n const base = Math.min(2 ** attempt, 8);\n return base + Math.random() * 0.5;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport interface TransportOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional handler invoked when a request returns `402 Payment Required`.\n * The handler receives the parsed `accepts` list and must return the extra\n * headers (typically `X-Payment`) to attach to the automatic retry.\n *\n * See `@acedatacloud/x402-client` for a drop-in implementation.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class Transport {\n private baseURL: string;\n private platformBaseURL: string;\n private timeout: number;\n private maxRetries: number;\n private headers: Record<string, string>;\n private paymentHandler?: PaymentHandler;\n\n constructor(opts: TransportOptions = {}) {\n const token = opts.apiToken ?? process.env.ACEDATACLOUD_API_TOKEN ?? '';\n if (!token && !opts.paymentHandler) {\n throw new AuthenticationError({\n message:\n 'apiToken is required (or provide a paymentHandler, e.g. from @acedatacloud/x402-client). ' +\n 'Pass it to the client or set ACEDATACLOUD_API_TOKEN.',\n statusCode: 0,\n code: 'no_token',\n });\n }\n this.baseURL = (opts.baseURL ?? 'https://api.acedata.cloud').replace(/\\/+$/, '');\n this.platformBaseURL = (opts.platformBaseURL ?? 'https://platform.acedata.cloud').replace(/\\/+$/, '');\n this.timeout = opts.timeout ?? 300_000;\n this.maxRetries = opts.maxRetries ?? 2;\n this.paymentHandler = opts.paymentHandler;\n const baseHeaders: Record<string, string> = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': 'acedatacloud-node/0.1.0',\n ...(opts.headers ?? {}),\n };\n if (token) {\n baseHeaders.authorization = `Bearer ${token}`;\n }\n this.headers = baseHeaders;\n }\n\n async request(\n method: string,\n path: string,\n opts: {\n json?: Record<string, unknown>;\n params?: Record<string, string>;\n platform?: boolean;\n timeout?: number;\n headers?: Record<string, string>;\n } = {}\n ): Promise<Record<string, unknown>> {\n const base = opts.platform ? this.platformBaseURL : this.baseURL;\n let url = `${base}${path}`;\n if (opts.params) {\n const qs = new URLSearchParams(opts.params).toString();\n url += `?${qs}`;\n }\n const headers = { ...this.headers, ...(opts.headers ?? {}) };\n const timeoutMs = opts.timeout ?? this.timeout;\n\n let lastError: Error | null = null;\n let paymentAttempted = false;\n let extraHeaders: Record<string, string> = {};\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n const resp = await fetch(url, {\n method,\n headers: { ...headers, ...extraHeaders },\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status === 402 && this.paymentHandler && !paymentAttempted) {\n const text = await resp.text();\n let body: PaymentRequiredBody;\n try {\n body = JSON.parse(text) as PaymentRequiredBody;\n } catch {\n throw mapError(402, { error: { code: 'invalid_402', message: text } });\n }\n if (!body.accepts?.length) {\n throw mapError(402, { error: { code: 'invalid_402', message: 'No payment requirements' } });\n }\n const result = await this.paymentHandler({\n url,\n method,\n body: opts.json,\n accepts: body.accepts,\n });\n extraHeaders = { ...extraHeaders, ...result.headers };\n paymentAttempted = true;\n continue;\n }\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n if (RETRY_STATUS_CODES.has(resp.status) && attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n throw mapError(resp.status, body);\n }\n\n return (await resp.json()) as Record<string, unknown>;\n } catch (err) {\n clearTimeout(timer);\n if (err instanceof APIError) throw err;\n lastError = err as Error;\n if (attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n }\n }\n throw lastError ?? new TransportError('Request failed after retries');\n }\n\n async *requestStream(\n method: string,\n path: string,\n opts: { json?: Record<string, unknown>; timeout?: number } = {}\n ): AsyncGenerator<string, void, unknown> {\n const url = `${this.baseURL}${path}`;\n const headers = { ...this.headers, accept: 'text/event-stream' };\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n\n try {\n const resp = await fetch(url, {\n method,\n headers,\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, body);\n }\n\n if (!resp.body) throw new TransportError('No response body for stream');\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const data = line.slice(6);\n if (data === '[DONE]') return;\n yield data;\n }\n }\n }\n } finally {\n clearTimeout(timer);\n }\n }\n\n async upload(\n path: string,\n fileData: Buffer | Uint8Array,\n filename: string,\n opts: { timeout?: number } = {}\n ): Promise<Record<string, unknown>> {\n const url = `${this.platformBaseURL}${path}`;\n const boundary = `----AceDataCloudBoundary${Date.now()}`;\n const headers = {\n ...this.headers,\n 'content-type': `multipart/form-data; boundary=${boundary}`,\n };\n delete (headers as Record<string, string>)['content-type'];\n\n const body = new FormData();\n body.append('file', new Blob([fileData]), filename);\n\n const authHeaders: Record<string, string> = {\n authorization: this.headers.authorization,\n 'user-agent': this.headers['user-agent'],\n };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n try {\n const resp = await fetch(url, {\n method: 'POST',\n headers: authHeaders,\n body,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let respBody: Record<string, unknown>;\n try {\n respBody = JSON.parse(text) as Record<string, unknown>;\n } catch {\n respBody = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, respBody);\n }\n return (await resp.json()) as Record<string, unknown>;\n } finally {\n clearTimeout(timer);\n }\n }\n}\n","/** AI Chat resources — aichat/conversations endpoint. */\n\nimport { Transport } from '../runtime/transport';\n\nexport type AiChatModel =\n | 'gpt-5.5'\n | 'gpt-5.5-pro'\n | 'gpt-5.4'\n | 'gpt-5.4-pro'\n | 'gpt-5.2'\n | 'gpt-5.1'\n | 'gpt-5.1-all'\n | 'gpt-5'\n | 'gpt-5-mini'\n | 'gpt-5-nano'\n | 'gpt-5-all'\n | 'gpt-4'\n | 'gpt-4-all'\n | 'gpt-4-turbo'\n | 'gpt-4-turbo-preview'\n | 'gpt-4-vision-preview'\n | 'gpt-4.1'\n | 'gpt-4.1-2025-04-14'\n | 'gpt-4.1-mini'\n | 'gpt-4.1-mini-2025-04-14'\n | 'gpt-4.1-nano'\n | 'gpt-4.1-nano-2025-04-14'\n | 'gpt-4.5-preview'\n | 'gpt-4.5-preview-2025-02-27'\n | 'gpt-4o'\n | 'gpt-4o-2024-05-13'\n | 'gpt-4o-2024-08-06'\n | 'gpt-4o-2024-11-20'\n | 'gpt-4o-all'\n | 'gpt-4o-image'\n | 'gpt-4o-mini'\n | 'gpt-4o-mini-2024-07-18'\n | 'gpt-4o-mini-search-preview'\n | 'gpt-4o-mini-search-preview-2025-03-11'\n | 'gpt-4o-search-preview'\n | 'gpt-4o-search-preview-2025-03-11'\n | 'o1'\n | 'o1-2024-12-17'\n | 'o1-all'\n | 'o1-mini'\n | 'o1-mini-2024-09-12'\n | 'o1-mini-all'\n | 'o1-preview'\n | 'o1-preview-2024-09-12'\n | 'o1-preview-all'\n | 'o1-pro'\n | 'o1-pro-2025-03-19'\n | 'o1-pro-all'\n | 'o3'\n | 'o3-2025-04-16'\n | 'o3-all'\n | 'o3-mini'\n | 'o3-mini-2025-01-31'\n | 'o3-mini-2025-01-31-high'\n | 'o3-mini-2025-01-31-low'\n | 'o3-mini-2025-01-31-medium'\n | 'o3-mini-all'\n | 'o3-mini-high'\n | 'o3-mini-high-all'\n | 'o3-mini-low'\n | 'o3-mini-medium'\n | 'o3-pro'\n | 'o3-pro-2025-06-10'\n | 'o4-mini'\n | 'o4-mini-2025-04-16'\n | 'o4-mini-all'\n | 'o4-mini-high-all'\n | 'deepseek-r1'\n | 'deepseek-r1-0528'\n | 'deepseek-v3'\n | 'deepseek-v3-250324'\n | 'grok-3'\n | 'glm-5.1'\n | 'glm-4.7'\n | 'glm-4.6'\n | 'glm-4.5-air'\n | 'glm-3-turbo'\n | (string & {});\n\nexport class AiChat {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: AiChatModel;\n question: string;\n id?: string;\n preset?: string;\n stateful?: boolean;\n references?: string[];\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, question, id, preset, stateful, references, ...rest } = opts;\n const body: Record<string, unknown> = { model, question, ...rest };\n if (id !== undefined) body.id = id;\n if (preset !== undefined) body.preset = preset;\n if (stateful !== undefined) body.stateful = stateful;\n if (references !== undefined) body.references = references;\n return this.transport.request('POST', '/aichat/conversations', { json: body });\n }\n}\n","/** Chat resources — native provider APIs (Claude Messages). */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Messages {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, maxTokens = 4096, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, max_tokens: maxTokens, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.stream(body);\n }\n return this.transport.request('POST', '/v1/messages', { json: body });\n }\n\n private async *stream(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/v1/messages', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n\n async countTokens(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, messages, ...rest } = opts;\n return this.transport.request('POST', '/v1/messages/count_tokens', {\n json: { model, messages, ...rest },\n });\n }\n}\n\nexport class Chat {\n readonly messages: Messages;\n\n constructor(transport: Transport) {\n this.messages = new Messages(transport);\n }\n}\n","/** Task polling abstraction. */\n\nimport { Transport } from './transport';\n\nexport interface TaskHandleOptions {\n pollInterval?: number;\n maxWait?: number;\n}\n\nexport class TaskHandle {\n readonly id: string;\n private pollEndpoint: string;\n private transport: Transport;\n private _result: Record<string, unknown> | null = null;\n\n constructor(taskId: string, pollEndpoint: string, transport: Transport) {\n this.id = taskId;\n this.pollEndpoint = pollEndpoint;\n this.transport = transport;\n }\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('POST', this.pollEndpoint, {\n json: { id: this.id, action: 'retrieve' },\n });\n }\n\n async isCompleted(): Promise<boolean> {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n return status === 'succeeded' || status === 'failed';\n }\n\n async wait(opts: TaskHandleOptions = {}): Promise<Record<string, unknown>> {\n const pollInterval = opts.pollInterval ?? 3000;\n const maxWait = opts.maxWait ?? 600_000;\n const start = Date.now();\n\n while (Date.now() - start < maxWait) {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n\n if (status === 'succeeded' || status === 'failed') {\n this._result = state;\n return state;\n }\n await new Promise((resolve) => setTimeout(resolve, pollInterval));\n }\n throw new Error(`Task ${this.id} did not complete within ${maxWait}ms`);\n }\n\n get result(): Record<string, unknown> | null {\n return this._result;\n }\n}\n","/** Image generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type ImageProvider = 'nano-banana' | 'midjourney' | 'flux' | 'seedream' | (string & {});\n\nexport class Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: ImageProvider;\n model?: string;\n negativePrompt?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'nano-banana', model, negativePrompt, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (negativePrompt !== undefined) body.negative_prompt = negativePrompt;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const endpoint = provider === 'midjourney' ? '/midjourney/imagine' : `/${provider}/images`;\n const result = await this.transport.request('POST', endpoint, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Audio/music generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type AudioProvider = 'suno' | 'producer' | 'fish' | (string & {});\n\nexport class Audio {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: AudioProvider;\n model?: string;\n tags?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'suno', model, tags, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (tags !== undefined) body.tags = tags;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/audios`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Video generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type VideoProvider = 'sora' | 'luma' | 'veo' | 'kling' | 'hailuo' | 'seedance' | 'wan' | 'pika' | 'pixverse' | (string & {});\n\nexport class Video {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: VideoProvider;\n model?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'sora', model, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/videos`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Search resources. */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Search {\n constructor(private transport: Transport) {}\n\n async google(opts: {\n query: string;\n type?: string;\n country?: string;\n language?: string;\n page?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { query, type = 'search', country, language, page, ...rest } = opts;\n const body: Record<string, unknown> = { query, type, ...rest };\n if (country !== undefined) body.country = country;\n if (language !== undefined) body.language = language;\n if (page !== undefined) body.page = page;\n return this.transport.request('POST', '/serp/google', { json: body });\n }\n}\n","/** Cross-service task retrieval. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nconst SERVICE_TASK_ENDPOINTS: Record<string, string> = {\n suno: '/suno/tasks',\n producer: '/producer/tasks',\n fish: '/fish/tasks',\n 'nano-banana': '/nano-banana/tasks',\n seedream: '/seedream/tasks',\n seedance: '/seedance/tasks',\n sora: '/sora/tasks',\n midjourney: '/midjourney/tasks',\n luma: '/luma/tasks',\n veo: '/veo/tasks',\n flux: '/flux/tasks',\n kling: '/kling/tasks',\n hailuo: '/hailuo/tasks',\n wan: '/wan/tasks',\n pika: '/pika/tasks',\n pixverse: '/pixverse/tasks',\n};\n\nexport class Tasks {\n constructor(private transport: Transport) {}\n\n async get(taskId: string, opts: { service?: string } = {}): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n return this.transport.request('POST', endpoint, {\n json: { id: taskId, action: 'retrieve' },\n });\n }\n\n async wait(\n taskId: string,\n opts: { service?: string; pollInterval?: number; maxWait?: number } = {}\n ): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n const handle = new TaskHandle(taskId, endpoint, this.transport);\n return handle.wait({ pollInterval: opts.pollInterval, maxWait: opts.maxWait });\n }\n}\n","/** File upload resources. */\n\nimport { Transport } from '../runtime/transport';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nexport class Files {\n constructor(private transport: Transport) {}\n\n async upload(\n file: string | Buffer | Uint8Array,\n opts: { filename?: string } = {}\n ): Promise<Record<string, unknown>> {\n let data: Buffer | Uint8Array;\n let filename: string;\n\n if (typeof file === 'string') {\n data = fs.readFileSync(file);\n filename = opts.filename ?? path.basename(file);\n } else {\n data = file;\n filename = opts.filename ?? 'upload';\n }\n\n return this.transport.upload('/api/v1/files/', data, filename);\n }\n}\n","/** Management-plane resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Applications {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/applications/', { params, platform: true });\n }\n\n async create(opts: { serviceId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { serviceId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/applications/', {\n json: { service_id: serviceId, ...rest },\n platform: true,\n });\n }\n\n async get(applicationId: string): Promise<Record<string, unknown>> {\n return this.transport.request('GET', `/api/v1/applications/${applicationId}/`, { platform: true });\n }\n}\n\nclass Credentials {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/credentials/', { params, platform: true });\n }\n\n async create(opts: { applicationId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { applicationId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/credentials/', {\n json: { application_id: applicationId, ...rest },\n platform: true,\n });\n }\n\n async rotate(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('POST', `/api/v1/credentials/${credentialId}/rotate/`, { platform: true });\n }\n\n async delete(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('DELETE', `/api/v1/credentials/${credentialId}/`, { platform: true });\n }\n}\n\nclass Models {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/models/', { params, platform: true });\n }\n}\n\nclass Config {\n constructor(private transport: Transport) {}\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/config/', { platform: true });\n }\n}\n\nexport class Platform {\n readonly applications: Applications;\n readonly credentials: Credentials;\n readonly models: Models;\n readonly config: Config;\n\n constructor(transport: Transport) {\n this.applications = new Applications(transport);\n this.credentials = new Credentials(transport);\n this.models = new Models(transport);\n this.config = new Config(transport);\n }\n}\n","/** OpenAI-compatible facade resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Completions {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/chat/completions', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/chat/completions', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass ChatNamespace {\n readonly completions: Completions;\n constructor(transport: Transport) {\n this.completions = new Completions(transport);\n }\n}\n\nclass Responses {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, input, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/responses', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/responses', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n model: string;\n background?: string;\n moderation?: string;\n n?: number;\n outputCompression?: number;\n outputFormat?: string;\n partialImages?: number;\n size?: string;\n quality?: string;\n responseFormat?: string;\n style?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { prompt, model, outputCompression, outputFormat, partialImages, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, model, ...rest };\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (partialImages !== undefined) body.partial_images = partialImages;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/generations', { json: body });\n }\n\n async edit(opts: {\n image: string | string[];\n prompt: string;\n model?: string;\n n?: number;\n background?: string;\n inputFidelity?: string;\n outputFormat?: string;\n outputCompression?: number;\n quality?: string;\n size?: string;\n responseFormat?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { image, prompt, inputFidelity, outputFormat, outputCompression, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { image, prompt, ...rest };\n if (inputFidelity !== undefined) body.input_fidelity = inputFidelity;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/edits', { json: body });\n }\n}\n\nclass Embeddings {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | string[];\n encodingFormat?: string;\n dimensions?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, input, encodingFormat, dimensions, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n if (encodingFormat !== undefined) body.encoding_format = encodingFormat;\n if (dimensions !== undefined) body.dimensions = dimensions;\n return this.transport.request('POST', '/openai/embeddings', { json: body });\n }\n}\n\nexport class OpenAI {\n readonly chat: ChatNamespace;\n readonly responses: Responses;\n readonly images: Images;\n readonly embeddings: Embeddings;\n\n constructor(transport: Transport) {\n this.chat = new ChatNamespace(transport);\n this.responses = new Responses(transport);\n this.images = new Images(transport);\n this.embeddings = new Embeddings(transport);\n }\n}\n","/** Top-level AceDataCloud client for TypeScript. */\n\nimport { Transport, TransportOptions } from './runtime/transport';\nimport type { PaymentHandler } from './runtime/payment';\nimport { AiChat } from './resources/aichat';\nimport { Chat } from './resources/chat';\nimport { Images } from './resources/images';\nimport { Audio } from './resources/audio';\nimport { Video } from './resources/video';\nimport { Search } from './resources/search';\nimport { Tasks } from './resources/tasks';\nimport { Files } from './resources/files';\nimport { Platform } from './resources/platform';\nimport { OpenAI } from './resources/openai';\n\nexport interface AceDataCloudOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional payment handler invoked when the API returns `402 Payment\n * Required`. Use `createX402PaymentHandler` from\n * `@acedatacloud/x402-client` to enable on-chain payments via X402.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class AceDataCloud {\n readonly aichat: AiChat;\n readonly chat: Chat;\n readonly images: Images;\n readonly audio: Audio;\n readonly video: Video;\n readonly search: Search;\n readonly tasks: Tasks;\n readonly files: Files;\n readonly platform: Platform;\n readonly openai: OpenAI;\n\n private transport: Transport;\n\n constructor(opts: AceDataCloudOptions = {}) {\n this.transport = new Transport({\n apiToken: opts.apiToken,\n baseURL: opts.baseURL,\n platformBaseURL: opts.platformBaseURL,\n timeout: opts.timeout,\n maxRetries: opts.maxRetries,\n headers: opts.headers,\n paymentHandler: opts.paymentHandler,\n });\n\n this.aichat = new AiChat(this.transport);\n this.chat = new Chat(this.transport);\n this.images = new Images(this.transport);\n this.audio = new Audio(this.transport);\n this.video = new Video(this.transport);\n this.search = new Search(this.transport);\n this.tasks = new Tasks(this.transport);\n this.files = new Files(this.transport);\n this.platform = new Platform(this.transport);\n this.openai = new OpenAI(this.transport);\n }\n}\n"],"mappings":"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","names":["path","Images"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/runtime/errors.ts","../src/runtime/transport.ts","../src/resources/aichat.ts","../src/resources/chat.ts","../src/runtime/tasks.ts","../src/resources/images.ts","../src/resources/audio.ts","../src/resources/video.ts","../src/resources/search.ts","../src/resources/tasks.ts","../src/resources/files.ts","../src/resources/platform.ts","../src/resources/openai.ts","../src/client.ts"],"sourcesContent":["/** @acedatacloud/sdk — Official TypeScript SDK for AceDataCloud. */\n\nexport { AceDataCloud, AceDataCloudOptions } from './client';\n\nexport {\n AceDataCloudError,\n APIError,\n AuthenticationError,\n InsufficientBalanceError,\n ModerationError,\n RateLimitError,\n ResourceDisabledError,\n TimeoutError,\n TokenMismatchError,\n TransportError,\n ValidationError,\n} from './runtime/errors';\n\nexport { TaskHandle, TaskHandleOptions } from './runtime/tasks';\n\nexport type {\n PaymentHandler,\n PaymentHandlerContext,\n PaymentHandlerResult,\n PaymentRequirement,\n PaymentRequiredBody,\n} from './runtime/payment';\n\nexport type { AiChatModel } from './resources/aichat';\nexport type { ImageProvider } from './resources/images';\nexport type { VideoProvider } from './resources/video';\nexport type { AudioProvider } from './resources/audio';\n","/** AceDataCloud SDK errors. */\n\nexport class AceDataCloudError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AceDataCloudError';\n }\n}\n\nexport class TransportError extends AceDataCloudError {\n constructor(message: string) {\n super(message);\n this.name = 'TransportError';\n }\n}\n\nexport class APIError extends AceDataCloudError {\n statusCode: number;\n code: string;\n traceId?: string;\n body: Record<string, unknown>;\n\n constructor(opts: {\n message: string;\n statusCode: number;\n code: string;\n traceId?: string;\n body?: Record<string, unknown>;\n }) {\n super(opts.message);\n this.name = 'APIError';\n this.statusCode = opts.statusCode;\n this.code = opts.code;\n this.traceId = opts.traceId;\n this.body = opts.body ?? {};\n }\n}\n\nexport class AuthenticationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'AuthenticationError';\n }\n}\n\nexport class TokenMismatchError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TokenMismatchError';\n }\n}\n\nexport class RateLimitError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'RateLimitError';\n }\n}\n\nexport class ValidationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ValidationError';\n }\n}\n\nexport class InsufficientBalanceError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'InsufficientBalanceError';\n }\n}\n\nexport class ResourceDisabledError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ResourceDisabledError';\n }\n}\n\nexport class ModerationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ModerationError';\n }\n}\n\nexport class TimeoutError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TimeoutError';\n }\n}\n","/** HTTP transport for AceDataCloud SDK. Uses native fetch (Node 18+). */\n\nimport {\n APIError,\n AuthenticationError,\n InsufficientBalanceError,\n ModerationError,\n RateLimitError,\n ResourceDisabledError,\n TimeoutError,\n TokenMismatchError,\n TransportError,\n ValidationError,\n} from './errors';\nimport type {\n PaymentHandler,\n PaymentRequiredBody,\n} from './payment';\n\nconst ERROR_CODE_MAP: Record<string, typeof APIError> = {\n invalid_token: AuthenticationError,\n token_expired: AuthenticationError,\n no_token: AuthenticationError,\n token_mismatched: TokenMismatchError,\n used_up: InsufficientBalanceError,\n disabled: ResourceDisabledError,\n too_many_requests: RateLimitError,\n bad_request: ValidationError,\n};\n\nconst RETRY_STATUS_CODES = new Set([408, 409, 429, 500, 502, 503, 504]);\n\nexport function mapError(statusCode: number, body: Record<string, unknown>): APIError {\n // The server occasionally returns ``error`` as a bare string (e.g. x402\n // facilitator diagnostics) or omits/nulls it entirely. Normalize to an\n // object so downstream property access is always safe and the message\n // is preserved verbatim.\n let errorData: Record<string, unknown>;\n if (typeof body.error === 'string') {\n errorData = { message: body.error };\n } else if (body.error && typeof body.error === 'object' && !Array.isArray(body.error)) {\n errorData = body.error as Record<string, unknown>;\n } else {\n errorData = {};\n }\n const code = (errorData.code ?? '') as string;\n const message = (errorData.message ?? '') as string;\n const traceId = body.trace_id as string | undefined;\n\n let ErrorClass = ERROR_CODE_MAP[code];\n if (!ErrorClass) {\n if (statusCode === 403) ErrorClass = ModerationError;\n else if (statusCode === 401) ErrorClass = AuthenticationError;\n else if (statusCode === 429) ErrorClass = RateLimitError;\n else if (statusCode === 400) ErrorClass = ValidationError;\n else ErrorClass = APIError;\n }\n\n return new ErrorClass({ message, statusCode, code, traceId, body });\n}\n\nfunction backoffDelay(attempt: number): number {\n const base = Math.min(2 ** attempt, 8);\n return base + Math.random() * 0.5;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport interface TransportOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional handler invoked when a request returns `402 Payment Required`.\n * The handler receives the parsed `accepts` list and must return the extra\n * headers (typically `X-Payment`) to attach to the automatic retry.\n *\n * See `@acedatacloud/x402-client` for a drop-in implementation.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class Transport {\n private baseURL: string;\n private platformBaseURL: string;\n private timeout: number;\n private maxRetries: number;\n private headers: Record<string, string>;\n private paymentHandler?: PaymentHandler;\n\n constructor(opts: TransportOptions = {}) {\n const token = opts.apiToken ?? process.env.ACEDATACLOUD_API_TOKEN ?? '';\n if (!token && !opts.paymentHandler) {\n throw new AuthenticationError({\n message:\n 'apiToken is required (or provide a paymentHandler, e.g. from @acedatacloud/x402-client). ' +\n 'Pass it to the client or set ACEDATACLOUD_API_TOKEN.',\n statusCode: 0,\n code: 'no_token',\n });\n }\n this.baseURL = (opts.baseURL ?? 'https://api.acedata.cloud').replace(/\\/+$/, '');\n this.platformBaseURL = (opts.platformBaseURL ?? 'https://platform.acedata.cloud').replace(/\\/+$/, '');\n this.timeout = opts.timeout ?? 300_000;\n this.maxRetries = opts.maxRetries ?? 2;\n this.paymentHandler = opts.paymentHandler;\n const baseHeaders: Record<string, string> = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': 'acedatacloud-node/0.1.0',\n ...(opts.headers ?? {}),\n };\n if (token) {\n baseHeaders.authorization = `Bearer ${token}`;\n }\n this.headers = baseHeaders;\n }\n\n async request(\n method: string,\n path: string,\n opts: {\n json?: Record<string, unknown>;\n params?: Record<string, string>;\n platform?: boolean;\n timeout?: number;\n headers?: Record<string, string>;\n } = {}\n ): Promise<Record<string, unknown>> {\n const base = opts.platform ? this.platformBaseURL : this.baseURL;\n let url = `${base}${path}`;\n if (opts.params) {\n const qs = new URLSearchParams(opts.params).toString();\n url += `?${qs}`;\n }\n const headers = { ...this.headers, ...(opts.headers ?? {}) };\n const timeoutMs = opts.timeout ?? this.timeout;\n\n let lastError: Error | null = null;\n let paymentAttempted = false;\n let extraHeaders: Record<string, string> = {};\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n const resp = await fetch(url, {\n method,\n headers: { ...headers, ...extraHeaders },\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status === 402 && this.paymentHandler && !paymentAttempted) {\n const text = await resp.text();\n let body: PaymentRequiredBody;\n try {\n body = JSON.parse(text) as PaymentRequiredBody;\n } catch {\n throw mapError(402, { error: { code: 'invalid_402', message: text } });\n }\n if (!body.accepts?.length) {\n throw mapError(402, { error: { code: 'invalid_402', message: 'No payment requirements' } });\n }\n const result = await this.paymentHandler({\n url,\n method,\n body: opts.json,\n accepts: body.accepts,\n });\n extraHeaders = { ...extraHeaders, ...result.headers };\n paymentAttempted = true;\n continue;\n }\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n if (RETRY_STATUS_CODES.has(resp.status) && attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n throw mapError(resp.status, body);\n }\n\n return (await resp.json()) as Record<string, unknown>;\n } catch (err) {\n clearTimeout(timer);\n if (err instanceof APIError) throw err;\n lastError = err as Error;\n if (attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n }\n }\n throw lastError ?? new TransportError('Request failed after retries');\n }\n\n async *requestStream(\n method: string,\n path: string,\n opts: { json?: Record<string, unknown>; timeout?: number } = {}\n ): AsyncGenerator<string, void, unknown> {\n const url = `${this.baseURL}${path}`;\n const headers = { ...this.headers, accept: 'text/event-stream' };\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n\n try {\n const resp = await fetch(url, {\n method,\n headers,\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, body);\n }\n\n if (!resp.body) throw new TransportError('No response body for stream');\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const data = line.slice(6);\n if (data === '[DONE]') return;\n yield data;\n }\n }\n }\n } finally {\n clearTimeout(timer);\n }\n }\n\n async upload(\n path: string,\n fileData: Buffer | Uint8Array,\n filename: string,\n opts: { timeout?: number } = {}\n ): Promise<Record<string, unknown>> {\n const url = `${this.platformBaseURL}${path}`;\n const boundary = `----AceDataCloudBoundary${Date.now()}`;\n const headers = {\n ...this.headers,\n 'content-type': `multipart/form-data; boundary=${boundary}`,\n };\n delete (headers as Record<string, string>)['content-type'];\n\n const body = new FormData();\n body.append('file', new Blob([fileData]), filename);\n\n const authHeaders: Record<string, string> = {\n authorization: this.headers.authorization,\n 'user-agent': this.headers['user-agent'],\n };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n try {\n const resp = await fetch(url, {\n method: 'POST',\n headers: authHeaders,\n body,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let respBody: Record<string, unknown>;\n try {\n respBody = JSON.parse(text) as Record<string, unknown>;\n } catch {\n respBody = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, respBody);\n }\n return (await resp.json()) as Record<string, unknown>;\n } finally {\n clearTimeout(timer);\n }\n }\n}\n","/** AI Chat resources — aichat/conversations endpoint. */\n\nimport { Transport } from '../runtime/transport';\n\nexport type AiChatModel =\n | 'gpt-5.5'\n | 'gpt-5.5-pro'\n | 'gpt-5.4'\n | 'gpt-5.4-pro'\n | 'gpt-5.2'\n | 'gpt-5.1'\n | 'gpt-5.1-all'\n | 'gpt-5'\n | 'gpt-5-mini'\n | 'gpt-5-nano'\n | 'gpt-5-all'\n | 'gpt-4'\n | 'gpt-4-all'\n | 'gpt-4-turbo'\n | 'gpt-4-turbo-preview'\n | 'gpt-4-vision-preview'\n | 'gpt-4.1'\n | 'gpt-4.1-2025-04-14'\n | 'gpt-4.1-mini'\n | 'gpt-4.1-mini-2025-04-14'\n | 'gpt-4.1-nano'\n | 'gpt-4.1-nano-2025-04-14'\n | 'gpt-4.5-preview'\n | 'gpt-4.5-preview-2025-02-27'\n | 'gpt-4o'\n | 'gpt-4o-2024-05-13'\n | 'gpt-4o-2024-08-06'\n | 'gpt-4o-2024-11-20'\n | 'gpt-4o-all'\n | 'gpt-4o-image'\n | 'gpt-4o-mini'\n | 'gpt-4o-mini-2024-07-18'\n | 'gpt-4o-mini-search-preview'\n | 'gpt-4o-mini-search-preview-2025-03-11'\n | 'gpt-4o-search-preview'\n | 'gpt-4o-search-preview-2025-03-11'\n | 'o1'\n | 'o1-2024-12-17'\n | 'o1-all'\n | 'o1-mini'\n | 'o1-mini-2024-09-12'\n | 'o1-mini-all'\n | 'o1-preview'\n | 'o1-preview-2024-09-12'\n | 'o1-preview-all'\n | 'o1-pro'\n | 'o1-pro-2025-03-19'\n | 'o1-pro-all'\n | 'o3'\n | 'o3-2025-04-16'\n | 'o3-all'\n | 'o3-mini'\n | 'o3-mini-2025-01-31'\n | 'o3-mini-2025-01-31-high'\n | 'o3-mini-2025-01-31-low'\n | 'o3-mini-2025-01-31-medium'\n | 'o3-mini-all'\n | 'o3-mini-high'\n | 'o3-mini-high-all'\n | 'o3-mini-low'\n | 'o3-mini-medium'\n | 'o3-pro'\n | 'o3-pro-2025-06-10'\n | 'o4-mini'\n | 'o4-mini-2025-04-16'\n | 'o4-mini-all'\n | 'o4-mini-high-all'\n | 'deepseek-r1'\n | 'deepseek-r1-0528'\n | 'deepseek-v3'\n | 'deepseek-v3-250324'\n | 'grok-3'\n | 'glm-5.1'\n | 'glm-4.7'\n | 'glm-4.6'\n | 'glm-4.5-air'\n | 'glm-3-turbo'\n | (string & {});\n\nexport class AiChat {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: AiChatModel;\n question: string;\n id?: string;\n preset?: string;\n stateful?: boolean;\n references?: string[];\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, question, id, preset, stateful, references, ...rest } = opts;\n const body: Record<string, unknown> = { model, question, ...rest };\n if (id !== undefined) body.id = id;\n if (preset !== undefined) body.preset = preset;\n if (stateful !== undefined) body.stateful = stateful;\n if (references !== undefined) body.references = references;\n return this.transport.request('POST', '/aichat/conversations', { json: body });\n }\n}\n","/** Chat resources — native provider APIs (Claude Messages). */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Messages {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, maxTokens = 4096, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, max_tokens: maxTokens, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.stream(body);\n }\n return this.transport.request('POST', '/v1/messages', { json: body });\n }\n\n private async *stream(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/v1/messages', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n\n async countTokens(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, messages, ...rest } = opts;\n return this.transport.request('POST', '/v1/messages/count_tokens', {\n json: { model, messages, ...rest },\n });\n }\n}\n\nexport class Chat {\n readonly messages: Messages;\n\n constructor(transport: Transport) {\n this.messages = new Messages(transport);\n }\n}\n","/** Task polling abstraction. */\n\nimport { Transport } from './transport';\n\nexport interface TaskHandleOptions {\n pollInterval?: number;\n maxWait?: number;\n}\n\nexport class TaskHandle {\n readonly id: string;\n private pollEndpoint: string;\n private transport: Transport;\n private _result: Record<string, unknown> | null = null;\n\n constructor(taskId: string, pollEndpoint: string, transport: Transport) {\n this.id = taskId;\n this.pollEndpoint = pollEndpoint;\n this.transport = transport;\n }\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('POST', this.pollEndpoint, {\n json: { id: this.id, action: 'retrieve' },\n });\n }\n\n async isCompleted(): Promise<boolean> {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n return status === 'succeeded' || status === 'failed';\n }\n\n async wait(opts: TaskHandleOptions = {}): Promise<Record<string, unknown>> {\n const pollInterval = opts.pollInterval ?? 3000;\n const maxWait = opts.maxWait ?? 600_000;\n const start = Date.now();\n\n while (Date.now() - start < maxWait) {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n\n if (status === 'succeeded' || status === 'failed') {\n this._result = state;\n return state;\n }\n await new Promise((resolve) => setTimeout(resolve, pollInterval));\n }\n throw new Error(`Task ${this.id} did not complete within ${maxWait}ms`);\n }\n\n get result(): Record<string, unknown> | null {\n return this._result;\n }\n}\n","/** Image generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type ImageProvider = 'nano-banana' | 'midjourney' | 'flux' | 'seedream' | (string & {});\n\nexport class Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: ImageProvider;\n model?: string;\n negativePrompt?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'nano-banana', model, negativePrompt, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (negativePrompt !== undefined) body.negative_prompt = negativePrompt;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const endpoint = provider === 'midjourney' ? '/midjourney/imagine' : `/${provider}/images`;\n const result = await this.transport.request('POST', endpoint, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Audio/music generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type AudioProvider = 'suno' | 'producer' | 'fish' | (string & {});\n\nexport class Audio {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: AudioProvider;\n model?: string;\n tags?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'suno', model, tags, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (tags !== undefined) body.tags = tags;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/audios`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Video generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type VideoProvider = 'sora' | 'luma' | 'veo' | 'kling' | 'hailuo' | 'seedance' | 'wan' | 'pika' | 'pixverse' | (string & {});\n\nexport class Video {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: VideoProvider;\n model?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'sora', model, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/videos`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Search resources. */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Search {\n constructor(private transport: Transport) {}\n\n async google(opts: {\n query: string;\n type?: string;\n country?: string;\n language?: string;\n page?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { query, type = 'search', country, language, page, ...rest } = opts;\n const body: Record<string, unknown> = { query, type, ...rest };\n if (country !== undefined) body.country = country;\n if (language !== undefined) body.language = language;\n if (page !== undefined) body.page = page;\n return this.transport.request('POST', '/serp/google', { json: body });\n }\n}\n","/** Cross-service task retrieval. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nconst SERVICE_TASK_ENDPOINTS: Record<string, string> = {\n suno: '/suno/tasks',\n producer: '/producer/tasks',\n fish: '/fish/tasks',\n 'nano-banana': '/nano-banana/tasks',\n seedream: '/seedream/tasks',\n seedance: '/seedance/tasks',\n sora: '/sora/tasks',\n midjourney: '/midjourney/tasks',\n luma: '/luma/tasks',\n veo: '/veo/tasks',\n flux: '/flux/tasks',\n kling: '/kling/tasks',\n hailuo: '/hailuo/tasks',\n wan: '/wan/tasks',\n pika: '/pika/tasks',\n pixverse: '/pixverse/tasks',\n};\n\nexport class Tasks {\n constructor(private transport: Transport) {}\n\n async get(taskId: string, opts: { service?: string } = {}): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n return this.transport.request('POST', endpoint, {\n json: { id: taskId, action: 'retrieve' },\n });\n }\n\n async wait(\n taskId: string,\n opts: { service?: string; pollInterval?: number; maxWait?: number } = {}\n ): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n const handle = new TaskHandle(taskId, endpoint, this.transport);\n return handle.wait({ pollInterval: opts.pollInterval, maxWait: opts.maxWait });\n }\n}\n","/** File upload resources. */\n\nimport { Transport } from '../runtime/transport';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nexport class Files {\n constructor(private transport: Transport) {}\n\n async upload(\n file: string | Buffer | Uint8Array,\n opts: { filename?: string } = {}\n ): Promise<Record<string, unknown>> {\n let data: Buffer | Uint8Array;\n let filename: string;\n\n if (typeof file === 'string') {\n data = fs.readFileSync(file);\n filename = opts.filename ?? path.basename(file);\n } else {\n data = file;\n filename = opts.filename ?? 'upload';\n }\n\n return this.transport.upload('/api/v1/files/', data, filename);\n }\n}\n","/** Management-plane resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Applications {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/applications/', { params, platform: true });\n }\n\n async create(opts: { serviceId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { serviceId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/applications/', {\n json: { service_id: serviceId, ...rest },\n platform: true,\n });\n }\n\n async get(applicationId: string): Promise<Record<string, unknown>> {\n return this.transport.request('GET', `/api/v1/applications/${applicationId}/`, { platform: true });\n }\n}\n\nclass Credentials {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/credentials/', { params, platform: true });\n }\n\n async create(opts: { applicationId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { applicationId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/credentials/', {\n json: { application_id: applicationId, ...rest },\n platform: true,\n });\n }\n\n async rotate(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('POST', `/api/v1/credentials/${credentialId}/rotate/`, { platform: true });\n }\n\n async delete(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('DELETE', `/api/v1/credentials/${credentialId}/`, { platform: true });\n }\n}\n\nclass Models {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/models/', { params, platform: true });\n }\n}\n\nclass Config {\n constructor(private transport: Transport) {}\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/config/', { platform: true });\n }\n}\n\nexport class Platform {\n readonly applications: Applications;\n readonly credentials: Credentials;\n readonly models: Models;\n readonly config: Config;\n\n constructor(transport: Transport) {\n this.applications = new Applications(transport);\n this.credentials = new Credentials(transport);\n this.models = new Models(transport);\n this.config = new Config(transport);\n }\n}\n","/** OpenAI-compatible facade resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Completions {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/chat/completions', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/chat/completions', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass ChatNamespace {\n readonly completions: Completions;\n constructor(transport: Transport) {\n this.completions = new Completions(transport);\n }\n}\n\nclass Responses {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, input, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/responses', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/responses', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n model: string;\n background?: string;\n moderation?: string;\n n?: number;\n outputCompression?: number;\n outputFormat?: string;\n partialImages?: number;\n size?: string;\n quality?: string;\n responseFormat?: string;\n style?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { prompt, model, outputCompression, outputFormat, partialImages, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, model, ...rest };\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (partialImages !== undefined) body.partial_images = partialImages;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/generations', { json: body });\n }\n\n async edit(opts: {\n image: string | string[];\n prompt: string;\n model?: string;\n n?: number;\n background?: string;\n inputFidelity?: string;\n mask?: string;\n outputFormat?: string;\n outputCompression?: number;\n partialImages?: number;\n quality?: string;\n size?: string;\n responseFormat?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { image, prompt, inputFidelity, mask, outputFormat, outputCompression, partialImages, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { image, prompt, ...rest };\n if (inputFidelity !== undefined) body.input_fidelity = inputFidelity;\n if (mask !== undefined) body.mask = mask;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (partialImages !== undefined) body.partial_images = partialImages;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/edits', { json: body });\n }\n}\n\nclass Embeddings {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | string[];\n encodingFormat?: string;\n dimensions?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, input, encodingFormat, dimensions, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n if (encodingFormat !== undefined) body.encoding_format = encodingFormat;\n if (dimensions !== undefined) body.dimensions = dimensions;\n return this.transport.request('POST', '/openai/embeddings', { json: body });\n }\n}\n\nclass Tasks {\n constructor(private transport: Transport) {}\n\n async retrieve(opts: {\n id?: string;\n traceId?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { id, traceId, ...rest } = opts;\n const body: Record<string, unknown> = { action: 'retrieve', ...rest };\n if (id !== undefined) body.id = id;\n if (traceId !== undefined) body.trace_id = traceId;\n return this.transport.request('POST', '/openai/tasks', { json: body });\n }\n\n async retrieveBatch(opts: {\n ids?: string[];\n traceIds?: string[];\n applicationId?: string;\n userId?: string;\n type?: string;\n offset?: number;\n limit?: number;\n createdAtMin?: number;\n createdAtMax?: number;\n [key: string]: unknown;\n } = {}): Promise<Record<string, unknown>> {\n const { ids, traceIds, applicationId, userId, type, offset, limit, createdAtMin, createdAtMax, ...rest } = opts;\n const body: Record<string, unknown> = { action: 'retrieve_batch', ...rest };\n if (ids !== undefined) body.ids = ids;\n if (traceIds !== undefined) body.trace_ids = traceIds;\n if (applicationId !== undefined) body.application_id = applicationId;\n if (userId !== undefined) body.user_id = userId;\n if (type !== undefined) body.type = type;\n if (offset !== undefined) body.offset = offset;\n if (limit !== undefined) body.limit = limit;\n if (createdAtMin !== undefined) body.created_at_min = createdAtMin;\n if (createdAtMax !== undefined) body.created_at_max = createdAtMax;\n return this.transport.request('POST', '/openai/tasks', { json: body });\n }\n}\n\nexport class OpenAI {\n readonly chat: ChatNamespace;\n readonly responses: Responses;\n readonly images: Images;\n readonly embeddings: Embeddings;\n readonly tasks: Tasks;\n\n constructor(transport: Transport) {\n this.chat = new ChatNamespace(transport);\n this.responses = new Responses(transport);\n this.images = new Images(transport);\n this.embeddings = new Embeddings(transport);\n this.tasks = new Tasks(transport);\n }\n}\n","/** Top-level AceDataCloud client for TypeScript. */\n\nimport { Transport, TransportOptions } from './runtime/transport';\nimport type { PaymentHandler } from './runtime/payment';\nimport { AiChat } from './resources/aichat';\nimport { Chat } from './resources/chat';\nimport { Images } from './resources/images';\nimport { Audio } from './resources/audio';\nimport { Video } from './resources/video';\nimport { Search } from './resources/search';\nimport { Tasks } from './resources/tasks';\nimport { Files } from './resources/files';\nimport { Platform } from './resources/platform';\nimport { OpenAI } from './resources/openai';\n\nexport interface AceDataCloudOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional payment handler invoked when the API returns `402 Payment\n * Required`. Use `createX402PaymentHandler` from\n * `@acedatacloud/x402-client` to enable on-chain payments via X402.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class AceDataCloud {\n readonly aichat: AiChat;\n readonly chat: Chat;\n readonly images: Images;\n readonly audio: Audio;\n readonly video: Video;\n readonly search: Search;\n readonly tasks: Tasks;\n readonly files: Files;\n readonly platform: Platform;\n readonly openai: OpenAI;\n\n private transport: Transport;\n\n constructor(opts: AceDataCloudOptions = {}) {\n this.transport = new Transport({\n apiToken: opts.apiToken,\n baseURL: opts.baseURL,\n platformBaseURL: opts.platformBaseURL,\n timeout: opts.timeout,\n maxRetries: opts.maxRetries,\n headers: opts.headers,\n paymentHandler: opts.paymentHandler,\n });\n\n this.aichat = new AiChat(this.transport);\n this.chat = new Chat(this.transport);\n this.images = new Images(this.transport);\n this.audio = new Audio(this.transport);\n this.video = new Video(this.transport);\n this.search = new Search(this.transport);\n this.tasks = new Tasks(this.transport);\n this.files = new Files(this.transport);\n this.platform = new Platform(this.transport);\n this.openai = new OpenAI(this.transport);\n }\n}\n"],"mappings":"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","names":["path","Images","Tasks"]}
package/dist/index.mjs CHANGED
@@ -675,11 +675,13 @@ var Images2 = class {
675
675
  return this.transport.request("POST", "/openai/images/generations", { json: body });
676
676
  }
677
677
  async edit(opts) {
678
- const { image, prompt, inputFidelity, outputFormat, outputCompression, responseFormat, callbackUrl, ...rest } = opts;
678
+ const { image, prompt, inputFidelity, mask, outputFormat, outputCompression, partialImages, responseFormat, callbackUrl, ...rest } = opts;
679
679
  const body = { image, prompt, ...rest };
680
680
  if (inputFidelity !== void 0) body.input_fidelity = inputFidelity;
681
+ if (mask !== void 0) body.mask = mask;
681
682
  if (outputFormat !== void 0) body.output_format = outputFormat;
682
683
  if (outputCompression !== void 0) body.output_compression = outputCompression;
684
+ if (partialImages !== void 0) body.partial_images = partialImages;
683
685
  if (responseFormat !== void 0) body.response_format = responseFormat;
684
686
  if (callbackUrl !== void 0) body.callback_url = callbackUrl;
685
687
  return this.transport.request("POST", "/openai/images/edits", { json: body });
@@ -698,16 +700,45 @@ var Embeddings = class {
698
700
  return this.transport.request("POST", "/openai/embeddings", { json: body });
699
701
  }
700
702
  };
703
+ var Tasks2 = class {
704
+ constructor(transport) {
705
+ this.transport = transport;
706
+ }
707
+ transport;
708
+ async retrieve(opts) {
709
+ const { id, traceId, ...rest } = opts;
710
+ const body = { action: "retrieve", ...rest };
711
+ if (id !== void 0) body.id = id;
712
+ if (traceId !== void 0) body.trace_id = traceId;
713
+ return this.transport.request("POST", "/openai/tasks", { json: body });
714
+ }
715
+ async retrieveBatch(opts = {}) {
716
+ const { ids, traceIds, applicationId, userId, type, offset, limit, createdAtMin, createdAtMax, ...rest } = opts;
717
+ const body = { action: "retrieve_batch", ...rest };
718
+ if (ids !== void 0) body.ids = ids;
719
+ if (traceIds !== void 0) body.trace_ids = traceIds;
720
+ if (applicationId !== void 0) body.application_id = applicationId;
721
+ if (userId !== void 0) body.user_id = userId;
722
+ if (type !== void 0) body.type = type;
723
+ if (offset !== void 0) body.offset = offset;
724
+ if (limit !== void 0) body.limit = limit;
725
+ if (createdAtMin !== void 0) body.created_at_min = createdAtMin;
726
+ if (createdAtMax !== void 0) body.created_at_max = createdAtMax;
727
+ return this.transport.request("POST", "/openai/tasks", { json: body });
728
+ }
729
+ };
701
730
  var OpenAI = class {
702
731
  chat;
703
732
  responses;
704
733
  images;
705
734
  embeddings;
735
+ tasks;
706
736
  constructor(transport) {
707
737
  this.chat = new ChatNamespace(transport);
708
738
  this.responses = new Responses(transport);
709
739
  this.images = new Images2(transport);
710
740
  this.embeddings = new Embeddings(transport);
741
+ this.tasks = new Tasks2(transport);
711
742
  }
712
743
  };
713
744
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/runtime/errors.ts","../src/runtime/transport.ts","../src/resources/aichat.ts","../src/resources/chat.ts","../src/runtime/tasks.ts","../src/resources/images.ts","../src/resources/audio.ts","../src/resources/video.ts","../src/resources/search.ts","../src/resources/tasks.ts","../src/resources/files.ts","../src/resources/platform.ts","../src/resources/openai.ts","../src/client.ts"],"sourcesContent":["/** AceDataCloud SDK errors. */\n\nexport class AceDataCloudError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AceDataCloudError';\n }\n}\n\nexport class TransportError extends AceDataCloudError {\n constructor(message: string) {\n super(message);\n this.name = 'TransportError';\n }\n}\n\nexport class APIError extends AceDataCloudError {\n statusCode: number;\n code: string;\n traceId?: string;\n body: Record<string, unknown>;\n\n constructor(opts: {\n message: string;\n statusCode: number;\n code: string;\n traceId?: string;\n body?: Record<string, unknown>;\n }) {\n super(opts.message);\n this.name = 'APIError';\n this.statusCode = opts.statusCode;\n this.code = opts.code;\n this.traceId = opts.traceId;\n this.body = opts.body ?? {};\n }\n}\n\nexport class AuthenticationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'AuthenticationError';\n }\n}\n\nexport class TokenMismatchError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TokenMismatchError';\n }\n}\n\nexport class RateLimitError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'RateLimitError';\n }\n}\n\nexport class ValidationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ValidationError';\n }\n}\n\nexport class InsufficientBalanceError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'InsufficientBalanceError';\n }\n}\n\nexport class ResourceDisabledError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ResourceDisabledError';\n }\n}\n\nexport class ModerationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ModerationError';\n }\n}\n\nexport class TimeoutError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TimeoutError';\n }\n}\n","/** HTTP transport for AceDataCloud SDK. Uses native fetch (Node 18+). */\n\nimport {\n APIError,\n AuthenticationError,\n InsufficientBalanceError,\n ModerationError,\n RateLimitError,\n ResourceDisabledError,\n TimeoutError,\n TokenMismatchError,\n TransportError,\n ValidationError,\n} from './errors';\nimport type {\n PaymentHandler,\n PaymentRequiredBody,\n} from './payment';\n\nconst ERROR_CODE_MAP: Record<string, typeof APIError> = {\n invalid_token: AuthenticationError,\n token_expired: AuthenticationError,\n no_token: AuthenticationError,\n token_mismatched: TokenMismatchError,\n used_up: InsufficientBalanceError,\n disabled: ResourceDisabledError,\n too_many_requests: RateLimitError,\n bad_request: ValidationError,\n};\n\nconst RETRY_STATUS_CODES = new Set([408, 409, 429, 500, 502, 503, 504]);\n\nexport function mapError(statusCode: number, body: Record<string, unknown>): APIError {\n // The server occasionally returns ``error`` as a bare string (e.g. x402\n // facilitator diagnostics) or omits/nulls it entirely. Normalize to an\n // object so downstream property access is always safe and the message\n // is preserved verbatim.\n let errorData: Record<string, unknown>;\n if (typeof body.error === 'string') {\n errorData = { message: body.error };\n } else if (body.error && typeof body.error === 'object' && !Array.isArray(body.error)) {\n errorData = body.error as Record<string, unknown>;\n } else {\n errorData = {};\n }\n const code = (errorData.code ?? '') as string;\n const message = (errorData.message ?? '') as string;\n const traceId = body.trace_id as string | undefined;\n\n let ErrorClass = ERROR_CODE_MAP[code];\n if (!ErrorClass) {\n if (statusCode === 403) ErrorClass = ModerationError;\n else if (statusCode === 401) ErrorClass = AuthenticationError;\n else if (statusCode === 429) ErrorClass = RateLimitError;\n else if (statusCode === 400) ErrorClass = ValidationError;\n else ErrorClass = APIError;\n }\n\n return new ErrorClass({ message, statusCode, code, traceId, body });\n}\n\nfunction backoffDelay(attempt: number): number {\n const base = Math.min(2 ** attempt, 8);\n return base + Math.random() * 0.5;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport interface TransportOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional handler invoked when a request returns `402 Payment Required`.\n * The handler receives the parsed `accepts` list and must return the extra\n * headers (typically `X-Payment`) to attach to the automatic retry.\n *\n * See `@acedatacloud/x402-client` for a drop-in implementation.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class Transport {\n private baseURL: string;\n private platformBaseURL: string;\n private timeout: number;\n private maxRetries: number;\n private headers: Record<string, string>;\n private paymentHandler?: PaymentHandler;\n\n constructor(opts: TransportOptions = {}) {\n const token = opts.apiToken ?? process.env.ACEDATACLOUD_API_TOKEN ?? '';\n if (!token && !opts.paymentHandler) {\n throw new AuthenticationError({\n message:\n 'apiToken is required (or provide a paymentHandler, e.g. from @acedatacloud/x402-client). ' +\n 'Pass it to the client or set ACEDATACLOUD_API_TOKEN.',\n statusCode: 0,\n code: 'no_token',\n });\n }\n this.baseURL = (opts.baseURL ?? 'https://api.acedata.cloud').replace(/\\/+$/, '');\n this.platformBaseURL = (opts.platformBaseURL ?? 'https://platform.acedata.cloud').replace(/\\/+$/, '');\n this.timeout = opts.timeout ?? 300_000;\n this.maxRetries = opts.maxRetries ?? 2;\n this.paymentHandler = opts.paymentHandler;\n const baseHeaders: Record<string, string> = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': 'acedatacloud-node/0.1.0',\n ...(opts.headers ?? {}),\n };\n if (token) {\n baseHeaders.authorization = `Bearer ${token}`;\n }\n this.headers = baseHeaders;\n }\n\n async request(\n method: string,\n path: string,\n opts: {\n json?: Record<string, unknown>;\n params?: Record<string, string>;\n platform?: boolean;\n timeout?: number;\n headers?: Record<string, string>;\n } = {}\n ): Promise<Record<string, unknown>> {\n const base = opts.platform ? this.platformBaseURL : this.baseURL;\n let url = `${base}${path}`;\n if (opts.params) {\n const qs = new URLSearchParams(opts.params).toString();\n url += `?${qs}`;\n }\n const headers = { ...this.headers, ...(opts.headers ?? {}) };\n const timeoutMs = opts.timeout ?? this.timeout;\n\n let lastError: Error | null = null;\n let paymentAttempted = false;\n let extraHeaders: Record<string, string> = {};\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n const resp = await fetch(url, {\n method,\n headers: { ...headers, ...extraHeaders },\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status === 402 && this.paymentHandler && !paymentAttempted) {\n const text = await resp.text();\n let body: PaymentRequiredBody;\n try {\n body = JSON.parse(text) as PaymentRequiredBody;\n } catch {\n throw mapError(402, { error: { code: 'invalid_402', message: text } });\n }\n if (!body.accepts?.length) {\n throw mapError(402, { error: { code: 'invalid_402', message: 'No payment requirements' } });\n }\n const result = await this.paymentHandler({\n url,\n method,\n body: opts.json,\n accepts: body.accepts,\n });\n extraHeaders = { ...extraHeaders, ...result.headers };\n paymentAttempted = true;\n continue;\n }\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n if (RETRY_STATUS_CODES.has(resp.status) && attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n throw mapError(resp.status, body);\n }\n\n return (await resp.json()) as Record<string, unknown>;\n } catch (err) {\n clearTimeout(timer);\n if (err instanceof APIError) throw err;\n lastError = err as Error;\n if (attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n }\n }\n throw lastError ?? new TransportError('Request failed after retries');\n }\n\n async *requestStream(\n method: string,\n path: string,\n opts: { json?: Record<string, unknown>; timeout?: number } = {}\n ): AsyncGenerator<string, void, unknown> {\n const url = `${this.baseURL}${path}`;\n const headers = { ...this.headers, accept: 'text/event-stream' };\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n\n try {\n const resp = await fetch(url, {\n method,\n headers,\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, body);\n }\n\n if (!resp.body) throw new TransportError('No response body for stream');\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const data = line.slice(6);\n if (data === '[DONE]') return;\n yield data;\n }\n }\n }\n } finally {\n clearTimeout(timer);\n }\n }\n\n async upload(\n path: string,\n fileData: Buffer | Uint8Array,\n filename: string,\n opts: { timeout?: number } = {}\n ): Promise<Record<string, unknown>> {\n const url = `${this.platformBaseURL}${path}`;\n const boundary = `----AceDataCloudBoundary${Date.now()}`;\n const headers = {\n ...this.headers,\n 'content-type': `multipart/form-data; boundary=${boundary}`,\n };\n delete (headers as Record<string, string>)['content-type'];\n\n const body = new FormData();\n body.append('file', new Blob([fileData]), filename);\n\n const authHeaders: Record<string, string> = {\n authorization: this.headers.authorization,\n 'user-agent': this.headers['user-agent'],\n };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n try {\n const resp = await fetch(url, {\n method: 'POST',\n headers: authHeaders,\n body,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let respBody: Record<string, unknown>;\n try {\n respBody = JSON.parse(text) as Record<string, unknown>;\n } catch {\n respBody = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, respBody);\n }\n return (await resp.json()) as Record<string, unknown>;\n } finally {\n clearTimeout(timer);\n }\n }\n}\n","/** AI Chat resources — aichat/conversations endpoint. */\n\nimport { Transport } from '../runtime/transport';\n\nexport type AiChatModel =\n | 'gpt-5.5'\n | 'gpt-5.5-pro'\n | 'gpt-5.4'\n | 'gpt-5.4-pro'\n | 'gpt-5.2'\n | 'gpt-5.1'\n | 'gpt-5.1-all'\n | 'gpt-5'\n | 'gpt-5-mini'\n | 'gpt-5-nano'\n | 'gpt-5-all'\n | 'gpt-4'\n | 'gpt-4-all'\n | 'gpt-4-turbo'\n | 'gpt-4-turbo-preview'\n | 'gpt-4-vision-preview'\n | 'gpt-4.1'\n | 'gpt-4.1-2025-04-14'\n | 'gpt-4.1-mini'\n | 'gpt-4.1-mini-2025-04-14'\n | 'gpt-4.1-nano'\n | 'gpt-4.1-nano-2025-04-14'\n | 'gpt-4.5-preview'\n | 'gpt-4.5-preview-2025-02-27'\n | 'gpt-4o'\n | 'gpt-4o-2024-05-13'\n | 'gpt-4o-2024-08-06'\n | 'gpt-4o-2024-11-20'\n | 'gpt-4o-all'\n | 'gpt-4o-image'\n | 'gpt-4o-mini'\n | 'gpt-4o-mini-2024-07-18'\n | 'gpt-4o-mini-search-preview'\n | 'gpt-4o-mini-search-preview-2025-03-11'\n | 'gpt-4o-search-preview'\n | 'gpt-4o-search-preview-2025-03-11'\n | 'o1'\n | 'o1-2024-12-17'\n | 'o1-all'\n | 'o1-mini'\n | 'o1-mini-2024-09-12'\n | 'o1-mini-all'\n | 'o1-preview'\n | 'o1-preview-2024-09-12'\n | 'o1-preview-all'\n | 'o1-pro'\n | 'o1-pro-2025-03-19'\n | 'o1-pro-all'\n | 'o3'\n | 'o3-2025-04-16'\n | 'o3-all'\n | 'o3-mini'\n | 'o3-mini-2025-01-31'\n | 'o3-mini-2025-01-31-high'\n | 'o3-mini-2025-01-31-low'\n | 'o3-mini-2025-01-31-medium'\n | 'o3-mini-all'\n | 'o3-mini-high'\n | 'o3-mini-high-all'\n | 'o3-mini-low'\n | 'o3-mini-medium'\n | 'o3-pro'\n | 'o3-pro-2025-06-10'\n | 'o4-mini'\n | 'o4-mini-2025-04-16'\n | 'o4-mini-all'\n | 'o4-mini-high-all'\n | 'deepseek-r1'\n | 'deepseek-r1-0528'\n | 'deepseek-v3'\n | 'deepseek-v3-250324'\n | 'grok-3'\n | 'glm-5.1'\n | 'glm-4.7'\n | 'glm-4.6'\n | 'glm-4.5-air'\n | 'glm-3-turbo'\n | (string & {});\n\nexport class AiChat {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: AiChatModel;\n question: string;\n id?: string;\n preset?: string;\n stateful?: boolean;\n references?: string[];\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, question, id, preset, stateful, references, ...rest } = opts;\n const body: Record<string, unknown> = { model, question, ...rest };\n if (id !== undefined) body.id = id;\n if (preset !== undefined) body.preset = preset;\n if (stateful !== undefined) body.stateful = stateful;\n if (references !== undefined) body.references = references;\n return this.transport.request('POST', '/aichat/conversations', { json: body });\n }\n}\n","/** Chat resources — native provider APIs (Claude Messages). */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Messages {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, maxTokens = 4096, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, max_tokens: maxTokens, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.stream(body);\n }\n return this.transport.request('POST', '/v1/messages', { json: body });\n }\n\n private async *stream(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/v1/messages', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n\n async countTokens(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, messages, ...rest } = opts;\n return this.transport.request('POST', '/v1/messages/count_tokens', {\n json: { model, messages, ...rest },\n });\n }\n}\n\nexport class Chat {\n readonly messages: Messages;\n\n constructor(transport: Transport) {\n this.messages = new Messages(transport);\n }\n}\n","/** Task polling abstraction. */\n\nimport { Transport } from './transport';\n\nexport interface TaskHandleOptions {\n pollInterval?: number;\n maxWait?: number;\n}\n\nexport class TaskHandle {\n readonly id: string;\n private pollEndpoint: string;\n private transport: Transport;\n private _result: Record<string, unknown> | null = null;\n\n constructor(taskId: string, pollEndpoint: string, transport: Transport) {\n this.id = taskId;\n this.pollEndpoint = pollEndpoint;\n this.transport = transport;\n }\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('POST', this.pollEndpoint, {\n json: { id: this.id, action: 'retrieve' },\n });\n }\n\n async isCompleted(): Promise<boolean> {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n return status === 'succeeded' || status === 'failed';\n }\n\n async wait(opts: TaskHandleOptions = {}): Promise<Record<string, unknown>> {\n const pollInterval = opts.pollInterval ?? 3000;\n const maxWait = opts.maxWait ?? 600_000;\n const start = Date.now();\n\n while (Date.now() - start < maxWait) {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n\n if (status === 'succeeded' || status === 'failed') {\n this._result = state;\n return state;\n }\n await new Promise((resolve) => setTimeout(resolve, pollInterval));\n }\n throw new Error(`Task ${this.id} did not complete within ${maxWait}ms`);\n }\n\n get result(): Record<string, unknown> | null {\n return this._result;\n }\n}\n","/** Image generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type ImageProvider = 'nano-banana' | 'midjourney' | 'flux' | 'seedream' | (string & {});\n\nexport class Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: ImageProvider;\n model?: string;\n negativePrompt?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'nano-banana', model, negativePrompt, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (negativePrompt !== undefined) body.negative_prompt = negativePrompt;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const endpoint = provider === 'midjourney' ? '/midjourney/imagine' : `/${provider}/images`;\n const result = await this.transport.request('POST', endpoint, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Audio/music generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type AudioProvider = 'suno' | 'producer' | 'fish' | (string & {});\n\nexport class Audio {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: AudioProvider;\n model?: string;\n tags?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'suno', model, tags, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (tags !== undefined) body.tags = tags;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/audios`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Video generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type VideoProvider = 'sora' | 'luma' | 'veo' | 'kling' | 'hailuo' | 'seedance' | 'wan' | 'pika' | 'pixverse' | (string & {});\n\nexport class Video {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: VideoProvider;\n model?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'sora', model, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/videos`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Search resources. */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Search {\n constructor(private transport: Transport) {}\n\n async google(opts: {\n query: string;\n type?: string;\n country?: string;\n language?: string;\n page?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { query, type = 'search', country, language, page, ...rest } = opts;\n const body: Record<string, unknown> = { query, type, ...rest };\n if (country !== undefined) body.country = country;\n if (language !== undefined) body.language = language;\n if (page !== undefined) body.page = page;\n return this.transport.request('POST', '/serp/google', { json: body });\n }\n}\n","/** Cross-service task retrieval. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nconst SERVICE_TASK_ENDPOINTS: Record<string, string> = {\n suno: '/suno/tasks',\n producer: '/producer/tasks',\n fish: '/fish/tasks',\n 'nano-banana': '/nano-banana/tasks',\n seedream: '/seedream/tasks',\n seedance: '/seedance/tasks',\n sora: '/sora/tasks',\n midjourney: '/midjourney/tasks',\n luma: '/luma/tasks',\n veo: '/veo/tasks',\n flux: '/flux/tasks',\n kling: '/kling/tasks',\n hailuo: '/hailuo/tasks',\n wan: '/wan/tasks',\n pika: '/pika/tasks',\n pixverse: '/pixverse/tasks',\n};\n\nexport class Tasks {\n constructor(private transport: Transport) {}\n\n async get(taskId: string, opts: { service?: string } = {}): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n return this.transport.request('POST', endpoint, {\n json: { id: taskId, action: 'retrieve' },\n });\n }\n\n async wait(\n taskId: string,\n opts: { service?: string; pollInterval?: number; maxWait?: number } = {}\n ): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n const handle = new TaskHandle(taskId, endpoint, this.transport);\n return handle.wait({ pollInterval: opts.pollInterval, maxWait: opts.maxWait });\n }\n}\n","/** File upload resources. */\n\nimport { Transport } from '../runtime/transport';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nexport class Files {\n constructor(private transport: Transport) {}\n\n async upload(\n file: string | Buffer | Uint8Array,\n opts: { filename?: string } = {}\n ): Promise<Record<string, unknown>> {\n let data: Buffer | Uint8Array;\n let filename: string;\n\n if (typeof file === 'string') {\n data = fs.readFileSync(file);\n filename = opts.filename ?? path.basename(file);\n } else {\n data = file;\n filename = opts.filename ?? 'upload';\n }\n\n return this.transport.upload('/api/v1/files/', data, filename);\n }\n}\n","/** Management-plane resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Applications {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/applications/', { params, platform: true });\n }\n\n async create(opts: { serviceId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { serviceId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/applications/', {\n json: { service_id: serviceId, ...rest },\n platform: true,\n });\n }\n\n async get(applicationId: string): Promise<Record<string, unknown>> {\n return this.transport.request('GET', `/api/v1/applications/${applicationId}/`, { platform: true });\n }\n}\n\nclass Credentials {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/credentials/', { params, platform: true });\n }\n\n async create(opts: { applicationId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { applicationId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/credentials/', {\n json: { application_id: applicationId, ...rest },\n platform: true,\n });\n }\n\n async rotate(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('POST', `/api/v1/credentials/${credentialId}/rotate/`, { platform: true });\n }\n\n async delete(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('DELETE', `/api/v1/credentials/${credentialId}/`, { platform: true });\n }\n}\n\nclass Models {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/models/', { params, platform: true });\n }\n}\n\nclass Config {\n constructor(private transport: Transport) {}\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/config/', { platform: true });\n }\n}\n\nexport class Platform {\n readonly applications: Applications;\n readonly credentials: Credentials;\n readonly models: Models;\n readonly config: Config;\n\n constructor(transport: Transport) {\n this.applications = new Applications(transport);\n this.credentials = new Credentials(transport);\n this.models = new Models(transport);\n this.config = new Config(transport);\n }\n}\n","/** OpenAI-compatible facade resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Completions {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/chat/completions', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/chat/completions', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass ChatNamespace {\n readonly completions: Completions;\n constructor(transport: Transport) {\n this.completions = new Completions(transport);\n }\n}\n\nclass Responses {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, input, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/responses', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/responses', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n model: string;\n background?: string;\n moderation?: string;\n n?: number;\n outputCompression?: number;\n outputFormat?: string;\n partialImages?: number;\n size?: string;\n quality?: string;\n responseFormat?: string;\n style?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { prompt, model, outputCompression, outputFormat, partialImages, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, model, ...rest };\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (partialImages !== undefined) body.partial_images = partialImages;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/generations', { json: body });\n }\n\n async edit(opts: {\n image: string | string[];\n prompt: string;\n model?: string;\n n?: number;\n background?: string;\n inputFidelity?: string;\n outputFormat?: string;\n outputCompression?: number;\n quality?: string;\n size?: string;\n responseFormat?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { image, prompt, inputFidelity, outputFormat, outputCompression, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { image, prompt, ...rest };\n if (inputFidelity !== undefined) body.input_fidelity = inputFidelity;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/edits', { json: body });\n }\n}\n\nclass Embeddings {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | string[];\n encodingFormat?: string;\n dimensions?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, input, encodingFormat, dimensions, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n if (encodingFormat !== undefined) body.encoding_format = encodingFormat;\n if (dimensions !== undefined) body.dimensions = dimensions;\n return this.transport.request('POST', '/openai/embeddings', { json: body });\n }\n}\n\nexport class OpenAI {\n readonly chat: ChatNamespace;\n readonly responses: Responses;\n readonly images: Images;\n readonly embeddings: Embeddings;\n\n constructor(transport: Transport) {\n this.chat = new ChatNamespace(transport);\n this.responses = new Responses(transport);\n this.images = new Images(transport);\n this.embeddings = new Embeddings(transport);\n }\n}\n","/** Top-level AceDataCloud client for TypeScript. */\n\nimport { Transport, TransportOptions } from './runtime/transport';\nimport type { PaymentHandler } from './runtime/payment';\nimport { AiChat } from './resources/aichat';\nimport { Chat } from './resources/chat';\nimport { Images } from './resources/images';\nimport { Audio } from './resources/audio';\nimport { Video } from './resources/video';\nimport { Search } from './resources/search';\nimport { Tasks } from './resources/tasks';\nimport { Files } from './resources/files';\nimport { Platform } from './resources/platform';\nimport { OpenAI } from './resources/openai';\n\nexport interface AceDataCloudOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional payment handler invoked when the API returns `402 Payment\n * Required`. Use `createX402PaymentHandler` from\n * `@acedatacloud/x402-client` to enable on-chain payments via X402.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class AceDataCloud {\n readonly aichat: AiChat;\n readonly chat: Chat;\n readonly images: Images;\n readonly audio: Audio;\n readonly video: Video;\n readonly search: Search;\n readonly tasks: Tasks;\n readonly files: Files;\n readonly platform: Platform;\n readonly openai: OpenAI;\n\n private transport: Transport;\n\n constructor(opts: AceDataCloudOptions = {}) {\n this.transport = new Transport({\n apiToken: opts.apiToken,\n baseURL: opts.baseURL,\n platformBaseURL: opts.platformBaseURL,\n timeout: opts.timeout,\n maxRetries: opts.maxRetries,\n headers: opts.headers,\n paymentHandler: opts.paymentHandler,\n });\n\n this.aichat = new AiChat(this.transport);\n this.chat = new Chat(this.transport);\n this.images = new Images(this.transport);\n this.audio = new Audio(this.transport);\n this.video = new Video(this.transport);\n this.search = new Search(this.transport);\n this.tasks = new Tasks(this.transport);\n this.files = new Files(this.transport);\n this.platform = new Platform(this.transport);\n this.openai = new OpenAI(this.transport);\n }\n}\n"],"mappings":"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","names":["path","Images"]}
1
+ {"version":3,"sources":["../src/runtime/errors.ts","../src/runtime/transport.ts","../src/resources/aichat.ts","../src/resources/chat.ts","../src/runtime/tasks.ts","../src/resources/images.ts","../src/resources/audio.ts","../src/resources/video.ts","../src/resources/search.ts","../src/resources/tasks.ts","../src/resources/files.ts","../src/resources/platform.ts","../src/resources/openai.ts","../src/client.ts"],"sourcesContent":["/** AceDataCloud SDK errors. */\n\nexport class AceDataCloudError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AceDataCloudError';\n }\n}\n\nexport class TransportError extends AceDataCloudError {\n constructor(message: string) {\n super(message);\n this.name = 'TransportError';\n }\n}\n\nexport class APIError extends AceDataCloudError {\n statusCode: number;\n code: string;\n traceId?: string;\n body: Record<string, unknown>;\n\n constructor(opts: {\n message: string;\n statusCode: number;\n code: string;\n traceId?: string;\n body?: Record<string, unknown>;\n }) {\n super(opts.message);\n this.name = 'APIError';\n this.statusCode = opts.statusCode;\n this.code = opts.code;\n this.traceId = opts.traceId;\n this.body = opts.body ?? {};\n }\n}\n\nexport class AuthenticationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'AuthenticationError';\n }\n}\n\nexport class TokenMismatchError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TokenMismatchError';\n }\n}\n\nexport class RateLimitError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'RateLimitError';\n }\n}\n\nexport class ValidationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ValidationError';\n }\n}\n\nexport class InsufficientBalanceError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'InsufficientBalanceError';\n }\n}\n\nexport class ResourceDisabledError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ResourceDisabledError';\n }\n}\n\nexport class ModerationError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'ModerationError';\n }\n}\n\nexport class TimeoutError extends APIError {\n constructor(opts: ConstructorParameters<typeof APIError>[0]) {\n super(opts);\n this.name = 'TimeoutError';\n }\n}\n","/** HTTP transport for AceDataCloud SDK. Uses native fetch (Node 18+). */\n\nimport {\n APIError,\n AuthenticationError,\n InsufficientBalanceError,\n ModerationError,\n RateLimitError,\n ResourceDisabledError,\n TimeoutError,\n TokenMismatchError,\n TransportError,\n ValidationError,\n} from './errors';\nimport type {\n PaymentHandler,\n PaymentRequiredBody,\n} from './payment';\n\nconst ERROR_CODE_MAP: Record<string, typeof APIError> = {\n invalid_token: AuthenticationError,\n token_expired: AuthenticationError,\n no_token: AuthenticationError,\n token_mismatched: TokenMismatchError,\n used_up: InsufficientBalanceError,\n disabled: ResourceDisabledError,\n too_many_requests: RateLimitError,\n bad_request: ValidationError,\n};\n\nconst RETRY_STATUS_CODES = new Set([408, 409, 429, 500, 502, 503, 504]);\n\nexport function mapError(statusCode: number, body: Record<string, unknown>): APIError {\n // The server occasionally returns ``error`` as a bare string (e.g. x402\n // facilitator diagnostics) or omits/nulls it entirely. Normalize to an\n // object so downstream property access is always safe and the message\n // is preserved verbatim.\n let errorData: Record<string, unknown>;\n if (typeof body.error === 'string') {\n errorData = { message: body.error };\n } else if (body.error && typeof body.error === 'object' && !Array.isArray(body.error)) {\n errorData = body.error as Record<string, unknown>;\n } else {\n errorData = {};\n }\n const code = (errorData.code ?? '') as string;\n const message = (errorData.message ?? '') as string;\n const traceId = body.trace_id as string | undefined;\n\n let ErrorClass = ERROR_CODE_MAP[code];\n if (!ErrorClass) {\n if (statusCode === 403) ErrorClass = ModerationError;\n else if (statusCode === 401) ErrorClass = AuthenticationError;\n else if (statusCode === 429) ErrorClass = RateLimitError;\n else if (statusCode === 400) ErrorClass = ValidationError;\n else ErrorClass = APIError;\n }\n\n return new ErrorClass({ message, statusCode, code, traceId, body });\n}\n\nfunction backoffDelay(attempt: number): number {\n const base = Math.min(2 ** attempt, 8);\n return base + Math.random() * 0.5;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport interface TransportOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional handler invoked when a request returns `402 Payment Required`.\n * The handler receives the parsed `accepts` list and must return the extra\n * headers (typically `X-Payment`) to attach to the automatic retry.\n *\n * See `@acedatacloud/x402-client` for a drop-in implementation.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class Transport {\n private baseURL: string;\n private platformBaseURL: string;\n private timeout: number;\n private maxRetries: number;\n private headers: Record<string, string>;\n private paymentHandler?: PaymentHandler;\n\n constructor(opts: TransportOptions = {}) {\n const token = opts.apiToken ?? process.env.ACEDATACLOUD_API_TOKEN ?? '';\n if (!token && !opts.paymentHandler) {\n throw new AuthenticationError({\n message:\n 'apiToken is required (or provide a paymentHandler, e.g. from @acedatacloud/x402-client). ' +\n 'Pass it to the client or set ACEDATACLOUD_API_TOKEN.',\n statusCode: 0,\n code: 'no_token',\n });\n }\n this.baseURL = (opts.baseURL ?? 'https://api.acedata.cloud').replace(/\\/+$/, '');\n this.platformBaseURL = (opts.platformBaseURL ?? 'https://platform.acedata.cloud').replace(/\\/+$/, '');\n this.timeout = opts.timeout ?? 300_000;\n this.maxRetries = opts.maxRetries ?? 2;\n this.paymentHandler = opts.paymentHandler;\n const baseHeaders: Record<string, string> = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': 'acedatacloud-node/0.1.0',\n ...(opts.headers ?? {}),\n };\n if (token) {\n baseHeaders.authorization = `Bearer ${token}`;\n }\n this.headers = baseHeaders;\n }\n\n async request(\n method: string,\n path: string,\n opts: {\n json?: Record<string, unknown>;\n params?: Record<string, string>;\n platform?: boolean;\n timeout?: number;\n headers?: Record<string, string>;\n } = {}\n ): Promise<Record<string, unknown>> {\n const base = opts.platform ? this.platformBaseURL : this.baseURL;\n let url = `${base}${path}`;\n if (opts.params) {\n const qs = new URLSearchParams(opts.params).toString();\n url += `?${qs}`;\n }\n const headers = { ...this.headers, ...(opts.headers ?? {}) };\n const timeoutMs = opts.timeout ?? this.timeout;\n\n let lastError: Error | null = null;\n let paymentAttempted = false;\n let extraHeaders: Record<string, string> = {};\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n const resp = await fetch(url, {\n method,\n headers: { ...headers, ...extraHeaders },\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status === 402 && this.paymentHandler && !paymentAttempted) {\n const text = await resp.text();\n let body: PaymentRequiredBody;\n try {\n body = JSON.parse(text) as PaymentRequiredBody;\n } catch {\n throw mapError(402, { error: { code: 'invalid_402', message: text } });\n }\n if (!body.accepts?.length) {\n throw mapError(402, { error: { code: 'invalid_402', message: 'No payment requirements' } });\n }\n const result = await this.paymentHandler({\n url,\n method,\n body: opts.json,\n accepts: body.accepts,\n });\n extraHeaders = { ...extraHeaders, ...result.headers };\n paymentAttempted = true;\n continue;\n }\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n if (RETRY_STATUS_CODES.has(resp.status) && attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n throw mapError(resp.status, body);\n }\n\n return (await resp.json()) as Record<string, unknown>;\n } catch (err) {\n clearTimeout(timer);\n if (err instanceof APIError) throw err;\n lastError = err as Error;\n if (attempt < this.maxRetries) {\n await sleep(backoffDelay(attempt) * 1000);\n continue;\n }\n }\n }\n throw lastError ?? new TransportError('Request failed after retries');\n }\n\n async *requestStream(\n method: string,\n path: string,\n opts: { json?: Record<string, unknown>; timeout?: number } = {}\n ): AsyncGenerator<string, void, unknown> {\n const url = `${this.baseURL}${path}`;\n const headers = { ...this.headers, accept: 'text/event-stream' };\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n\n try {\n const resp = await fetch(url, {\n method,\n headers,\n body: opts.json ? JSON.stringify(opts.json) : undefined,\n signal: controller.signal,\n });\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let body: Record<string, unknown>;\n try {\n body = JSON.parse(text) as Record<string, unknown>;\n } catch {\n body = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, body);\n }\n\n if (!resp.body) throw new TransportError('No response body for stream');\n\n const reader = resp.body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split('\\n');\n buffer = lines.pop() ?? '';\n\n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const data = line.slice(6);\n if (data === '[DONE]') return;\n yield data;\n }\n }\n }\n } finally {\n clearTimeout(timer);\n }\n }\n\n async upload(\n path: string,\n fileData: Buffer | Uint8Array,\n filename: string,\n opts: { timeout?: number } = {}\n ): Promise<Record<string, unknown>> {\n const url = `${this.platformBaseURL}${path}`;\n const boundary = `----AceDataCloudBoundary${Date.now()}`;\n const headers = {\n ...this.headers,\n 'content-type': `multipart/form-data; boundary=${boundary}`,\n };\n delete (headers as Record<string, string>)['content-type'];\n\n const body = new FormData();\n body.append('file', new Blob([fileData]), filename);\n\n const authHeaders: Record<string, string> = {\n authorization: this.headers.authorization,\n 'user-agent': this.headers['user-agent'],\n };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), opts.timeout ?? this.timeout);\n try {\n const resp = await fetch(url, {\n method: 'POST',\n headers: authHeaders,\n body,\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.status >= 400) {\n const text = await resp.text();\n let respBody: Record<string, unknown>;\n try {\n respBody = JSON.parse(text) as Record<string, unknown>;\n } catch {\n respBody = { error: { code: 'unknown', message: text } };\n }\n throw mapError(resp.status, respBody);\n }\n return (await resp.json()) as Record<string, unknown>;\n } finally {\n clearTimeout(timer);\n }\n }\n}\n","/** AI Chat resources — aichat/conversations endpoint. */\n\nimport { Transport } from '../runtime/transport';\n\nexport type AiChatModel =\n | 'gpt-5.5'\n | 'gpt-5.5-pro'\n | 'gpt-5.4'\n | 'gpt-5.4-pro'\n | 'gpt-5.2'\n | 'gpt-5.1'\n | 'gpt-5.1-all'\n | 'gpt-5'\n | 'gpt-5-mini'\n | 'gpt-5-nano'\n | 'gpt-5-all'\n | 'gpt-4'\n | 'gpt-4-all'\n | 'gpt-4-turbo'\n | 'gpt-4-turbo-preview'\n | 'gpt-4-vision-preview'\n | 'gpt-4.1'\n | 'gpt-4.1-2025-04-14'\n | 'gpt-4.1-mini'\n | 'gpt-4.1-mini-2025-04-14'\n | 'gpt-4.1-nano'\n | 'gpt-4.1-nano-2025-04-14'\n | 'gpt-4.5-preview'\n | 'gpt-4.5-preview-2025-02-27'\n | 'gpt-4o'\n | 'gpt-4o-2024-05-13'\n | 'gpt-4o-2024-08-06'\n | 'gpt-4o-2024-11-20'\n | 'gpt-4o-all'\n | 'gpt-4o-image'\n | 'gpt-4o-mini'\n | 'gpt-4o-mini-2024-07-18'\n | 'gpt-4o-mini-search-preview'\n | 'gpt-4o-mini-search-preview-2025-03-11'\n | 'gpt-4o-search-preview'\n | 'gpt-4o-search-preview-2025-03-11'\n | 'o1'\n | 'o1-2024-12-17'\n | 'o1-all'\n | 'o1-mini'\n | 'o1-mini-2024-09-12'\n | 'o1-mini-all'\n | 'o1-preview'\n | 'o1-preview-2024-09-12'\n | 'o1-preview-all'\n | 'o1-pro'\n | 'o1-pro-2025-03-19'\n | 'o1-pro-all'\n | 'o3'\n | 'o3-2025-04-16'\n | 'o3-all'\n | 'o3-mini'\n | 'o3-mini-2025-01-31'\n | 'o3-mini-2025-01-31-high'\n | 'o3-mini-2025-01-31-low'\n | 'o3-mini-2025-01-31-medium'\n | 'o3-mini-all'\n | 'o3-mini-high'\n | 'o3-mini-high-all'\n | 'o3-mini-low'\n | 'o3-mini-medium'\n | 'o3-pro'\n | 'o3-pro-2025-06-10'\n | 'o4-mini'\n | 'o4-mini-2025-04-16'\n | 'o4-mini-all'\n | 'o4-mini-high-all'\n | 'deepseek-r1'\n | 'deepseek-r1-0528'\n | 'deepseek-v3'\n | 'deepseek-v3-250324'\n | 'grok-3'\n | 'glm-5.1'\n | 'glm-4.7'\n | 'glm-4.6'\n | 'glm-4.5-air'\n | 'glm-3-turbo'\n | (string & {});\n\nexport class AiChat {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: AiChatModel;\n question: string;\n id?: string;\n preset?: string;\n stateful?: boolean;\n references?: string[];\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, question, id, preset, stateful, references, ...rest } = opts;\n const body: Record<string, unknown> = { model, question, ...rest };\n if (id !== undefined) body.id = id;\n if (preset !== undefined) body.preset = preset;\n if (stateful !== undefined) body.stateful = stateful;\n if (references !== undefined) body.references = references;\n return this.transport.request('POST', '/aichat/conversations', { json: body });\n }\n}\n","/** Chat resources — native provider APIs (Claude Messages). */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Messages {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n maxTokens?: number;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, maxTokens = 4096, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, max_tokens: maxTokens, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.stream(body);\n }\n return this.transport.request('POST', '/v1/messages', { json: body });\n }\n\n private async *stream(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/v1/messages', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n\n async countTokens(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, messages, ...rest } = opts;\n return this.transport.request('POST', '/v1/messages/count_tokens', {\n json: { model, messages, ...rest },\n });\n }\n}\n\nexport class Chat {\n readonly messages: Messages;\n\n constructor(transport: Transport) {\n this.messages = new Messages(transport);\n }\n}\n","/** Task polling abstraction. */\n\nimport { Transport } from './transport';\n\nexport interface TaskHandleOptions {\n pollInterval?: number;\n maxWait?: number;\n}\n\nexport class TaskHandle {\n readonly id: string;\n private pollEndpoint: string;\n private transport: Transport;\n private _result: Record<string, unknown> | null = null;\n\n constructor(taskId: string, pollEndpoint: string, transport: Transport) {\n this.id = taskId;\n this.pollEndpoint = pollEndpoint;\n this.transport = transport;\n }\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('POST', this.pollEndpoint, {\n json: { id: this.id, action: 'retrieve' },\n });\n }\n\n async isCompleted(): Promise<boolean> {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n return status === 'succeeded' || status === 'failed';\n }\n\n async wait(opts: TaskHandleOptions = {}): Promise<Record<string, unknown>> {\n const pollInterval = opts.pollInterval ?? 3000;\n const maxWait = opts.maxWait ?? 600_000;\n const start = Date.now();\n\n while (Date.now() - start < maxWait) {\n const state = await this.get();\n const response = (state.response ?? state) as Record<string, unknown>;\n const status = response.status as string;\n\n if (status === 'succeeded' || status === 'failed') {\n this._result = state;\n return state;\n }\n await new Promise((resolve) => setTimeout(resolve, pollInterval));\n }\n throw new Error(`Task ${this.id} did not complete within ${maxWait}ms`);\n }\n\n get result(): Record<string, unknown> | null {\n return this._result;\n }\n}\n","/** Image generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type ImageProvider = 'nano-banana' | 'midjourney' | 'flux' | 'seedream' | (string & {});\n\nexport class Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: ImageProvider;\n model?: string;\n negativePrompt?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'nano-banana', model, negativePrompt, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (negativePrompt !== undefined) body.negative_prompt = negativePrompt;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const endpoint = provider === 'midjourney' ? '/midjourney/imagine' : `/${provider}/images`;\n const result = await this.transport.request('POST', endpoint, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Audio/music generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type AudioProvider = 'suno' | 'producer' | 'fish' | (string & {});\n\nexport class Audio {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: AudioProvider;\n model?: string;\n tags?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'suno', model, tags, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (tags !== undefined) body.tags = tags;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/audios`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Video generation resources. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nexport type VideoProvider = 'sora' | 'luma' | 'veo' | 'kling' | 'hailuo' | 'seedance' | 'wan' | 'pika' | 'pixverse' | (string & {});\n\nexport class Video {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n provider?: VideoProvider;\n model?: string;\n imageUrl?: string;\n callbackUrl?: string;\n wait?: boolean;\n pollInterval?: number;\n maxWait?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | TaskHandle> {\n const { prompt, provider = 'sora', model, imageUrl, callbackUrl, wait: shouldWait, pollInterval, maxWait, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, ...rest };\n if (model !== undefined) body.model = model;\n if (imageUrl !== undefined) body.image_url = imageUrl;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n\n const result = await this.transport.request('POST', `/${provider}/videos`, { json: body });\n const taskId = result.task_id as string | undefined;\n\n if (!taskId || (result.data && !shouldWait)) return result;\n\n const handle = new TaskHandle(taskId, `/${provider}/tasks`, this.transport);\n if (shouldWait) return handle.wait({ pollInterval, maxWait });\n return handle;\n }\n}\n","/** Search resources. */\n\nimport { Transport } from '../runtime/transport';\n\nexport class Search {\n constructor(private transport: Transport) {}\n\n async google(opts: {\n query: string;\n type?: string;\n country?: string;\n language?: string;\n page?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { query, type = 'search', country, language, page, ...rest } = opts;\n const body: Record<string, unknown> = { query, type, ...rest };\n if (country !== undefined) body.country = country;\n if (language !== undefined) body.language = language;\n if (page !== undefined) body.page = page;\n return this.transport.request('POST', '/serp/google', { json: body });\n }\n}\n","/** Cross-service task retrieval. */\n\nimport { Transport } from '../runtime/transport';\nimport { TaskHandle } from '../runtime/tasks';\n\nconst SERVICE_TASK_ENDPOINTS: Record<string, string> = {\n suno: '/suno/tasks',\n producer: '/producer/tasks',\n fish: '/fish/tasks',\n 'nano-banana': '/nano-banana/tasks',\n seedream: '/seedream/tasks',\n seedance: '/seedance/tasks',\n sora: '/sora/tasks',\n midjourney: '/midjourney/tasks',\n luma: '/luma/tasks',\n veo: '/veo/tasks',\n flux: '/flux/tasks',\n kling: '/kling/tasks',\n hailuo: '/hailuo/tasks',\n wan: '/wan/tasks',\n pika: '/pika/tasks',\n pixverse: '/pixverse/tasks',\n};\n\nexport class Tasks {\n constructor(private transport: Transport) {}\n\n async get(taskId: string, opts: { service?: string } = {}): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n return this.transport.request('POST', endpoint, {\n json: { id: taskId, action: 'retrieve' },\n });\n }\n\n async wait(\n taskId: string,\n opts: { service?: string; pollInterval?: number; maxWait?: number } = {}\n ): Promise<Record<string, unknown>> {\n const service = opts.service ?? 'suno';\n const endpoint = SERVICE_TASK_ENDPOINTS[service] ?? `/${service}/tasks`;\n const handle = new TaskHandle(taskId, endpoint, this.transport);\n return handle.wait({ pollInterval: opts.pollInterval, maxWait: opts.maxWait });\n }\n}\n","/** File upload resources. */\n\nimport { Transport } from '../runtime/transport';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nexport class Files {\n constructor(private transport: Transport) {}\n\n async upload(\n file: string | Buffer | Uint8Array,\n opts: { filename?: string } = {}\n ): Promise<Record<string, unknown>> {\n let data: Buffer | Uint8Array;\n let filename: string;\n\n if (typeof file === 'string') {\n data = fs.readFileSync(file);\n filename = opts.filename ?? path.basename(file);\n } else {\n data = file;\n filename = opts.filename ?? 'upload';\n }\n\n return this.transport.upload('/api/v1/files/', data, filename);\n }\n}\n","/** Management-plane resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Applications {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/applications/', { params, platform: true });\n }\n\n async create(opts: { serviceId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { serviceId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/applications/', {\n json: { service_id: serviceId, ...rest },\n platform: true,\n });\n }\n\n async get(applicationId: string): Promise<Record<string, unknown>> {\n return this.transport.request('GET', `/api/v1/applications/${applicationId}/`, { platform: true });\n }\n}\n\nclass Credentials {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/credentials/', { params, platform: true });\n }\n\n async create(opts: { applicationId: string; [key: string]: unknown }): Promise<Record<string, unknown>> {\n const { applicationId, ...rest } = opts;\n return this.transport.request('POST', '/api/v1/credentials/', {\n json: { application_id: applicationId, ...rest },\n platform: true,\n });\n }\n\n async rotate(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('POST', `/api/v1/credentials/${credentialId}/rotate/`, { platform: true });\n }\n\n async delete(credentialId: string): Promise<Record<string, unknown>> {\n return this.transport.request('DELETE', `/api/v1/credentials/${credentialId}/`, { platform: true });\n }\n}\n\nclass Models {\n constructor(private transport: Transport) {}\n\n async list(params?: Record<string, string>): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/models/', { params, platform: true });\n }\n}\n\nclass Config {\n constructor(private transport: Transport) {}\n\n async get(): Promise<Record<string, unknown>> {\n return this.transport.request('GET', '/api/v1/config/', { platform: true });\n }\n}\n\nexport class Platform {\n readonly applications: Applications;\n readonly credentials: Credentials;\n readonly models: Models;\n readonly config: Config;\n\n constructor(transport: Transport) {\n this.applications = new Applications(transport);\n this.credentials = new Credentials(transport);\n this.models = new Models(transport);\n this.config = new Config(transport);\n }\n}\n","/** OpenAI-compatible facade resources. */\n\nimport { Transport } from '../runtime/transport';\n\nclass Completions {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n messages: Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, messages, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, messages, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/chat/completions', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/chat/completions', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass ChatNamespace {\n readonly completions: Completions;\n constructor(transport: Transport) {\n this.completions = new Completions(transport);\n }\n}\n\nclass Responses {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: false;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream: true;\n [key: string]: unknown;\n }): Promise<AsyncGenerator<Record<string, unknown>>>;\n async create(opts: {\n model: string;\n input: string | Array<Record<string, unknown>>;\n stream?: boolean;\n [key: string]: unknown;\n }): Promise<Record<string, unknown> | AsyncGenerator<Record<string, unknown>>> {\n const { model, input, stream, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n\n if (stream) {\n body.stream = true;\n return this.streamResponse(body);\n }\n return this.transport.request('POST', '/openai/responses', { json: body });\n }\n\n private async *streamResponse(body: Record<string, unknown>): AsyncGenerator<Record<string, unknown>> {\n for await (const chunk of this.transport.requestStream('POST', '/openai/responses', { json: body })) {\n yield JSON.parse(chunk);\n }\n }\n}\n\nclass Images {\n constructor(private transport: Transport) {}\n\n async generate(opts: {\n prompt: string;\n model: string;\n background?: string;\n moderation?: string;\n n?: number;\n outputCompression?: number;\n outputFormat?: string;\n partialImages?: number;\n size?: string;\n quality?: string;\n responseFormat?: string;\n style?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { prompt, model, outputCompression, outputFormat, partialImages, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { prompt, model, ...rest };\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (partialImages !== undefined) body.partial_images = partialImages;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/generations', { json: body });\n }\n\n async edit(opts: {\n image: string | string[];\n prompt: string;\n model?: string;\n n?: number;\n background?: string;\n inputFidelity?: string;\n mask?: string;\n outputFormat?: string;\n outputCompression?: number;\n partialImages?: number;\n quality?: string;\n size?: string;\n responseFormat?: string;\n callbackUrl?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { image, prompt, inputFidelity, mask, outputFormat, outputCompression, partialImages, responseFormat, callbackUrl, ...rest } = opts;\n const body: Record<string, unknown> = { image, prompt, ...rest };\n if (inputFidelity !== undefined) body.input_fidelity = inputFidelity;\n if (mask !== undefined) body.mask = mask;\n if (outputFormat !== undefined) body.output_format = outputFormat;\n if (outputCompression !== undefined) body.output_compression = outputCompression;\n if (partialImages !== undefined) body.partial_images = partialImages;\n if (responseFormat !== undefined) body.response_format = responseFormat;\n if (callbackUrl !== undefined) body.callback_url = callbackUrl;\n return this.transport.request('POST', '/openai/images/edits', { json: body });\n }\n}\n\nclass Embeddings {\n constructor(private transport: Transport) {}\n\n async create(opts: {\n model: string;\n input: string | string[];\n encodingFormat?: string;\n dimensions?: number;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { model, input, encodingFormat, dimensions, ...rest } = opts;\n const body: Record<string, unknown> = { model, input, ...rest };\n if (encodingFormat !== undefined) body.encoding_format = encodingFormat;\n if (dimensions !== undefined) body.dimensions = dimensions;\n return this.transport.request('POST', '/openai/embeddings', { json: body });\n }\n}\n\nclass Tasks {\n constructor(private transport: Transport) {}\n\n async retrieve(opts: {\n id?: string;\n traceId?: string;\n [key: string]: unknown;\n }): Promise<Record<string, unknown>> {\n const { id, traceId, ...rest } = opts;\n const body: Record<string, unknown> = { action: 'retrieve', ...rest };\n if (id !== undefined) body.id = id;\n if (traceId !== undefined) body.trace_id = traceId;\n return this.transport.request('POST', '/openai/tasks', { json: body });\n }\n\n async retrieveBatch(opts: {\n ids?: string[];\n traceIds?: string[];\n applicationId?: string;\n userId?: string;\n type?: string;\n offset?: number;\n limit?: number;\n createdAtMin?: number;\n createdAtMax?: number;\n [key: string]: unknown;\n } = {}): Promise<Record<string, unknown>> {\n const { ids, traceIds, applicationId, userId, type, offset, limit, createdAtMin, createdAtMax, ...rest } = opts;\n const body: Record<string, unknown> = { action: 'retrieve_batch', ...rest };\n if (ids !== undefined) body.ids = ids;\n if (traceIds !== undefined) body.trace_ids = traceIds;\n if (applicationId !== undefined) body.application_id = applicationId;\n if (userId !== undefined) body.user_id = userId;\n if (type !== undefined) body.type = type;\n if (offset !== undefined) body.offset = offset;\n if (limit !== undefined) body.limit = limit;\n if (createdAtMin !== undefined) body.created_at_min = createdAtMin;\n if (createdAtMax !== undefined) body.created_at_max = createdAtMax;\n return this.transport.request('POST', '/openai/tasks', { json: body });\n }\n}\n\nexport class OpenAI {\n readonly chat: ChatNamespace;\n readonly responses: Responses;\n readonly images: Images;\n readonly embeddings: Embeddings;\n readonly tasks: Tasks;\n\n constructor(transport: Transport) {\n this.chat = new ChatNamespace(transport);\n this.responses = new Responses(transport);\n this.images = new Images(transport);\n this.embeddings = new Embeddings(transport);\n this.tasks = new Tasks(transport);\n }\n}\n","/** Top-level AceDataCloud client for TypeScript. */\n\nimport { Transport, TransportOptions } from './runtime/transport';\nimport type { PaymentHandler } from './runtime/payment';\nimport { AiChat } from './resources/aichat';\nimport { Chat } from './resources/chat';\nimport { Images } from './resources/images';\nimport { Audio } from './resources/audio';\nimport { Video } from './resources/video';\nimport { Search } from './resources/search';\nimport { Tasks } from './resources/tasks';\nimport { Files } from './resources/files';\nimport { Platform } from './resources/platform';\nimport { OpenAI } from './resources/openai';\n\nexport interface AceDataCloudOptions {\n apiToken?: string;\n baseURL?: string;\n platformBaseURL?: string;\n timeout?: number;\n maxRetries?: number;\n headers?: Record<string, string>;\n /**\n * Optional payment handler invoked when the API returns `402 Payment\n * Required`. Use `createX402PaymentHandler` from\n * `@acedatacloud/x402-client` to enable on-chain payments via X402.\n */\n paymentHandler?: PaymentHandler;\n}\n\nexport class AceDataCloud {\n readonly aichat: AiChat;\n readonly chat: Chat;\n readonly images: Images;\n readonly audio: Audio;\n readonly video: Video;\n readonly search: Search;\n readonly tasks: Tasks;\n readonly files: Files;\n readonly platform: Platform;\n readonly openai: OpenAI;\n\n private transport: Transport;\n\n constructor(opts: AceDataCloudOptions = {}) {\n this.transport = new Transport({\n apiToken: opts.apiToken,\n baseURL: opts.baseURL,\n platformBaseURL: opts.platformBaseURL,\n timeout: opts.timeout,\n maxRetries: opts.maxRetries,\n headers: opts.headers,\n paymentHandler: opts.paymentHandler,\n });\n\n this.aichat = new AiChat(this.transport);\n this.chat = new Chat(this.transport);\n this.images = new Images(this.transport);\n this.audio = new Audio(this.transport);\n this.video = new Video(this.transport);\n this.search = new Search(this.transport);\n this.tasks = new Tasks(this.transport);\n this.files = new Files(this.transport);\n this.platform = new Platform(this.transport);\n this.openai = new OpenAI(this.transport);\n }\n}\n"],"mappings":"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","names":["path","Images","Tasks"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acedatacloud/sdk",
3
- "version": "2026.426.3",
3
+ "version": "2026.503.0",
4
4
  "description": "Official TypeScript SDK for AceDataCloud — AI-powered data services",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -121,19 +121,23 @@ class Images {
121
121
  n?: number;
122
122
  background?: string;
123
123
  inputFidelity?: string;
124
+ mask?: string;
124
125
  outputFormat?: string;
125
126
  outputCompression?: number;
127
+ partialImages?: number;
126
128
  quality?: string;
127
129
  size?: string;
128
130
  responseFormat?: string;
129
131
  callbackUrl?: string;
130
132
  [key: string]: unknown;
131
133
  }): Promise<Record<string, unknown>> {
132
- const { image, prompt, inputFidelity, outputFormat, outputCompression, responseFormat, callbackUrl, ...rest } = opts;
134
+ const { image, prompt, inputFidelity, mask, outputFormat, outputCompression, partialImages, responseFormat, callbackUrl, ...rest } = opts;
133
135
  const body: Record<string, unknown> = { image, prompt, ...rest };
134
136
  if (inputFidelity !== undefined) body.input_fidelity = inputFidelity;
137
+ if (mask !== undefined) body.mask = mask;
135
138
  if (outputFormat !== undefined) body.output_format = outputFormat;
136
139
  if (outputCompression !== undefined) body.output_compression = outputCompression;
140
+ if (partialImages !== undefined) body.partial_images = partialImages;
137
141
  if (responseFormat !== undefined) body.response_format = responseFormat;
138
142
  if (callbackUrl !== undefined) body.callback_url = callbackUrl;
139
143
  return this.transport.request('POST', '/openai/images/edits', { json: body });
@@ -158,16 +162,60 @@ class Embeddings {
158
162
  }
159
163
  }
160
164
 
165
+ class Tasks {
166
+ constructor(private transport: Transport) {}
167
+
168
+ async retrieve(opts: {
169
+ id?: string;
170
+ traceId?: string;
171
+ [key: string]: unknown;
172
+ }): Promise<Record<string, unknown>> {
173
+ const { id, traceId, ...rest } = opts;
174
+ const body: Record<string, unknown> = { action: 'retrieve', ...rest };
175
+ if (id !== undefined) body.id = id;
176
+ if (traceId !== undefined) body.trace_id = traceId;
177
+ return this.transport.request('POST', '/openai/tasks', { json: body });
178
+ }
179
+
180
+ async retrieveBatch(opts: {
181
+ ids?: string[];
182
+ traceIds?: string[];
183
+ applicationId?: string;
184
+ userId?: string;
185
+ type?: string;
186
+ offset?: number;
187
+ limit?: number;
188
+ createdAtMin?: number;
189
+ createdAtMax?: number;
190
+ [key: string]: unknown;
191
+ } = {}): Promise<Record<string, unknown>> {
192
+ const { ids, traceIds, applicationId, userId, type, offset, limit, createdAtMin, createdAtMax, ...rest } = opts;
193
+ const body: Record<string, unknown> = { action: 'retrieve_batch', ...rest };
194
+ if (ids !== undefined) body.ids = ids;
195
+ if (traceIds !== undefined) body.trace_ids = traceIds;
196
+ if (applicationId !== undefined) body.application_id = applicationId;
197
+ if (userId !== undefined) body.user_id = userId;
198
+ if (type !== undefined) body.type = type;
199
+ if (offset !== undefined) body.offset = offset;
200
+ if (limit !== undefined) body.limit = limit;
201
+ if (createdAtMin !== undefined) body.created_at_min = createdAtMin;
202
+ if (createdAtMax !== undefined) body.created_at_max = createdAtMax;
203
+ return this.transport.request('POST', '/openai/tasks', { json: body });
204
+ }
205
+ }
206
+
161
207
  export class OpenAI {
162
208
  readonly chat: ChatNamespace;
163
209
  readonly responses: Responses;
164
210
  readonly images: Images;
165
211
  readonly embeddings: Embeddings;
212
+ readonly tasks: Tasks;
166
213
 
167
214
  constructor(transport: Transport) {
168
215
  this.chat = new ChatNamespace(transport);
169
216
  this.responses = new Responses(transport);
170
217
  this.images = new Images(transport);
171
218
  this.embeddings = new Embeddings(transport);
219
+ this.tasks = new Tasks(transport);
172
220
  }
173
221
  }