@scalix-world/sdk 0.0.1 → 1.0.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/README.md +215 -1
- package/dist/client.d.ts +41 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +54 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +22 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +23 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/services/account.d.ts +15 -0
- package/dist/services/account.d.ts.map +1 -0
- package/dist/services/account.js +30 -0
- package/dist/services/account.js.map +1 -0
- package/dist/services/audio.d.ts +27 -0
- package/dist/services/audio.d.ts.map +1 -0
- package/dist/services/audio.js +22 -0
- package/dist/services/audio.js.map +1 -0
- package/dist/services/base.d.ts +15 -0
- package/dist/services/base.d.ts.map +1 -0
- package/dist/services/base.js +67 -0
- package/dist/services/base.js.map +1 -0
- package/dist/services/chat.d.ts +38 -0
- package/dist/services/chat.d.ts.map +1 -0
- package/dist/services/chat.js +53 -0
- package/dist/services/chat.js.map +1 -0
- package/dist/services/database.d.ts +245 -0
- package/dist/services/database.d.ts.map +1 -0
- package/dist/services/database.js +195 -0
- package/dist/services/database.js.map +1 -0
- package/dist/services/docgen.d.ts +57 -0
- package/dist/services/docgen.d.ts.map +1 -0
- package/dist/services/docgen.js +38 -0
- package/dist/services/docgen.js.map +1 -0
- package/dist/services/images.d.ts +34 -0
- package/dist/services/images.d.ts.map +1 -0
- package/dist/services/images.js +23 -0
- package/dist/services/images.js.map +1 -0
- package/dist/services/index.d.ts +21 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +12 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/rag.d.ts +43 -0
- package/dist/services/rag.d.ts.map +1 -0
- package/dist/services/rag.js +20 -0
- package/dist/services/rag.js.map +1 -0
- package/dist/services/research.d.ts +23 -0
- package/dist/services/research.d.ts.map +1 -0
- package/dist/services/research.js +15 -0
- package/dist/services/research.js.map +1 -0
- package/dist/services/storage.d.ts +9 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +9 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/text.d.ts +30 -0
- package/dist/services/text.d.ts.map +1 -0
- package/dist/services/text.js +23 -0
- package/dist/services/text.js.map +1 -0
- package/package.json +51 -5
- package/index.js +0 -1
package/README.md
CHANGED
|
@@ -1 +1,215 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Scalix SDK — TypeScript
|
|
2
|
+
|
|
3
|
+
TypeScript client for the Scalix API. Provides typed access to chat, research, audio, images, text, RAG, document generation, database, storage, and account management.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @scalix-world/sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { ScalixClient } from '@scalix-world/sdk';
|
|
15
|
+
|
|
16
|
+
const scalix = new ScalixClient({ apiKey: 'sk_scalix_...' });
|
|
17
|
+
|
|
18
|
+
// Chat completion (OpenAI-compatible)
|
|
19
|
+
const reply = await scalix.chat.complete({
|
|
20
|
+
model: 'scalix-world-ai',
|
|
21
|
+
messages: [{ role: 'user', content: 'Hello!' }],
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// Streaming chat
|
|
25
|
+
for await (const chunk of scalix.chat.stream({
|
|
26
|
+
model: 'scalix-world-ai',
|
|
27
|
+
messages: [{ role: 'user', content: 'Tell me a story' }],
|
|
28
|
+
})) {
|
|
29
|
+
process.stdout.write(chunk);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Web search
|
|
33
|
+
const results = await scalix.research.search('quantum computing');
|
|
34
|
+
|
|
35
|
+
// Audio transcription
|
|
36
|
+
const transcript = await scalix.audio.transcribe(audioBlob);
|
|
37
|
+
|
|
38
|
+
// Text-to-speech
|
|
39
|
+
const audio = await scalix.audio.speak('Hello world');
|
|
40
|
+
|
|
41
|
+
// Image generation
|
|
42
|
+
const image = await scalix.images.generate('A sunset over mountains');
|
|
43
|
+
const job = await scalix.images.generateAsync('A detailed cityscape');
|
|
44
|
+
|
|
45
|
+
// Text utilities
|
|
46
|
+
const sentiment = await scalix.text.sentiment('I love this product!');
|
|
47
|
+
const summary = await scalix.text.summarize(longArticle);
|
|
48
|
+
const translated = await scalix.text.translate('Hello', 'es');
|
|
49
|
+
|
|
50
|
+
// RAG — upload and query documents
|
|
51
|
+
const doc = await scalix.rag.upload(pdfBlob, { filename: 'report.pdf' });
|
|
52
|
+
const hits = await scalix.rag.query('revenue growth');
|
|
53
|
+
|
|
54
|
+
// Document generation
|
|
55
|
+
const report = await scalix.docgen.create({ prompt: 'Q1 report', format: 'pdf' });
|
|
56
|
+
|
|
57
|
+
// ScalixDB
|
|
58
|
+
const dbs = await scalix.database.list();
|
|
59
|
+
const db = await scalix.database.create({ name: 'my-app-db' });
|
|
60
|
+
const result = await scalix.database.query(db.database.id, 'SELECT * FROM users');
|
|
61
|
+
|
|
62
|
+
// Storage — presigned upload URL
|
|
63
|
+
const { uploadUrl } = await scalix.storage.getUploadUrl('application/pdf');
|
|
64
|
+
|
|
65
|
+
// Account — manage API keys
|
|
66
|
+
const keys = await scalix.account.listApiKeys();
|
|
67
|
+
const newKey = await scalix.account.createApiKey({ name: 'production-key' });
|
|
68
|
+
|
|
69
|
+
// Usage tracking
|
|
70
|
+
const usage = await scalix.account.usage({ startDate: '2026-04-01' });
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Configuration
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
import { ScalixClient } from '@scalix-world/sdk';
|
|
77
|
+
|
|
78
|
+
const scalix = new ScalixClient({
|
|
79
|
+
apiKey: 'sk_scalix_...',
|
|
80
|
+
baseUrl: 'https://api.scalix.world', // default
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Environment Variables
|
|
85
|
+
|
|
86
|
+
| Variable | Description |
|
|
87
|
+
|----------|-------------|
|
|
88
|
+
| `SCALIX_API_KEY` | Scalix API key |
|
|
89
|
+
| `SCALIX_BASE_URL` | Override API base URL (default: `https://api.scalix.world`) |
|
|
90
|
+
|
|
91
|
+
## API Reference
|
|
92
|
+
|
|
93
|
+
### Chat
|
|
94
|
+
|
|
95
|
+
| Method | Endpoint | SDK Method |
|
|
96
|
+
|--------|----------|------------|
|
|
97
|
+
| POST | `/v1/chat/completions` | `scalix.chat.complete(options)` |
|
|
98
|
+
| POST | `/v1/chat/completions` | `scalix.chat.stream(options)` (streaming) |
|
|
99
|
+
| GET | `/v1/models` | `scalix.chat.models()` |
|
|
100
|
+
|
|
101
|
+
### Research
|
|
102
|
+
|
|
103
|
+
| Method | Endpoint | SDK Method |
|
|
104
|
+
|--------|----------|------------|
|
|
105
|
+
| POST | `/v1/research/search` | `scalix.research.search(query)` |
|
|
106
|
+
| POST | `/v1/research` | `scalix.research.research(query)` |
|
|
107
|
+
| POST | `/v1/research/deep` | `scalix.research.deep(query)` |
|
|
108
|
+
|
|
109
|
+
### Audio
|
|
110
|
+
|
|
111
|
+
| Method | Endpoint | SDK Method |
|
|
112
|
+
|--------|----------|------------|
|
|
113
|
+
| POST | `/v1/audio/transcribe` | `scalix.audio.transcribe(file)` (multipart) |
|
|
114
|
+
| POST | `/v1/audio/speak/kokoro` | `scalix.audio.speak(text)` |
|
|
115
|
+
| GET | `/v1/audio/kokoro/voices` | `scalix.audio.voices()` |
|
|
116
|
+
| GET | `/v1/audio/kokoro/languages` | `scalix.audio.languages()` |
|
|
117
|
+
|
|
118
|
+
### Images
|
|
119
|
+
|
|
120
|
+
| Method | Endpoint | SDK Method |
|
|
121
|
+
|--------|----------|------------|
|
|
122
|
+
| POST | `/v1/images/generate` | `scalix.images.generate(prompt)` |
|
|
123
|
+
| POST | `/v1/images/generate/queue` | `scalix.images.generateAsync(prompt)` |
|
|
124
|
+
| GET | `/v1/images/jobs/{jobId}` | `scalix.images.getJob(jobId)` |
|
|
125
|
+
| GET | `/v1/images/jobs/{jobId}/result` | `scalix.images.getJobResult(jobId)` |
|
|
126
|
+
| GET | `/v1/images/models` | `scalix.images.models()` |
|
|
127
|
+
|
|
128
|
+
### Text
|
|
129
|
+
|
|
130
|
+
| Method | Endpoint | SDK Method |
|
|
131
|
+
|--------|----------|------------|
|
|
132
|
+
| POST | `/v1/text/sentiment` | `scalix.text.sentiment(text)` |
|
|
133
|
+
| POST | `/v1/text/summarize` | `scalix.text.summarize(text)` |
|
|
134
|
+
| POST | `/v1/text/translate` | `scalix.text.translate(text, targetLang)` |
|
|
135
|
+
|
|
136
|
+
### RAG
|
|
137
|
+
|
|
138
|
+
| Method | Endpoint | SDK Method |
|
|
139
|
+
|--------|----------|------------|
|
|
140
|
+
| POST | `/v1/rag/upload` | `scalix.rag.upload(file)` (multipart) |
|
|
141
|
+
| POST | `/v1/rag/query` | `scalix.rag.query(query)` |
|
|
142
|
+
| GET | `/v1/rag/documents` | `scalix.rag.documents()` |
|
|
143
|
+
| DELETE | `/v1/rag/documents/{docId}` | `scalix.rag.deleteDocument(docId)` |
|
|
144
|
+
|
|
145
|
+
### Document Generation
|
|
146
|
+
|
|
147
|
+
| Method | Endpoint | SDK Method |
|
|
148
|
+
|--------|----------|------------|
|
|
149
|
+
| POST | `/v1/docgen/create` | `scalix.docgen.create(options)` |
|
|
150
|
+
| POST | `/v1/docgen/preview` | `scalix.docgen.preview(options)` |
|
|
151
|
+
| GET | `/v1/docgen/formats` | `scalix.docgen.formats()` |
|
|
152
|
+
| GET | `/v1/docgen/templates` | `scalix.docgen.templates()` |
|
|
153
|
+
| GET | `/v1/docgen/history` | `scalix.docgen.history()` |
|
|
154
|
+
| POST | `/v1/docgen/revise` | `scalix.docgen.revise(docId, prompt)` |
|
|
155
|
+
| GET | `/v1/docgen/versions/{docId}` | `scalix.docgen.versions(docId)` |
|
|
156
|
+
|
|
157
|
+
### Storage
|
|
158
|
+
|
|
159
|
+
| Method | Endpoint | SDK Method |
|
|
160
|
+
|--------|----------|------------|
|
|
161
|
+
| POST | `/v1/storage/upload-url` | `scalix.storage.getUploadUrl(mimeType)` |
|
|
162
|
+
|
|
163
|
+
### ScalixDB
|
|
164
|
+
|
|
165
|
+
| Method | Endpoint | SDK Method |
|
|
166
|
+
|--------|----------|------------|
|
|
167
|
+
| GET | `/api/scalixdb/databases` | `scalix.database.list()` |
|
|
168
|
+
| POST | `/api/scalixdb/databases` | `scalix.database.create(options)` |
|
|
169
|
+
| GET | `/api/scalixdb/databases/{id}` | `scalix.database.get(id)` |
|
|
170
|
+
| DELETE | `/api/scalixdb/databases/{id}` | `scalix.database.delete(id)` |
|
|
171
|
+
| POST | `/api/scalixdb/databases/{id}/query` | `scalix.database.query(id, sql)` |
|
|
172
|
+
| GET | `/api/scalixdb/databases/{id}/tables` | `scalix.database.listTables(id)` |
|
|
173
|
+
| GET | `/api/scalixdb/databases/{id}/metrics` | `scalix.database.getMetrics(id)` |
|
|
174
|
+
|
|
175
|
+
### Account
|
|
176
|
+
|
|
177
|
+
| Method | Endpoint | SDK Method |
|
|
178
|
+
|--------|----------|------------|
|
|
179
|
+
| GET | `/health` | `scalix.account.health()` |
|
|
180
|
+
| GET | `/api/dashboard/api-keys` | `scalix.account.listApiKeys()` |
|
|
181
|
+
| POST | `/api/dashboard/api-keys` | `scalix.account.createApiKey({ name })` |
|
|
182
|
+
| DELETE | `/api/dashboard/api-keys/{id}` | `scalix.account.deleteApiKey(keyId)` |
|
|
183
|
+
| GET | `/api/billing/usage` | `scalix.account.usage()` |
|
|
184
|
+
|
|
185
|
+
## Error Handling
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
import { ScalixClient, ScalixError, AuthenticationError } from '@scalix-world/sdk';
|
|
189
|
+
|
|
190
|
+
const scalix = new ScalixClient({ apiKey: 'sk_scalix_...' });
|
|
191
|
+
|
|
192
|
+
try {
|
|
193
|
+
const result = await scalix.chat.complete({
|
|
194
|
+
model: 'scalix-world-ai',
|
|
195
|
+
messages: [{ role: 'user', content: 'Hello!' }],
|
|
196
|
+
});
|
|
197
|
+
} catch (error) {
|
|
198
|
+
if (error instanceof AuthenticationError) {
|
|
199
|
+
console.error('Invalid API key');
|
|
200
|
+
} else if (error instanceof ScalixError) {
|
|
201
|
+
console.error('API error:', error.message);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Available Models
|
|
207
|
+
|
|
208
|
+
| Model | Description | Best For |
|
|
209
|
+
|-------|-------------|----------|
|
|
210
|
+
| `scalix-world-ai` | Default model — fast, balanced | General use, chat, quick tasks |
|
|
211
|
+
| `scalix-advanced` | Most capable model — deep reasoning | Complex analysis, coding, agents |
|
|
212
|
+
|
|
213
|
+
## License
|
|
214
|
+
|
|
215
|
+
See [LICENSE](../../LICENSE) for details.
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScalixClient — unified access to all Scalix API services.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { ScalixClient } from '@scalix-world/sdk';
|
|
7
|
+
*
|
|
8
|
+
* const scalix = new ScalixClient({ apiKey: 'sk_scalix_...' });
|
|
9
|
+
* const reply = await scalix.chat.complete({
|
|
10
|
+
* model: 'scalix-world-ai',
|
|
11
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
import { type ScalixConfig } from './config.js';
|
|
16
|
+
import { AccountService } from './services/account.js';
|
|
17
|
+
import { AudioService } from './services/audio.js';
|
|
18
|
+
import { ChatService } from './services/chat.js';
|
|
19
|
+
import { DatabaseService } from './services/database.js';
|
|
20
|
+
import { DocGenService } from './services/docgen.js';
|
|
21
|
+
import { ImagesService } from './services/images.js';
|
|
22
|
+
import { RAGService } from './services/rag.js';
|
|
23
|
+
import { ResearchService } from './services/research.js';
|
|
24
|
+
import { StorageService } from './services/storage.js';
|
|
25
|
+
import { TextService } from './services/text.js';
|
|
26
|
+
export declare class ScalixClient {
|
|
27
|
+
readonly account: AccountService;
|
|
28
|
+
readonly audio: AudioService;
|
|
29
|
+
readonly chat: ChatService;
|
|
30
|
+
readonly database: DatabaseService;
|
|
31
|
+
readonly docgen: DocGenService;
|
|
32
|
+
readonly images: ImagesService;
|
|
33
|
+
readonly rag: RAGService;
|
|
34
|
+
readonly research: ResearchService;
|
|
35
|
+
readonly storage: StorageService;
|
|
36
|
+
readonly text: TextService;
|
|
37
|
+
constructor(options?: {
|
|
38
|
+
apiKey?: string;
|
|
39
|
+
} & Partial<ScalixConfig>);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBAEf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CAgBlE"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScalixClient — unified access to all Scalix API services.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { ScalixClient } from '@scalix-world/sdk';
|
|
7
|
+
*
|
|
8
|
+
* const scalix = new ScalixClient({ apiKey: 'sk_scalix_...' });
|
|
9
|
+
* const reply = await scalix.chat.complete({
|
|
10
|
+
* model: 'scalix-world-ai',
|
|
11
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
import { configure, getConfig } from './config.js';
|
|
16
|
+
import { AccountService } from './services/account.js';
|
|
17
|
+
import { AudioService } from './services/audio.js';
|
|
18
|
+
import { ChatService } from './services/chat.js';
|
|
19
|
+
import { DatabaseService } from './services/database.js';
|
|
20
|
+
import { DocGenService } from './services/docgen.js';
|
|
21
|
+
import { ImagesService } from './services/images.js';
|
|
22
|
+
import { RAGService } from './services/rag.js';
|
|
23
|
+
import { ResearchService } from './services/research.js';
|
|
24
|
+
import { StorageService } from './services/storage.js';
|
|
25
|
+
import { TextService } from './services/text.js';
|
|
26
|
+
export class ScalixClient {
|
|
27
|
+
account;
|
|
28
|
+
audio;
|
|
29
|
+
chat;
|
|
30
|
+
database;
|
|
31
|
+
docgen;
|
|
32
|
+
images;
|
|
33
|
+
rag;
|
|
34
|
+
research;
|
|
35
|
+
storage;
|
|
36
|
+
text;
|
|
37
|
+
constructor(options) {
|
|
38
|
+
if (options) {
|
|
39
|
+
configure(options);
|
|
40
|
+
}
|
|
41
|
+
const config = getConfig();
|
|
42
|
+
this.account = new AccountService(config);
|
|
43
|
+
this.audio = new AudioService(config);
|
|
44
|
+
this.chat = new ChatService(config);
|
|
45
|
+
this.database = new DatabaseService(config);
|
|
46
|
+
this.docgen = new DocGenService(config);
|
|
47
|
+
this.images = new ImagesService(config);
|
|
48
|
+
this.rag = new RAGService(config);
|
|
49
|
+
this.research = new ResearchService(config);
|
|
50
|
+
this.storage = new StorageService(config);
|
|
51
|
+
this.text = new TextService(config);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,YAAY;IACd,OAAO,CAAiB;IACxB,KAAK,CAAe;IACpB,IAAI,CAAc;IAClB,QAAQ,CAAkB;IAC1B,MAAM,CAAgB;IACtB,MAAM,CAAgB;IACtB,GAAG,CAAa;IAChB,QAAQ,CAAkB;IAC1B,OAAO,CAAiB;IACxB,IAAI,CAAc;IAE3B,YAAY,OAAqD;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface ScalixConfig {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
defaultModel: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function configure(options: Partial<ScalixConfig>): ScalixConfig;
|
|
7
|
+
export declare function getConfig(): ScalixConfig;
|
|
8
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AASD,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAStE;AAED,wBAAgB,SAAS,IAAI,YAAY,CAKxC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const DEFAULT_CONFIG = {
|
|
2
|
+
baseUrl: 'https://api.scalix.world',
|
|
3
|
+
defaultModel: 'scalix-world-ai',
|
|
4
|
+
};
|
|
5
|
+
let _config = null;
|
|
6
|
+
export function configure(options) {
|
|
7
|
+
const env = typeof process !== 'undefined' ? process.env : {};
|
|
8
|
+
_config = {
|
|
9
|
+
...DEFAULT_CONFIG,
|
|
10
|
+
...(env.SCALIX_API_KEY && { apiKey: env.SCALIX_API_KEY }),
|
|
11
|
+
...(env.SCALIX_BASE_URL && { baseUrl: env.SCALIX_BASE_URL }),
|
|
12
|
+
...options,
|
|
13
|
+
};
|
|
14
|
+
return _config;
|
|
15
|
+
}
|
|
16
|
+
export function getConfig() {
|
|
17
|
+
if (!_config) {
|
|
18
|
+
_config = configure({});
|
|
19
|
+
}
|
|
20
|
+
return _config;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,cAAc,GAAiB;IACnC,OAAO,EAAE,0BAA0B;IACnC,YAAY,EAAE,iBAAiB;CAChC,CAAC;AAEF,IAAI,OAAO,GAAwB,IAAI,CAAC;AAExC,MAAM,UAAU,SAAS,CAAC,OAA8B;IACtD,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO,GAAG;QACR,GAAG,cAAc;QACjB,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC;QAC5D,GAAG,OAAO;KACX,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class ScalixError extends Error {
|
|
2
|
+
code?: string;
|
|
3
|
+
status?: number;
|
|
4
|
+
constructor(message: string, options?: {
|
|
5
|
+
code?: string;
|
|
6
|
+
status?: number;
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
export declare class AuthenticationError extends ScalixError {
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class RateLimitError extends ScalixError {
|
|
13
|
+
constructor(message: string);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAM1E;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,cAAe,SAAQ,WAAW;gBACjC,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class ScalixError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
status;
|
|
4
|
+
constructor(message, options) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = 'ScalixError';
|
|
7
|
+
this.code = options?.code;
|
|
8
|
+
this.status = options?.status;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class AuthenticationError extends ScalixError {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message, { code: 'AUTHENTICATION_ERROR', status: 401 });
|
|
14
|
+
this.name = 'AuthenticationError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class RateLimitError extends ScalixError {
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(message, { code: 'RATE_LIMIT_ERROR', status: 429 });
|
|
20
|
+
this.name = 'RateLimitError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,IAAI,CAAU;IACd,MAAM,CAAU;IAEhB,YAAY,OAAe,EAAE,OAA4C;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scalix SDK — TypeScript client for the Scalix API.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { ScalixClient } from '@scalix-world/sdk';
|
|
7
|
+
*
|
|
8
|
+
* const scalix = new ScalixClient({ apiKey: 'sk_scalix_...' });
|
|
9
|
+
* const reply = await scalix.chat.complete({
|
|
10
|
+
* model: 'scalix-world-ai',
|
|
11
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
export { ScalixClient } from './client.js';
|
|
18
|
+
export { configure, getConfig } from './config.js';
|
|
19
|
+
export type { ScalixConfig } from './config.js';
|
|
20
|
+
export { ScalixError, AuthenticationError, } from './errors.js';
|
|
21
|
+
export { AccountService, AudioService, ChatService, DatabaseService, DocGenService, ImagesService, RAGService, ResearchService, StorageService, TextService, } from './services/index.js';
|
|
22
|
+
export type { ChatMessage, ChatCompletionOptions, ChatCompletionResult, ScalixDatabase, CreateDatabaseOptions, Branch, Backup, DatabaseMetrics, PoolingStatus, EncryptionStatus, HAStatus, QueryResult, TableInfo, ColumnInfo, DocFormat, DocStyle, DocGenOptions, DocGenResult, DocTemplate, DocFormatInfo, ImageGenerateOptions, ImageResult, ImageJobStatus, RAGDocument, RAGQueryResult, RAGUploadResult, SentimentResult, SummaryResult, TranslationResult, UploadUrlResult, TranscriptionResult, SpeechOptions, SearchResult, ResearchResult, } from './services/index.js';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,WAAW,EACX,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,MAAM,EACN,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scalix SDK — TypeScript client for the Scalix API.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { ScalixClient } from '@scalix-world/sdk';
|
|
7
|
+
*
|
|
8
|
+
* const scalix = new ScalixClient({ apiKey: 'sk_scalix_...' });
|
|
9
|
+
* const reply = await scalix.chat.complete({
|
|
10
|
+
* model: 'scalix-world-ai',
|
|
11
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
export { ScalixClient } from './client.js';
|
|
18
|
+
export { configure, getConfig } from './config.js';
|
|
19
|
+
export { ScalixError, AuthenticationError, } from './errors.js';
|
|
20
|
+
export { AccountService, AudioService, ChatService, DatabaseService, DocGenService, ImagesService, RAGService, ResearchService, StorageService, TextService, } from './services/index.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,WAAW,EACX,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export declare class AccountService extends BaseService {
|
|
3
|
+
health(): Promise<Record<string, unknown>>;
|
|
4
|
+
listApiKeys(): Promise<Record<string, unknown>>;
|
|
5
|
+
createApiKey(options: {
|
|
6
|
+
name: string;
|
|
7
|
+
expiresAt?: string;
|
|
8
|
+
}): Promise<Record<string, unknown>>;
|
|
9
|
+
deleteApiKey(keyId: string): Promise<Record<string, unknown>>;
|
|
10
|
+
usage(options?: {
|
|
11
|
+
startDate?: string;
|
|
12
|
+
endDate?: string;
|
|
13
|
+
}): Promise<Record<string, unknown>>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/services/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,qBAAa,cAAe,SAAQ,WAAW;IAEvC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM1C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI/C,YAAY,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM9B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM7D,KAAK,CAAC,OAAO,CAAC,EAAE;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAOrC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export class AccountService extends BaseService {
|
|
3
|
+
async health() {
|
|
4
|
+
return this.request('GET', '/health');
|
|
5
|
+
}
|
|
6
|
+
// ── API Key Management ──
|
|
7
|
+
async listApiKeys() {
|
|
8
|
+
return this.request('GET', '/api/dashboard/api-keys');
|
|
9
|
+
}
|
|
10
|
+
async createApiKey(options) {
|
|
11
|
+
const body = { name: options.name };
|
|
12
|
+
if (options.expiresAt)
|
|
13
|
+
body.expires_at = options.expiresAt;
|
|
14
|
+
return this.request('POST', '/api/dashboard/api-keys', { body });
|
|
15
|
+
}
|
|
16
|
+
async deleteApiKey(keyId) {
|
|
17
|
+
return this.request('DELETE', `/api/dashboard/api-keys/${keyId}`);
|
|
18
|
+
}
|
|
19
|
+
// ── Usage & Billing ──
|
|
20
|
+
async usage(options) {
|
|
21
|
+
const params = new URLSearchParams();
|
|
22
|
+
if (options?.startDate)
|
|
23
|
+
params.set('start_date', options.startDate);
|
|
24
|
+
if (options?.endDate)
|
|
25
|
+
params.set('end_date', options.endDate);
|
|
26
|
+
const qs = params.toString();
|
|
27
|
+
return this.request('GET', `/api/billing/usage${qs ? `?${qs}` : ''}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/services/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,OAAO,cAAe,SAAQ,WAAW;IAE7C,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,2BAA2B;IAE3B,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAGlB;QACC,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB;IAExB,KAAK,CAAC,KAAK,CAAC,OAGX;QACC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export interface TranscriptionResult {
|
|
3
|
+
text: string;
|
|
4
|
+
language?: string;
|
|
5
|
+
duration?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SpeechOptions {
|
|
8
|
+
voice?: string;
|
|
9
|
+
format?: string;
|
|
10
|
+
speed?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class AudioService extends BaseService {
|
|
13
|
+
transcribe(file: Blob, options?: {
|
|
14
|
+
language?: string;
|
|
15
|
+
}): Promise<TranscriptionResult>;
|
|
16
|
+
speak(text: string, options?: SpeechOptions): Promise<Response>;
|
|
17
|
+
voices(): Promise<{
|
|
18
|
+
voices: Array<{
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
languages(): Promise<{
|
|
24
|
+
languages: string[];
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/services/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAa,SAAQ,WAAW;IACrC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOrF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAM/D,MAAM,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAIlE,SAAS,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAGpD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export class AudioService extends BaseService {
|
|
3
|
+
async transcribe(file, options) {
|
|
4
|
+
const formData = new FormData();
|
|
5
|
+
formData.append('file', file);
|
|
6
|
+
if (options?.language)
|
|
7
|
+
formData.append('language', options.language);
|
|
8
|
+
return this.requestMultipart('/v1/audio/transcribe', formData);
|
|
9
|
+
}
|
|
10
|
+
async speak(text, options) {
|
|
11
|
+
return this.requestRaw('POST', '/v1/audio/speak/kokoro', {
|
|
12
|
+
body: { text, ...options },
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async voices() {
|
|
16
|
+
return this.request('GET', '/v1/audio/kokoro/voices');
|
|
17
|
+
}
|
|
18
|
+
async languages() {
|
|
19
|
+
return this.request('GET', '/v1/audio/kokoro/languages');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/services/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAcxC,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,KAAK,CAAC,UAAU,CAAC,IAAU,EAAE,OAA+B;QAC1D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,OAAO,EAAE,QAAQ;YAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,gBAAgB,CAAsB,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAuB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,wBAAwB,EAAE;YACvD,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ScalixConfig } from '../config.js';
|
|
2
|
+
export declare class BaseService {
|
|
3
|
+
protected config: ScalixConfig;
|
|
4
|
+
constructor(config?: ScalixConfig);
|
|
5
|
+
protected request<T>(method: string, path: string, options?: {
|
|
6
|
+
body?: unknown;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
}): Promise<T>;
|
|
9
|
+
protected requestRaw(method: string, path: string, options?: {
|
|
10
|
+
body?: unknown;
|
|
11
|
+
headers?: Record<string, string>;
|
|
12
|
+
}): Promise<Response>;
|
|
13
|
+
protected requestMultipart<T>(path: string, formData: FormData): Promise<T>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/services/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5D,qBAAa,WAAW;IACtB,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;gBAEnB,MAAM,CAAC,EAAE,YAAY;cAIjB,OAAO,CAAC,CAAC,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAC7D,OAAO,CAAC,CAAC,CAAC;cA6BG,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAC7D,OAAO,CAAC,QAAQ,CAAC;cA6BJ,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,CAAC,CAAC;CAsBd"}
|