@bimpeai/sdk 0.0.0-beta-20260606071952
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/LICENSE +21 -0
- package/README.md +192 -0
- package/dist/index.cjs +803 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +478 -0
- package/dist/index.d.ts +478 -0
- package/dist/index.js +774 -0
- package/dist/index.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/version.ts","../src/core/envelope.ts","../src/core/errors.ts","../src/core/headers.ts","../src/core/request-id.ts","../src/core/idempotency.ts","../src/core/retries.ts","../src/core/http-client.ts","../src/resources/agents/actions.ts","../src/core/pagination.ts","../src/resources/agents/channels.ts","../src/resources/agents/conversation-flows.ts","../src/resources/agents/integrations.ts","../src/resources/agents/knowledge-bases.ts","../src/resources/agents/agents.ts","../src/resources/calls/calls.ts","../src/resources/conversations/messages.ts","../src/resources/conversations/conversations.ts","../src/resources/workflows/workflows.ts","../src/client.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export const VERSION = '0.0.0-beta-20260606071952';\n","import type { PaginationMeta } from './types';\n\nexport interface Unwrapped<T> {\n readonly data: T;\n readonly meta: PaginationMeta | null;\n}\n\ninterface Envelope {\n message: string;\n data: unknown;\n meta?: PaginationMeta;\n}\n\nexport function unwrapEnvelope<T>(body: unknown): Unwrapped<T> {\n if (!isEnvelope(body)) {\n throw new TypeError('Response is not a BimpeAI envelope (missing `message` field)');\n }\n return {\n data: body.data as T,\n meta: body.meta ?? null,\n };\n}\n\nfunction isEnvelope(value: unknown): value is Envelope {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'message' in value &&\n typeof (value as { message: unknown }).message === 'string'\n );\n}\n","import type { ErrorBody } from './types';\n\nexport class BimpeAIError extends Error {\n constructor(message: string) {\n super(message);\n this.name = new.target.name;\n }\n}\n\nexport class UserError extends BimpeAIError {}\n\nexport class ConnectionError extends BimpeAIError {\n override readonly cause?: unknown;\n constructor(message: string, cause?: unknown) {\n super(message);\n this.cause = cause;\n }\n}\n\nexport class ConnectionTimeoutError extends ConnectionError {}\n\nexport interface ApiErrorInit {\n message: string;\n status: number;\n code: string | null;\n requestId: string | null;\n headers: Headers;\n body: unknown;\n}\n\nexport class ApiError extends BimpeAIError {\n readonly status: number;\n readonly code: string | null;\n readonly requestId: string | null;\n readonly headers: Headers;\n readonly body: unknown;\n\n constructor(init: ApiErrorInit) {\n super(init.message);\n this.status = init.status;\n this.code = init.code;\n this.requestId = init.requestId;\n this.headers = init.headers;\n this.body = init.body;\n }\n}\n\nexport class BadRequestError extends ApiError {}\n\nexport interface FieldError {\n readonly path: string;\n readonly message: string;\n}\n\nexport interface ValidationErrorInit extends ApiErrorInit {\n fieldErrors: readonly FieldError[];\n}\n\nexport class ValidationError extends BadRequestError {\n readonly fieldErrors: readonly FieldError[];\n constructor(init: ValidationErrorInit) {\n super(init);\n this.fieldErrors = init.fieldErrors;\n }\n}\n\nexport class AuthenticationError extends ApiError {}\nexport class PermissionDeniedError extends ApiError {}\nexport class NotFoundError extends ApiError {}\nexport class ConflictError extends ApiError {}\n\nexport interface RateLimitErrorInit extends ApiErrorInit {\n retryAfter?: number | null;\n limit?: number | null;\n remaining?: number | null;\n resetAt?: Date | null;\n}\n\nexport class RateLimitError extends ApiError {\n readonly retryAfter: number | null;\n readonly limit: number | null;\n readonly remaining: number | null;\n readonly resetAt: Date | null;\n constructor(init: RateLimitErrorInit) {\n super(init);\n this.retryAfter = init.retryAfter ?? null;\n this.limit = init.limit ?? null;\n this.remaining = init.remaining ?? null;\n this.resetAt = init.resetAt ?? null;\n }\n}\n\nexport class InternalServerError extends ApiError {}\nexport class NotImplementedError extends ApiError {}\n\nexport function mapApiError(status: number, body: unknown, headers: Headers): ApiError {\n const errBody = (body ?? {}) as ErrorBody;\n const message = normaliseMessage(errBody.message) ?? `HTTP ${status}`;\n const code = errBody.code ?? null;\n const requestId = headers.get('x-request-id') ?? errBody.request_id ?? null;\n const init: ApiErrorInit = { message, status, code, requestId, headers, body };\n\n if (status === 400) {\n if (code === 'validation_error') {\n return new ValidationError({ ...init, fieldErrors: parseFieldErrors(errBody.message) });\n }\n return new BadRequestError(init);\n }\n if (status === 401) return new AuthenticationError(init);\n if (status === 403) return new PermissionDeniedError(init);\n if (status === 404) return new NotFoundError(init);\n if (status === 409) return new ConflictError(init);\n if (status === 429) {\n return new RateLimitError({\n ...init,\n retryAfter: parseRetryAfter(headers.get('retry-after')),\n limit: numOrNull(headers.get('x-ratelimit-limit')),\n remaining: numOrNull(headers.get('x-ratelimit-remaining')),\n resetAt: parseReset(headers.get('x-ratelimit-reset')),\n });\n }\n if (status === 501) return new NotImplementedError(init);\n if (status >= 500) return new InternalServerError(init);\n return new ApiError(init);\n}\n\nfunction normaliseMessage(m: ErrorBody['message']): string | null {\n if (Array.isArray(m)) return m.join('; ');\n if (typeof m === 'string') return m;\n return null;\n}\n\nfunction parseFieldErrors(m: ErrorBody['message']): FieldError[] {\n if (!Array.isArray(m)) return [];\n const out: FieldError[] = [];\n for (const entry of m) {\n if (typeof entry !== 'string') continue;\n const idx = entry.indexOf(':');\n if (idx === -1) out.push({ path: '', message: entry });\n else out.push({ path: entry.slice(0, idx).trim(), message: entry.slice(idx + 1).trim() });\n }\n return out;\n}\n\nfunction parseRetryAfter(raw: string | null): number | null {\n if (!raw) return null;\n const asNumber = Number(raw);\n if (Number.isFinite(asNumber)) return Math.max(0, Math.floor(asNumber));\n const asDate = Date.parse(raw);\n if (Number.isFinite(asDate)) return Math.max(0, Math.ceil((asDate - Date.now()) / 1000));\n return null;\n}\n\nfunction parseReset(raw: string | null): Date | null {\n if (!raw) return null;\n const seconds = Number(raw);\n if (!Number.isFinite(seconds)) return null;\n return new Date(seconds * 1000);\n}\n\nfunction numOrNull(raw: string | null): number | null {\n if (raw === null) return null;\n const n = Number(raw);\n return Number.isFinite(n) ? n : null;\n}\n","export type HeaderInput = Headers | Record<string, string> | undefined;\n\nexport function mergeHeaders(...sources: HeaderInput[]): Headers {\n const out = new Headers();\n for (const src of sources) {\n if (!src) continue;\n if (src instanceof Headers) {\n src.forEach((value, key) => out.set(key, value));\n } else {\n for (const [key, value] of Object.entries(src)) out.set(key, value);\n }\n }\n return out;\n}\n","const HAS_RANDOM_UUID =\n typeof globalThis.crypto !== 'undefined' && typeof globalThis.crypto.randomUUID === 'function';\n\nexport function generateRequestId(): string {\n if (HAS_RANDOM_UUID) return globalThis.crypto.randomUUID();\n return fallbackUuidV4();\n}\n\nfunction fallbackUuidV4(): string {\n const bytes = new Uint8Array(16);\n if (typeof globalThis.crypto?.getRandomValues === 'function') {\n globalThis.crypto.getRandomValues(bytes);\n } else {\n for (let i = 0; i < 16; i += 1) bytes[i] = Math.floor(Math.random() * 256);\n }\n bytes[6] = ((bytes[6] ?? 0) & 0x0f) | 0x40;\n bytes[8] = ((bytes[8] ?? 0) & 0x3f) | 0x80;\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, '0'));\n return `${hex.slice(0, 4).join('')}-${hex.slice(4, 6).join('')}-${hex.slice(6, 8).join('')}-${hex.slice(8, 10).join('')}-${hex.slice(10, 16).join('')}`;\n}\n","import { generateRequestId } from './request-id';\n\nexport interface ResolveIdempotencyArgs {\n supplied: string | undefined;\n maxRetries: number;\n}\n\nexport function resolveIdempotencyKey({\n supplied,\n maxRetries,\n}: ResolveIdempotencyArgs): string | null {\n if (supplied) return supplied;\n if (maxRetries > 0) return generateRequestId();\n return null;\n}\n","import {\n ApiError,\n BimpeAIError,\n ConflictError,\n ConnectionError,\n ConnectionTimeoutError,\n NotImplementedError,\n} from './errors';\n\nexport const DEFAULT_BASE_MS = 500;\nexport const DEFAULT_MAX_BACKOFF_MS = 8000;\n\nconst RETRYABLE_STATUSES = new Set([408, 429]);\n\nexport function shouldRetry(error: unknown, attempt: number, maxRetries: number): boolean {\n if (attempt >= maxRetries) return false;\n if (!(error instanceof BimpeAIError)) return false;\n if (error instanceof ConnectionTimeoutError || error instanceof ConnectionError) return true;\n if (error instanceof NotImplementedError) return false;\n if (error instanceof ConflictError) return false;\n if (error instanceof ApiError) {\n if (RETRYABLE_STATUSES.has(error.status)) return true;\n if (error.status >= 500 && error.status !== 501) return true;\n }\n return false;\n}\n\nexport function computeBackoff(\n attempt: number,\n baseMs: number = DEFAULT_BASE_MS,\n maxMs: number = DEFAULT_MAX_BACKOFF_MS,\n retryAfterMs?: number,\n): number {\n if (typeof retryAfterMs === 'number' && retryAfterMs >= 0) {\n return Math.min(retryAfterMs, maxMs);\n }\n const exponential = Math.min(maxMs, baseMs * 2 ** attempt);\n const jitter = 0.5 + Math.random() * 0.5;\n return Math.floor(exponential * jitter);\n}\n","import { VERSION } from '../version';\nimport { unwrapEnvelope } from './envelope';\nimport {\n ApiError,\n BimpeAIError,\n ConnectionError,\n ConnectionTimeoutError,\n UserError,\n mapApiError,\n} from './errors';\nimport { mergeHeaders } from './headers';\nimport { resolveIdempotencyKey } from './idempotency';\nimport { generateRequestId } from './request-id';\nimport { DEFAULT_BASE_MS, DEFAULT_MAX_BACKOFF_MS, computeBackoff, shouldRetry } from './retries';\nimport type { ApiResponse, Fetch, InternalRequestSpec, Logger, RequestOptions } from './types';\n\nconst DEFAULT_BASE_URL = 'https://api.bimpeai.com';\nconst API_PATH_PREFIX = '/api/v1/console';\n\nexport interface HttpClientConfig {\n apiKey: string;\n baseUrl?: string;\n timeout?: number;\n maxRetries?: number;\n fetch?: Fetch;\n defaultHeaders?: Record<string, string>;\n logger?: Logger;\n}\n\nexport class HttpClient {\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly timeout: number;\n private readonly maxRetries: number;\n private readonly fetchImpl: Fetch;\n private readonly defaultHeaders: Record<string, string>;\n private readonly logger: Logger | undefined;\n private readonly userAgent: string;\n\n constructor(config: HttpClientConfig) {\n if (!config.apiKey) throw new UserError('apiKey is required');\n this.apiKey = config.apiKey;\n this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/$/, '');\n this.timeout = config.timeout ?? 30_000;\n this.maxRetries = config.maxRetries ?? 2;\n this.fetchImpl = config.fetch ?? globalThis.fetch.bind(globalThis);\n this.defaultHeaders = config.defaultHeaders ?? {};\n this.logger = config.logger;\n this.userAgent = buildUserAgent();\n }\n\n async request<T>(spec: InternalRequestSpec & RequestOptions): Promise<ApiResponse<T>> {\n const url = this.buildUrl(spec.path, spec.query);\n const maxRetries = spec.maxRetries ?? this.maxRetries;\n const timeout = spec.timeout ?? this.timeout;\n const idempotencyKey = isWrite(spec.method)\n ? resolveIdempotencyKey({ supplied: spec.idempotencyKey, maxRetries })\n : null;\n const requestId = readHeader(spec.headers, 'x-request-id') ?? generateRequestId();\n\n let attempt = 0;\n while (true) {\n try {\n return await this.send<T>(url, spec, idempotencyKey, requestId, timeout);\n } catch (error) {\n if (!shouldRetry(error, attempt, maxRetries)) throw error;\n const retryAfter =\n error instanceof ApiError\n ? parseRetryAfterMs(error.headers.get('retry-after'))\n : undefined;\n const delay = computeBackoff(attempt, DEFAULT_BASE_MS, DEFAULT_MAX_BACKOFF_MS, retryAfter);\n this.logger?.debug('retrying request', { attempt, delay, requestId });\n await sleep(delay);\n attempt += 1;\n }\n }\n }\n\n private async send<T>(\n url: string,\n spec: InternalRequestSpec & RequestOptions,\n idempotencyKey: string | null,\n requestId: string,\n timeout: number,\n ): Promise<ApiResponse<T>> {\n const headers = mergeHeaders(\n this.defaultHeaders,\n {\n Authorization: `Bearer ${this.apiKey}`,\n Accept: 'application/json',\n 'User-Agent': this.userAgent,\n 'X-Request-Id': requestId,\n ...(spec.body !== undefined ? { 'Content-Type': 'application/json' } : {}),\n ...(idempotencyKey ? { 'Idempotency-Key': idempotencyKey } : {}),\n },\n spec.headers,\n );\n\n const controller = new AbortController();\n const timeoutHandle = setTimeout(\n () => controller.abort(new DOMException('timeout', 'TimeoutError')),\n timeout,\n );\n const { signal, cleanup } = composeSignals(controller.signal, spec.signal);\n\n let response: Response;\n try {\n response = await this.fetchImpl(url, {\n method: spec.method,\n headers,\n body: spec.body !== undefined ? JSON.stringify(spec.body) : null,\n signal,\n });\n } catch (cause) {\n if (isAbortError(cause)) {\n if (controller.signal.aborted) throw new ConnectionTimeoutError('request timed out', cause);\n throw new ConnectionError('request aborted', cause);\n }\n throw new ConnectionError('network error', cause);\n } finally {\n clearTimeout(timeoutHandle);\n cleanup();\n }\n\n const text = await response.text();\n const parsed = text.length ? safeJson(text) : null;\n\n if (!response.ok) {\n throw mapApiError(response.status, parsed, response.headers);\n }\n\n let unwrapped: { data: T; meta: ApiResponse<T>['meta'] };\n try {\n unwrapped = unwrapEnvelope<T>(parsed);\n } catch {\n throw new BimpeAIError(\n `Expected a BimpeAI response envelope but got an unrecognised body (status ${response.status})`,\n );\n }\n\n return {\n data: unwrapped.data,\n meta: unwrapped.meta,\n requestId: response.headers.get('x-request-id') ?? requestId,\n status: response.status,\n headers: response.headers,\n };\n }\n\n private buildUrl(path: string, query?: InternalRequestSpec['query']): string {\n const url = new URL(`${this.baseUrl}${API_PATH_PREFIX}${path}`);\n if (query) {\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) continue;\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n}\n\nfunction buildUserAgent(): string {\n const runtime = detectRuntime();\n const platform =\n typeof process !== 'undefined' ? `${process.platform}/${process.arch}` : 'unknown';\n return `bimpeai-sdk-typescript/${VERSION} (${runtime}; ${platform})`;\n}\n\nfunction detectRuntime(): string {\n const g = globalThis as {\n Bun?: { version: string };\n Deno?: { version: { deno: string } };\n };\n if (typeof g.Bun !== 'undefined') return `Bun/${g.Bun.version}`;\n if (typeof g.Deno !== 'undefined') return `Deno/${g.Deno.version.deno}`;\n if (typeof process !== 'undefined' && process.versions?.node)\n return `Node/${process.versions.node}`;\n return 'Browser';\n}\n\nfunction isWrite(method: string): boolean {\n return method === 'POST' || method === 'PATCH' || method === 'PUT' || method === 'DELETE';\n}\n\nfunction readHeader(headers: Record<string, string> | undefined, name: string): string | undefined {\n if (!headers) return undefined;\n const lower = name.toLowerCase();\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === lower) return value;\n }\n return undefined;\n}\n\nfunction isAbortError(e: unknown): boolean {\n return (\n typeof e === 'object' &&\n e !== null &&\n 'name' in e &&\n ((e as { name: string }).name === 'AbortError' ||\n (e as { name: string }).name === 'TimeoutError')\n );\n}\n\ninterface ComposedSignal {\n signal: AbortSignal;\n cleanup: () => void;\n}\n\nfunction composeSignals(a: AbortSignal, b?: AbortSignal): ComposedSignal {\n const noop = () => {};\n if (!b) return { signal: a, cleanup: noop };\n\n const anyFn = (AbortSignal as { any?: (signals: AbortSignal[]) => AbortSignal }).any;\n if (typeof anyFn === 'function') return { signal: anyFn([a, b]), cleanup: noop };\n\n const ctrl = new AbortController();\n const onA = () => ctrl.abort(a.reason);\n const onB = () => ctrl.abort(b.reason);\n if (a.aborted) ctrl.abort(a.reason);\n else a.addEventListener('abort', onA, { once: true });\n if (b.aborted) ctrl.abort(b.reason);\n else b.addEventListener('abort', onB, { once: true });\n\n const cleanup = () => {\n a.removeEventListener('abort', onA);\n b.removeEventListener('abort', onB);\n };\n return { signal: ctrl.signal, cleanup };\n}\n\nfunction safeJson(text: string): unknown {\n try {\n return JSON.parse(text);\n } catch {\n return null;\n }\n}\n\nfunction parseRetryAfterMs(raw: string | null): number | undefined {\n if (!raw || !raw.trim()) return undefined;\n const seconds = Number(raw);\n if (Number.isFinite(seconds)) return Math.max(0, Math.floor(seconds)) * 1000;\n const asDate = Date.parse(raw);\n if (Number.isFinite(asDate)) return Math.max(0, asDate - Date.now());\n return undefined;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","import type { RequestExecutor } from '../../core/types';\nimport type { AgentActionSummary } from './types';\n\nexport class AgentActions {\n constructor(private readonly client: RequestExecutor) {}\n\n async list(agentId: string): Promise<readonly AgentActionSummary[]> {\n const res = await this.client.request<AgentActionSummary[]>({\n method: 'GET',\n path: `/agents/${agentId}/actions`,\n });\n return res.data;\n }\n}\n","import type { PaginationMeta } from './types';\n\nexport type PageFetcher<T> = (page: number) => Promise<Page<T>>;\n\nexport interface PageInit<T> {\n data: readonly T[];\n meta: PaginationMeta | null;\n requestId: string | null;\n fetcher: PageFetcher<T>;\n}\n\nexport class Page<T> implements AsyncIterable<T> {\n readonly data: readonly T[];\n readonly meta: PaginationMeta | null;\n readonly requestId: string | null;\n private readonly fetcher: PageFetcher<T>;\n\n constructor(init: PageInit<T>) {\n this.data = init.data;\n this.meta = init.meta;\n this.requestId = init.requestId;\n this.fetcher = init.fetcher;\n }\n\n get hasNextPage(): boolean {\n return this.meta?.has_next_page === true;\n }\n\n async getNextPage(): Promise<Page<T> | null> {\n if (!this.hasNextPage || !this.meta) return null;\n return this.fetcher(this.meta.current_page + 1);\n }\n\n async *[Symbol.asyncIterator](): AsyncIterator<T> {\n let cursor: Page<T> | null = this;\n while (cursor) {\n for (const item of cursor.data) yield item;\n cursor = await cursor.getNextPage();\n }\n }\n\n async *pages(): AsyncGenerator<Page<T>> {\n let cursor: Page<T> | null = this;\n while (cursor) {\n yield cursor;\n cursor = await cursor.getNextPage();\n }\n }\n}\n\n/**\n * The return value of a `list` call. Awaiting it yields the first `Page`; iterating\n * it with `for await` walks every item across all pages, fetching lazily.\n */\nexport class PagePromise<T> implements PromiseLike<Page<T>>, AsyncIterable<T> {\n private readonly load: () => Promise<Page<T>>;\n\n constructor(load: () => Promise<Page<T>>) {\n this.load = load;\n }\n\n // biome-ignore lint/suspicious/noThenProperty: this is an intentional thenable so list() can be awaited\n then<TResult1 = Page<T>, TResult2 = never>(\n onfulfilled?: ((value: Page<T>) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.load().then(onfulfilled, onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,\n ): Promise<Page<T> | TResult> {\n return this.load().then(undefined, onrejected);\n }\n\n finally(onfinally?: (() => void) | null): Promise<Page<T>> {\n return this.load().finally(onfinally);\n }\n\n async *[Symbol.asyncIterator](): AsyncIterator<T> {\n const first = await this.load();\n yield* first;\n }\n\n pages(): AsyncIterable<Page<T>> {\n const load = this.load;\n return {\n async *[Symbol.asyncIterator]() {\n const first = await load();\n yield* first.pages();\n },\n };\n }\n}\n","import type { RequestExecutor } from '../../core/types';\nimport type { AgentChannel } from './types';\n\nexport class AgentChannels {\n constructor(private readonly client: RequestExecutor) {}\n\n async list(agentId: string): Promise<readonly AgentChannel[]> {\n const res = await this.client.request<AgentChannel[]>({\n method: 'GET',\n path: `/agents/${agentId}/channels`,\n });\n return res.data;\n }\n}\n","import type { RequestExecutor } from '../../core/types';\nimport type { AgentConversationFlow } from './types';\n\nexport class AgentConversationFlows {\n constructor(private readonly client: RequestExecutor) {}\n\n async list(agentId: string): Promise<readonly AgentConversationFlow[]> {\n const res = await this.client.request<AgentConversationFlow[]>({\n method: 'GET',\n path: `/agents/${agentId}/conversation_flows`,\n });\n return res.data;\n }\n}\n","import type { RequestExecutor } from '../../core/types';\nimport type { AgentIntegration } from './types';\n\nexport class AgentIntegrations {\n constructor(private readonly client: RequestExecutor) {}\n\n async list(agentId: string): Promise<readonly AgentIntegration[]> {\n const res = await this.client.request<AgentIntegration[]>({\n method: 'GET',\n path: `/agents/${agentId}/integrations`,\n });\n return res.data;\n }\n}\n","import type { RequestExecutor, RequestOptions } from '../../core/types';\nimport type {\n CreateKnowledgeBaseBody,\n KnowledgeBaseSummary,\n UpdateKnowledgeBaseBody,\n} from './types';\n\nexport class AgentKnowledgeBases {\n constructor(private readonly client: RequestExecutor) {}\n\n async list(agentId: string): Promise<readonly KnowledgeBaseSummary[]> {\n const res = await this.client.request<KnowledgeBaseSummary[]>({\n method: 'GET',\n path: `/agents/${agentId}/knowledge_bases`,\n });\n return res.data;\n }\n\n async create(\n agentId: string,\n body: CreateKnowledgeBaseBody,\n options: RequestOptions = {},\n ): Promise<KnowledgeBaseSummary> {\n const res = await this.client.request<KnowledgeBaseSummary>({\n method: 'POST',\n path: `/agents/${agentId}/knowledge_bases`,\n body,\n ...options,\n });\n return res.data;\n }\n\n async update(\n agentId: string,\n kbId: string,\n body: UpdateKnowledgeBaseBody,\n ): Promise<KnowledgeBaseSummary> {\n const res = await this.client.request<KnowledgeBaseSummary>({\n method: 'PATCH',\n path: `/agents/${agentId}/knowledge_bases/${kbId}`,\n body,\n });\n return res.data;\n }\n\n async delete(agentId: string, kbId: string): Promise<void> {\n await this.client.request<null>({\n method: 'DELETE',\n path: `/agents/${agentId}/knowledge_bases/${kbId}`,\n });\n }\n}\n","import { Page, PagePromise } from '../../core/pagination';\nimport type { ListQuery, RequestExecutor, RequestOptions } from '../../core/types';\nimport { AgentActions } from './actions';\nimport { AgentChannels } from './channels';\nimport { AgentConversationFlows } from './conversation-flows';\nimport { AgentIntegrations } from './integrations';\nimport { AgentKnowledgeBases } from './knowledge-bases';\nimport type { Agent, AgentDetail, CreateAgentBody, UpdateAgentBody } from './types';\n\ntype Client = RequestExecutor;\n\nexport class Agents {\n readonly integrations: AgentIntegrations;\n readonly channels: AgentChannels;\n readonly conversationFlows: AgentConversationFlows;\n readonly actions: AgentActions;\n readonly knowledgeBases: AgentKnowledgeBases;\n\n constructor(private readonly client: Client) {\n this.integrations = new AgentIntegrations(client);\n this.channels = new AgentChannels(client);\n this.conversationFlows = new AgentConversationFlows(client);\n this.actions = new AgentActions(client);\n this.knowledgeBases = new AgentKnowledgeBases(client);\n }\n\n list(query: ListQuery = {}): PagePromise<Agent> {\n return new PagePromise(() => this.fetchPage(query.page ?? 1, query));\n }\n\n async create(body: CreateAgentBody, options: RequestOptions = {}): Promise<Agent> {\n const res = await this.client.request<Agent>({\n method: 'POST',\n path: '/agents',\n body,\n ...options,\n });\n return res.data;\n }\n\n async retrieve(agentId: string): Promise<AgentDetail> {\n const res = await this.client.request<AgentDetail>({\n method: 'GET',\n path: `/agents/${agentId}`,\n });\n return res.data;\n }\n\n async update(agentId: string, body: UpdateAgentBody): Promise<Agent> {\n const res = await this.client.request<Agent>({\n method: 'PATCH',\n path: `/agents/${agentId}`,\n body,\n });\n return res.data;\n }\n\n private async fetchPage(page: number, query: ListQuery): Promise<Page<Agent>> {\n const res = await this.client.request<Agent[]>({\n method: 'GET',\n path: '/agents',\n query: { page, limit: query.limit, search: query.search, sort: query.sort },\n });\n return new Page<Agent>({\n data: res.data,\n meta: res.meta,\n requestId: res.requestId,\n fetcher: (next) => this.fetchPage(next, query),\n });\n }\n}\n","import type { RequestExecutor } from '../../core/types';\nimport type { Call } from './types';\n\nexport class Calls {\n constructor(private readonly client: RequestExecutor) {}\n\n async list(): Promise<readonly Call[]> {\n const res = await this.client.request<Call[]>({ method: 'GET', path: '/calls' });\n return res.data;\n }\n}\n","import { Page, PagePromise } from '../../core/pagination';\nimport type { RequestExecutor, RequestOptions } from '../../core/types';\nimport type { ListMessagesQuery, Message, SendMessageBody } from './types';\n\ntype Client = RequestExecutor;\n\nexport class Messages {\n constructor(private readonly client: Client) {}\n\n list(\n agentId: string,\n conversationId: string,\n query: ListMessagesQuery = {},\n ): PagePromise<Message> {\n return new PagePromise(() => this.fetchPage(agentId, conversationId, query.page ?? 1, query));\n }\n\n async send(\n agentId: string,\n conversationId: string,\n body: SendMessageBody,\n options: RequestOptions = {},\n ): Promise<Message> {\n const res = await this.client.request<Message>({\n method: 'POST',\n path: `/agents/${agentId}/conversations/${conversationId}/messages`,\n body,\n ...options,\n });\n return res.data;\n }\n\n private async fetchPage(\n agentId: string,\n conversationId: string,\n page: number,\n query: ListMessagesQuery,\n ): Promise<Page<Message>> {\n const res = await this.client.request<Message[]>({\n method: 'GET',\n path: `/agents/${agentId}/conversations/${conversationId}/messages`,\n query: { page, limit: query.limit },\n });\n return new Page<Message>({\n data: res.data,\n meta: res.meta,\n requestId: res.requestId,\n fetcher: (next) => this.fetchPage(agentId, conversationId, next, query),\n });\n }\n}\n","import { Page, PagePromise } from '../../core/pagination';\nimport type { RequestExecutor } from '../../core/types';\nimport { Messages } from './messages';\nimport type { Conversation, ListConversationsQuery } from './types';\n\ntype Client = RequestExecutor;\n\nexport class Conversations {\n readonly messages: Messages;\n\n constructor(private readonly client: Client) {\n this.messages = new Messages(client);\n }\n\n list(agentId: string, query: ListConversationsQuery = {}): PagePromise<Conversation> {\n return new PagePromise(() => this.fetchPage(agentId, query.page ?? 1, query));\n }\n\n async retrieve(agentId: string, conversationId: string): Promise<Conversation> {\n const res = await this.client.request<Conversation>({\n method: 'GET',\n path: `/agents/${agentId}/conversations/${conversationId}`,\n });\n return res.data;\n }\n\n private async fetchPage(\n agentId: string,\n page: number,\n query: ListConversationsQuery,\n ): Promise<Page<Conversation>> {\n const res = await this.client.request<Conversation[]>({\n method: 'GET',\n path: `/agents/${agentId}/conversations`,\n query: { page, limit: query.limit, search: query.search, channel: query.channel },\n });\n return new Page<Conversation>({\n data: res.data,\n meta: res.meta,\n requestId: res.requestId,\n fetcher: (next) => this.fetchPage(agentId, next, query),\n });\n }\n}\n","import { Page, PagePromise } from '../../core/pagination';\nimport type { RequestExecutor, RequestOptions } from '../../core/types';\nimport type {\n CreateWorkflowBody,\n ListWorkflowsQuery,\n UpdateWorkflowBody,\n Workflow,\n WorkflowSummary,\n} from './types';\n\ntype Client = RequestExecutor;\n\nexport class Workflows {\n constructor(private readonly client: Client) {}\n\n list(query: ListWorkflowsQuery = {}): PagePromise<WorkflowSummary> {\n return new PagePromise(() => this.fetchPage(query.page ?? 1, query));\n }\n\n async create(body: CreateWorkflowBody, options: RequestOptions = {}): Promise<Workflow> {\n const res = await this.client.request<Workflow>({\n method: 'POST',\n path: '/workflows',\n body,\n ...options,\n });\n return res.data;\n }\n\n async retrieve(workflowId: string): Promise<Workflow> {\n const res = await this.client.request<Workflow>({\n method: 'GET',\n path: `/workflows/${workflowId}`,\n });\n return res.data;\n }\n\n async update(workflowId: string, body: UpdateWorkflowBody): Promise<Workflow> {\n const res = await this.client.request<Workflow>({\n method: 'PATCH',\n path: `/workflows/${workflowId}`,\n body,\n });\n return res.data;\n }\n\n async delete(workflowId: string): Promise<void> {\n await this.client.request<null>({\n method: 'DELETE',\n path: `/workflows/${workflowId}`,\n });\n }\n\n private async fetchPage(page: number, query: ListWorkflowsQuery): Promise<Page<WorkflowSummary>> {\n const res = await this.client.request<WorkflowSummary[]>({\n method: 'GET',\n path: '/workflows',\n query: {\n page,\n limit: query.limit,\n search: query.search,\n sort: query.sort,\n scope: query.scope,\n },\n });\n return new Page<WorkflowSummary>({\n data: res.data,\n meta: res.meta,\n requestId: res.requestId,\n fetcher: (next) => this.fetchPage(next, query),\n });\n }\n}\n","import { HttpClient, type HttpClientConfig } from './core/http-client';\nimport type {\n ApiResponse,\n InternalRequestSpec,\n RequestExecutor,\n RequestOptions,\n} from './core/types';\nimport { Agents } from './resources/agents';\nimport { Calls } from './resources/calls';\nimport { Conversations } from './resources/conversations';\nimport { Workflows } from './resources/workflows';\n\nexport type BimpeAIConfig = HttpClientConfig;\n\nexport class BimpeAI {\n readonly agents: Agents;\n readonly workflows: Workflows;\n readonly conversations: Conversations;\n readonly calls: Calls;\n private readonly http: RequestExecutor;\n\n constructor(config: BimpeAIConfig) {\n this.http = new HttpClient(config);\n this.agents = new Agents(this.http);\n this.workflows = new Workflows(this.http);\n this.conversations = new Conversations(this.http);\n this.calls = new Calls(this.http);\n }\n\n request<T>(spec: InternalRequestSpec & RequestOptions): Promise<ApiResponse<T>> {\n return this.http.request<T>(spec);\n }\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bimpeai/sdk",
|
|
3
|
+
"version": "0.0.0-beta-20260606071952",
|
|
4
|
+
"description": "Official TypeScript SDK for the BimpeAI Agent Console API",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"main": "./dist/index.cjs",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/index.cjs"
|
|
16
|
+
},
|
|
17
|
+
"./package.json": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=24.0.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^24.0.0",
|
|
29
|
+
"@vitest/coverage-v8": "^2.1.4",
|
|
30
|
+
"msw": "^2.6.0",
|
|
31
|
+
"tsup": "^8.3.5",
|
|
32
|
+
"typescript": "^6.0.3",
|
|
33
|
+
"vitest": "^2.1.4"
|
|
34
|
+
},
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"access": "public",
|
|
37
|
+
"provenance": true
|
|
38
|
+
},
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/BimpeAI/bimpe-sdk.git",
|
|
42
|
+
"directory": "packages/sdk-typescript"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"bimpeai",
|
|
46
|
+
"sdk",
|
|
47
|
+
"agents",
|
|
48
|
+
"ai",
|
|
49
|
+
"typescript"
|
|
50
|
+
],
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "node scripts/sync-version.mjs && tsup",
|
|
53
|
+
"typecheck": "tsc --noEmit",
|
|
54
|
+
"test": "vitest run",
|
|
55
|
+
"test:watch": "vitest",
|
|
56
|
+
"test:coverage": "vitest run --coverage",
|
|
57
|
+
"test:live": "BIMPEAI_LIVE=1 vitest run tests/live",
|
|
58
|
+
"lint": "biome check src tests"
|
|
59
|
+
}
|
|
60
|
+
}
|