quantum-ai-sdk 0.2.2 → 0.3.1

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/client.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import type { BillingRequest, BillingResponse } from "./compute-billing.js";
1
2
  import { RealtimeSender, RealtimeReceiver } from "./realtime.js";
2
3
  import type { RealtimeConfig, RealtimeSession } from "./realtime.js";
3
- import type { AccountPricingResponse, AgentEvent, AgentRequest, AlignRequest, AlignResponse, AsyncJobResponse, AuthAppleRequest, AuthResponse, AvatarsResponse, BalanceResponse, BatchJobInfo, BatchJobsResponse, BatchJsonlResponse, BatchSubmitRequest, BatchSubmitResponse, ChatRequest, ChatResponse, ChunkDocumentRequest, ChunkDocumentResponse, ClientOptions, CloneVoiceRequest, CloneVoiceResponse, CreateKeyRequest, CreateKeyResponse, CreditBalanceResponse, CreditPacksResponse, CreditPurchaseRequest, CreditPurchaseResponse, CreditTiersResponse, DeleteResponse, DevProgramApplyRequest, DevProgramApplyResponse, DialogueRequest, DialogueResponse, DigitalTwinRequest, DocumentRequest, DocumentResponse, DubRequest, DubResponse, EmbedRequest, EmbedResponse, HeyGenTemplatesResponse, HeyGenVoicesResponse, ImageEditRequest, ImageEditResponse, ImageRequest, ImageResponse, InstanceResponse, InstancesResponse, IsolateVoiceRequest, IsolateVoiceResponse, JobCreateRequest, JobCreateResponse, JobListResponse, JobStreamEvent, JobStatusResponse, ListKeysResponse, MissionEvent, MissionRequest, ModelInfo, MusicRequest, MusicResponse, PhotoAvatarRequest, PricingInfo, ProcessDocumentRequest, ProcessDocumentResponse, ProvisionRequest, ProvisionResponse, RAGCorpus, RAGSearchRequest, RAGSearchResponse, RemixVoiceRequest, RemixVoiceResponse, ResponseMeta, SessionChatRequest, SessionChatResponse, SoundEffectRequest, SoundEffectResponse, SpeechToSpeechRequest, SpeechToSpeechResponse, SSHKeyRequest, StarfishTTSRequest, StarfishTTSResponse, StatusResponse, STTRequest, STTResponse, StreamEvent, SurrealRAGProvidersResponse, SurrealRAGSearchRequest, SurrealRAGSearchResponse, TemplatesResponse, TTSRequest, TTSResponse, UsageQuery, UsageResponse, UsageSummaryResponse, VideoRequest, VideoResponse, VideoStudioRequest, VideoTranslateRequest, VoiceDesignRequest, VoiceDesignResponse, VoicesResponse } from "./types.js";
4
+ import type { AccountPricingResponse, AgentEvent, AgentRequest, AlignRequest, AlignResponse, AsyncJobResponse, AuthAppleRequest, AuthResponse, AvatarsResponse, BalanceResponse, BatchJobInfo, BatchJobsResponse, BatchJsonlResponse, BatchSubmitRequest, BatchSubmitResponse, ChatRequest, ChatResponse, ChunkDocumentRequest, ChunkDocumentResponse, ClientOptions, CloneVoiceRequest, CloneVoiceResponse, CreateKeyRequest, CreateKeyResponse, CreditBalanceResponse, CreditPacksResponse, CreditPurchaseRequest, CreditPurchaseResponse, CreditTiersResponse, DeleteResponse, DevProgramApplyRequest, DevProgramApplyResponse, DialogueRequest, DialogueResponse, DigitalTwinRequest, DocumentRequest, DocumentResponse, DubRequest, DubResponse, EmbedRequest, EmbedResponse, HeyGenTemplatesResponse, HeyGenVoicesResponse, ImageEditRequest, ImageEditResponse, ImageRequest, ImageResponse, InstanceResponse, InstancesResponse, IsolateVoiceRequest, IsolateVoiceResponse, JobCreateRequest, JobCreateResponse, JobListResponse, JobStreamEvent, WebSearchRequest, WebSearchResponse, LLMContextRequest, LLMContextResponse, SearchAnswerRequest, SearchAnswerResponse, JobStatusResponse, ListKeysResponse, MissionEvent, MissionRequest, ModelInfo, MusicRequest, MusicResponse, PhotoAvatarRequest, PricingInfo, ProcessDocumentRequest, ProcessDocumentResponse, ProvisionRequest, ProvisionResponse, RAGCorpus, RAGSearchRequest, RAGSearchResponse, RemixVoiceRequest, RemixVoiceResponse, ResponseMeta, SessionChatRequest, SessionChatResponse, SoundEffectRequest, SoundEffectResponse, SpeechToSpeechRequest, SpeechToSpeechResponse, SSHKeyRequest, StarfishTTSRequest, StarfishTTSResponse, StatusResponse, STTRequest, STTResponse, StreamEvent, SurrealRAGProvidersResponse, SurrealRAGSearchRequest, SurrealRAGSearchResponse, TemplatesResponse, TTSRequest, TTSResponse, UsageQuery, UsageResponse, UsageSummaryResponse, VideoRequest, VideoResponse, VideoStudioRequest, VideoTranslateRequest, VoiceDesignRequest, VoiceDesignResponse, VoicesResponse } from "./types.js";
4
5
  /**
5
6
  * QuantumClient is the Quantum AI API client.
6
7
  *
@@ -151,6 +152,12 @@ export declare class QuantumClient {
151
152
  surrealRagSearch(req: SurrealRAGSearchRequest): Promise<SurrealRAGSearchResponse>;
152
153
  /** List available documentation providers in SurrealDB RAG. */
153
154
  surrealRagProviders(): Promise<SurrealRAGProvidersResponse>;
155
+ /** Perform a web search. Returns web results, news, videos, infobox, discussions. */
156
+ webSearch(req: WebSearchRequest): Promise<WebSearchResponse>;
157
+ /** Get LLM-optimized content chunks for grounding. */
158
+ searchContext(req: LLMContextRequest): Promise<LLMContextResponse>;
159
+ /** Get a grounded AI answer with citations. */
160
+ searchAnswer(req: SearchAnswerRequest): Promise<SearchAnswerResponse>;
154
161
  /** List all available models with provider and pricing information. */
155
162
  listModels(): Promise<ModelInfo[]>;
156
163
  /** Get the complete pricing table for all models. */
@@ -210,6 +217,8 @@ export declare class QuantumClient {
210
217
  computeSSHKey(id: string, req: SSHKeyRequest): Promise<StatusResponse>;
211
218
  /** Reset the inactivity timer on a compute instance. */
212
219
  computeKeepalive(id: string): Promise<StatusResponse>;
220
+ /** Query compute billing from BigQuery. */
221
+ computeBilling(req: BillingRequest): Promise<BillingResponse>;
213
222
  /** List all available voices (ElevenLabs). */
214
223
  listVoices(): Promise<VoicesResponse>;
215
224
  /** Create an instant voice clone from audio samples (ElevenLabs). */
package/dist/client.js CHANGED
@@ -11,6 +11,7 @@ import { ragSearch, ragCorpora, surrealRagSearch, surrealRagProviders } from "./
11
11
  import { listModels, getPricing } from "./models.js";
12
12
  import { accountBalance, accountUsage, accountUsageSummary, accountPricing, } from "./account.js";
13
13
  import { createJob, getJob, pollJob, listJobs, chatJob, streamJob, generate3D } from "./jobs.js";
14
+ import { webSearch, searchContext, searchAnswer } from "./search.js";
14
15
  import { createKey, listKeys, revokeKey } from "./keys.js";
15
16
  import { computeTemplates, computeProvision, computeInstances, computeInstance, computeDelete, computeSSHKey, computeKeepalive, } from "./compute.js";
16
17
  import { listVoices, cloneVoice, deleteVoice } from "./voices.js";
@@ -256,6 +257,19 @@ export class QuantumClient {
256
257
  async surrealRagProviders() {
257
258
  return surrealRagProviders(this);
258
259
  }
260
+ // ── Search (Brave) ──────────────────────────────────────────────
261
+ /** Perform a web search. Returns web results, news, videos, infobox, discussions. */
262
+ async webSearch(req) {
263
+ return webSearch(this, req);
264
+ }
265
+ /** Get LLM-optimized content chunks for grounding. */
266
+ async searchContext(req) {
267
+ return searchContext(this, req);
268
+ }
269
+ /** Get a grounded AI answer with citations. */
270
+ async searchAnswer(req) {
271
+ return searchAnswer(this, req);
272
+ }
259
273
  // ── Models ────────────────────────────────────────────────────────
260
274
  /** List all available models with provider and pricing information. */
261
275
  async listModels() {
@@ -366,6 +380,11 @@ export class QuantumClient {
366
380
  async computeKeepalive(id) {
367
381
  return computeKeepalive(this, id);
368
382
  }
383
+ /** Query compute billing from BigQuery. */
384
+ async computeBilling(req) {
385
+ const { data } = await this._doJSON("POST", "/qai/v1/compute/billing", req);
386
+ return data;
387
+ }
369
388
  // ── Voice Management ──────────────────────────────────────────────
370
389
  /** List all available voices (ElevenLabs). */
371
390
  async listVoices() {
@@ -0,0 +1,36 @@
1
+ import type { QuantumClient } from "./client.js";
2
+ export interface BillingRequest {
3
+ /** Filter by instance ID. */
4
+ instance_id?: string;
5
+ /** Start date for billing period (ISO 8601). */
6
+ start_date?: string;
7
+ /** End date for billing period (ISO 8601). */
8
+ end_date?: string;
9
+ }
10
+ export interface BillingEntry {
11
+ /** Instance identifier. */
12
+ instance_id: string;
13
+ /** Instance name. */
14
+ instance_name?: string;
15
+ /** Total cost in USD. */
16
+ cost_usd: number;
17
+ /** Usage duration in hours. */
18
+ usage_hours?: number;
19
+ /** SKU description. */
20
+ sku_description?: string;
21
+ /** Billing period start. */
22
+ start_time?: string;
23
+ /** Billing period end. */
24
+ end_time?: string;
25
+ }
26
+ export interface BillingResponse {
27
+ /** Individual billing entries. */
28
+ entries: BillingEntry[];
29
+ /** Total cost across all entries. */
30
+ total_cost_usd: number;
31
+ }
32
+ /**
33
+ * Query compute billing from BigQuery via the QAI backend.
34
+ * @internal — called by QuantumClient.computeBilling()
35
+ */
36
+ export declare function computeBilling(client: QuantumClient, req: BillingRequest): Promise<BillingResponse>;
@@ -0,0 +1,9 @@
1
+ // ── Function ─────────────────────────────────────────────────────────
2
+ /**
3
+ * Query compute billing from BigQuery via the QAI backend.
4
+ * @internal — called by QuantumClient.computeBilling()
5
+ */
6
+ export async function computeBilling(client, req) {
7
+ const { data } = await client._doJSON("POST", "/qai/v1/compute/billing", req);
8
+ return data;
9
+ }
package/dist/index.d.ts CHANGED
@@ -4,7 +4,8 @@ export { responseText, responseThinking, responseToolCalls } from "./chat.js";
4
4
  export { realtimeConnect, realtimeConnectDirect, realtimeSession, realtimeEnd, realtimeRefresh, RealtimeSender, RealtimeReceiver } from "./realtime.js";
5
5
  export type { RealtimeConfig, RealtimeEvent, RealtimeSession } from "./realtime.js";
6
6
  export { contact } from "./contact.js";
7
- export type { ClientOptions, ResponseMeta, ChatRequest, ChatMessage, ChatTool, ContentBlock, ChatUsage, ChatResponse, StreamEvent, StreamDelta, StreamToolUse, SessionChatRequest, SessionChatResponse, SessionToolResult, ContextConfig, ContextMetadata, AgentRequest, AgentWorkerConfig, AgentEvent, MissionRequest, MissionWorkerConfig, MissionEvent, ImageRequest, ImageResponse, GeneratedImage, ImageEditRequest, ImageEditResponse, TTSRequest, TTSResponse, STTRequest, STTResponse, MusicRequest, MusicClip, MusicResponse, SoundEffectRequest, SoundEffectResponse, DialogueRequest, DialogueResponse, DialogueVoice, SpeechToSpeechRequest, SpeechToSpeechResponse, IsolateVoiceRequest, IsolateVoiceResponse, RemixVoiceRequest, RemixVoiceResponse, DubRequest, DubResponse, AlignRequest, AlignResponse, AlignedWord, VoiceDesignRequest, VoiceDesignResponse, VoicePreview, StarfishTTSRequest, StarfishTTSResponse, VideoRequest, VideoResponse, GeneratedVideo, VideoStudioRequest, VideoTranslateRequest, PhotoAvatarRequest, DigitalTwinRequest, AsyncJobResponse, AvatarsResponse, HeyGenAvatar, HeyGenTemplatesResponse, HeyGenTemplate, HeyGenVoicesResponse, HeyGenVoice, EmbedRequest, EmbedResponse, DocumentRequest, DocumentResponse, ChunkDocumentRequest, ChunkDocumentResponse, DocumentChunk, ProcessDocumentRequest, ProcessDocumentResponse, RAGSearchRequest, RAGSearchResponse, RAGResult, RAGCorpus, SurrealRAGSearchRequest, SurrealRAGSearchResponse, SurrealRAGResult, SurrealRAGProvidersResponse, SurrealRAGProviderInfo, ModelInfo, PricingInfo, BalanceResponse, UsageEntry, UsageResponse, UsageQuery, UsageSummaryMonth, UsageSummaryResponse, PricingEntry, AccountPricingResponse, JobCreateRequest, JobCreateResponse, JobStatusResponse, JobListResponse, JobStreamEvent, JobListItem, CreateKeyRequest, CreateKeyResponse, KeyDetails, ListKeysResponse, ComputeTemplate, TemplatesResponse, ProvisionRequest, ProvisionResponse, ComputeInstanceInfo, InstancesResponse, InstanceDetailInfo, InstanceResponse, SSHKeyRequest, DeleteResponse, VoiceInfo, VoicesResponse, CloneVoiceRequest, CloneVoiceResponse, ContactRequest, BatchJobInput, BatchSubmitRequest, BatchSubmitResponse, BatchJsonlResponse, BatchJobInfo, BatchJobsResponse, CreditPack, CreditPacksResponse, CreditPurchaseRequest, CreditPurchaseResponse, CreditBalanceResponse, CreditTier, CreditTiersResponse, DevProgramApplyRequest, DevProgramApplyResponse, AuthUser, AuthResponse, AuthAppleRequest, StatusResponse, } from "./types.js";
7
+ export type { BillingRequest, BillingEntry, BillingResponse } from "./compute-billing.js";
8
+ export type { ClientOptions, ResponseMeta, ChatRequest, ChatMessage, ChatTool, ContentBlock, ChatUsage, ChatResponse, StreamEvent, StreamDelta, StreamToolUse, SessionChatRequest, SessionChatResponse, SessionToolResult, ContextConfig, ContextMetadata, AgentRequest, AgentWorkerConfig, AgentEvent, MissionRequest, MissionWorkerConfig, MissionEvent, ImageRequest, ImageResponse, GeneratedImage, ImageEditRequest, ImageEditResponse, TTSRequest, TTSResponse, STTRequest, STTResponse, MusicRequest, MusicClip, MusicResponse, SoundEffectRequest, SoundEffectResponse, DialogueRequest, DialogueResponse, DialogueVoice, SpeechToSpeechRequest, SpeechToSpeechResponse, IsolateVoiceRequest, IsolateVoiceResponse, RemixVoiceRequest, RemixVoiceResponse, DubRequest, DubResponse, AlignRequest, AlignResponse, AlignedWord, VoiceDesignRequest, VoiceDesignResponse, VoicePreview, StarfishTTSRequest, StarfishTTSResponse, VideoRequest, VideoResponse, GeneratedVideo, VideoStudioRequest, VideoTranslateRequest, PhotoAvatarRequest, DigitalTwinRequest, AsyncJobResponse, AvatarsResponse, HeyGenAvatar, HeyGenTemplatesResponse, HeyGenTemplate, HeyGenVoicesResponse, HeyGenVoice, EmbedRequest, EmbedResponse, DocumentRequest, DocumentResponse, ChunkDocumentRequest, ChunkDocumentResponse, DocumentChunk, ProcessDocumentRequest, ProcessDocumentResponse, RAGSearchRequest, RAGSearchResponse, RAGResult, RAGCorpus, SurrealRAGSearchRequest, SurrealRAGSearchResponse, SurrealRAGResult, SurrealRAGProvidersResponse, SurrealRAGProviderInfo, ModelInfo, PricingInfo, BalanceResponse, UsageEntry, UsageResponse, UsageQuery, UsageSummaryMonth, UsageSummaryResponse, PricingEntry, AccountPricingResponse, JobCreateRequest, JobCreateResponse, JobStatusResponse, JobListResponse, JobStreamEvent, JobListItem, CreateKeyRequest, CreateKeyResponse, KeyDetails, ListKeysResponse, ComputeTemplate, TemplatesResponse, ProvisionRequest, ProvisionResponse, ComputeInstanceInfo, InstancesResponse, InstanceDetailInfo, InstanceResponse, SSHKeyRequest, DeleteResponse, VoiceInfo, VoicesResponse, CloneVoiceRequest, CloneVoiceResponse, ContactRequest, BatchJobInput, BatchSubmitRequest, BatchSubmitResponse, BatchJsonlResponse, BatchJobInfo, BatchJobsResponse, CreditPack, CreditPacksResponse, CreditPurchaseRequest, CreditPurchaseResponse, CreditBalanceResponse, CreditTier, CreditTiersResponse, DevProgramApplyRequest, DevProgramApplyResponse, AuthUser, AuthResponse, AuthAppleRequest, WebSearchRequest, WebSearchResponse, WebSearchResult, NewsResult, VideoSearchResult, LLMContextRequest, LLMContextResponse, ContentChunk, ContextSource, SearchAnswerRequest, SearchAnswerResponse, SearchAnswerChoice, SearchCitation, StatusResponse, } from "./types.js";
8
9
  export { DEFAULT_BASE_URL, TICKS_PER_USD } from "./types.js";
9
10
  import type { ChatMessage } from "./types.js";
10
11
  /** Create a user message. */
@@ -0,0 +1,17 @@
1
+ import type { QuantumClient } from "./client.js";
2
+ import type { WebSearchRequest, WebSearchResponse, LLMContextRequest, LLMContextResponse, SearchAnswerRequest, SearchAnswerResponse } from "./types.js";
3
+ /**
4
+ * Perform a Brave web search.
5
+ * @internal
6
+ */
7
+ export declare function webSearch(client: QuantumClient, req: WebSearchRequest): Promise<WebSearchResponse>;
8
+ /**
9
+ * Get LLM-optimized content chunks for a query.
10
+ * @internal
11
+ */
12
+ export declare function searchContext(client: QuantumClient, req: LLMContextRequest): Promise<LLMContextResponse>;
13
+ /**
14
+ * Get a grounded AI answer with citations.
15
+ * @internal
16
+ */
17
+ export declare function searchAnswer(client: QuantumClient, req: SearchAnswerRequest): Promise<SearchAnswerResponse>;
package/dist/search.js ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Perform a Brave web search.
3
+ * @internal
4
+ */
5
+ export async function webSearch(client, req) {
6
+ const { data } = await client._doJSON("POST", "/qai/v1/search/web", req);
7
+ return data;
8
+ }
9
+ /**
10
+ * Get LLM-optimized content chunks for a query.
11
+ * @internal
12
+ */
13
+ export async function searchContext(client, req) {
14
+ const { data } = await client._doJSON("POST", "/qai/v1/search/context", req);
15
+ return data;
16
+ }
17
+ /**
18
+ * Get a grounded AI answer with citations.
19
+ * @internal
20
+ */
21
+ export async function searchAnswer(client, req) {
22
+ const { data } = await client._doJSON("POST", "/qai/v1/search/answer", req);
23
+ return data;
24
+ }
package/dist/types.d.ts CHANGED
@@ -735,6 +735,134 @@ export interface JobStreamEvent {
735
735
  cost_ticks?: number;
736
736
  completed_at?: string;
737
737
  }
738
+ export interface WebSearchRequest {
739
+ query: string;
740
+ count?: number;
741
+ offset?: number;
742
+ country?: string;
743
+ language?: string;
744
+ freshness?: "pd" | "pw" | "pm";
745
+ safesearch?: string;
746
+ }
747
+ export interface WebSearchResult {
748
+ title?: string;
749
+ url?: string;
750
+ description?: string;
751
+ extra_snippets?: string[];
752
+ age?: string;
753
+ language?: string;
754
+ thumbnail?: {
755
+ src?: string;
756
+ height?: number;
757
+ width?: number;
758
+ };
759
+ }
760
+ export interface NewsResult {
761
+ title?: string;
762
+ url?: string;
763
+ description?: string;
764
+ age?: string;
765
+ source?: string;
766
+ thumbnail?: {
767
+ src?: string;
768
+ height?: number;
769
+ width?: number;
770
+ };
771
+ }
772
+ export interface VideoSearchResult {
773
+ title?: string;
774
+ url?: string;
775
+ description?: string;
776
+ age?: string;
777
+ thumbnail?: {
778
+ src?: string;
779
+ height?: number;
780
+ width?: number;
781
+ };
782
+ }
783
+ export interface WebSearchResponse {
784
+ query?: {
785
+ original?: string;
786
+ altered?: string;
787
+ language?: string;
788
+ };
789
+ web?: {
790
+ results: WebSearchResult[];
791
+ family_friendly?: boolean;
792
+ };
793
+ news?: {
794
+ results: NewsResult[];
795
+ };
796
+ videos?: {
797
+ results: VideoSearchResult[];
798
+ };
799
+ infobox?: {
800
+ title?: string;
801
+ url?: string;
802
+ description?: string;
803
+ long_desc?: string;
804
+ };
805
+ discussions?: {
806
+ results: {
807
+ title?: string;
808
+ url?: string;
809
+ description?: string;
810
+ age?: string;
811
+ }[];
812
+ };
813
+ }
814
+ export interface LLMContextRequest {
815
+ query: string;
816
+ count?: number;
817
+ country?: string;
818
+ language?: string;
819
+ freshness?: "pd" | "pw" | "pm";
820
+ }
821
+ export interface ContentChunk {
822
+ content?: string;
823
+ url?: string;
824
+ title?: string;
825
+ score?: number;
826
+ content_type?: string;
827
+ index?: number;
828
+ }
829
+ export interface ContextSource {
830
+ url?: string;
831
+ title?: string;
832
+ description?: string;
833
+ snippet?: string;
834
+ }
835
+ export interface LLMContextResponse {
836
+ chunks: ContentChunk[];
837
+ sources?: ContextSource[];
838
+ query?: string;
839
+ }
840
+ export interface SearchAnswerRequest {
841
+ messages: {
842
+ role: string;
843
+ content: string;
844
+ }[];
845
+ model?: string;
846
+ }
847
+ export interface SearchAnswerChoice {
848
+ index?: number;
849
+ message?: {
850
+ role: string;
851
+ content: string;
852
+ };
853
+ finish_reason?: string;
854
+ }
855
+ export interface SearchCitation {
856
+ url?: string;
857
+ title?: string;
858
+ snippet?: string;
859
+ }
860
+ export interface SearchAnswerResponse {
861
+ choices: SearchAnswerChoice[];
862
+ model?: string;
863
+ id?: string;
864
+ citations?: SearchCitation[];
865
+ }
738
866
  export interface CreateKeyRequest {
739
867
  name: string;
740
868
  scopes?: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quantum-ai-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "Cosmic Duck SDK — 100+ AI endpoints across 10 providers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",