@tryhamster/gerbil 1.0.0-rc.22 → 1.0.0-rc.24
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/browser/index.d.ts +146 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +496 -20
- package/dist/browser/index.js.map +1 -1
- package/dist/cli.mjs +7 -7
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/express.d.mts +1 -3
- package/dist/frameworks/express.d.mts.map +1 -1
- package/dist/frameworks/express.mjs +3 -3
- package/dist/frameworks/express.mjs.map +1 -1
- package/dist/frameworks/fastify.d.mts +1 -1
- package/dist/frameworks/fastify.mjs +1 -1
- package/dist/frameworks/hono.d.mts +1 -1
- package/dist/frameworks/hono.mjs +1 -1
- package/dist/frameworks/next.d.mts +2 -2
- package/dist/frameworks/next.mjs +1 -1
- package/dist/frameworks/react.d.mts +1 -1
- package/dist/frameworks/react.d.mts.map +1 -1
- package/dist/frameworks/trpc.d.mts +1 -1
- package/dist/frameworks/trpc.mjs +1 -1
- package/dist/{gerbil-DJygY0sJ.d.mts → gerbil-CbnV_cG5.d.mts} +9 -2
- package/dist/gerbil-CbnV_cG5.d.mts.map +1 -0
- package/dist/{gerbil-PzPtcdeM.mjs → gerbil-DODVGr-u.mjs} +1 -1
- package/dist/{gerbil-DzZ-L6n8.mjs → gerbil-jO9anIh_.mjs} +90 -3
- package/dist/gerbil-jO9anIh_.mjs.map +1 -0
- package/dist/index.d.mts +3 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/integrations/ai-sdk.d.mts +1 -1
- package/dist/integrations/ai-sdk.mjs +1 -1
- package/dist/integrations/langchain.d.mts +1 -1
- package/dist/integrations/langchain.mjs +1 -1
- package/dist/integrations/llamaindex.d.mts +1 -1
- package/dist/integrations/llamaindex.mjs +1 -1
- package/dist/integrations/mcp.d.mts +2 -2
- package/dist/integrations/mcp.mjs +4 -4
- package/dist/{mcp-D161vL_C.mjs → mcp-tavZtFY1.mjs} +3 -3
- package/dist/{mcp-D161vL_C.mjs.map → mcp-tavZtFY1.mjs.map} +1 -1
- package/dist/{one-liner-C-pRqDK2.mjs → one-liner-Ba58M_6j.mjs} +2 -2
- package/dist/{one-liner-C-pRqDK2.mjs.map → one-liner-Ba58M_6j.mjs.map} +1 -1
- package/dist/{repl-D9x3TnQc.mjs → repl-BGly-o_e.mjs} +3 -3
- package/dist/skills/index.d.mts +6 -6
- package/dist/skills/index.d.mts.map +1 -1
- package/dist/skills/index.mjs +3 -3
- package/dist/{skills-D14RwyUN.mjs → skills-BKxP2pex.mjs} +2 -2
- package/dist/{skills-D14RwyUN.mjs.map → skills-BKxP2pex.mjs.map} +1 -1
- package/dist/{types-evP8RShr.d.mts → types-6uG8lC7u.d.mts} +65 -2
- package/dist/types-6uG8lC7u.d.mts.map +1 -0
- package/docs/architecture/overview.md +2 -0
- package/docs/observability.md +230 -0
- package/package.json +5 -4
- package/dist/gerbil-DJygY0sJ.d.mts.map +0 -1
- package/dist/gerbil-DzZ-L6n8.mjs.map +0 -1
- package/dist/types-evP8RShr.d.mts.map +0 -1
package/dist/browser/index.d.ts
CHANGED
|
@@ -138,6 +138,10 @@ type GerbilConfig = {
|
|
|
138
138
|
cache?: CacheConfig;
|
|
139
139
|
/** Fallback configuration */
|
|
140
140
|
fallback?: FallbackConfig;
|
|
141
|
+
/** Telemetry hooks for observability (Sentry, logging, etc.) */
|
|
142
|
+
telemetry?: TelemetryConfig;
|
|
143
|
+
/** Concurrency control for request queuing */
|
|
144
|
+
concurrency?: ConcurrencyConfig;
|
|
141
145
|
};
|
|
142
146
|
type CacheConfig = {
|
|
143
147
|
/** Enable caching (default: true) */
|
|
@@ -366,12 +370,70 @@ type StreamingTranscriptionSession = {
|
|
|
366
370
|
/** Reset session (clear buffer and transcript) */
|
|
367
371
|
reset: () => void;
|
|
368
372
|
};
|
|
373
|
+
/**
|
|
374
|
+
* Telemetry hooks for production observability.
|
|
375
|
+
* Pass your own Sentry instance or custom logging functions.
|
|
376
|
+
*/
|
|
377
|
+
type TelemetryConfig = {
|
|
378
|
+
/**
|
|
379
|
+
* Called after successful generation with full result and timing.
|
|
380
|
+
* Use for logging, metrics, or analytics.
|
|
381
|
+
*/
|
|
382
|
+
onGenerate?: (event: GenerateEvent) => void;
|
|
383
|
+
/**
|
|
384
|
+
* Called when any error occurs during Gerbil operations.
|
|
385
|
+
* Perfect for Sentry.captureException() or similar.
|
|
386
|
+
*/
|
|
387
|
+
onError?: (error: Error, context: ErrorContext) => void;
|
|
388
|
+
/**
|
|
389
|
+
* Called after model loading completes (success or failure).
|
|
390
|
+
*/
|
|
391
|
+
onModelLoad?: (event: ModelLoadEvent) => void;
|
|
392
|
+
/**
|
|
393
|
+
* Called when a request is queued (if concurrency limit reached).
|
|
394
|
+
*/
|
|
395
|
+
onQueueWait?: (waitTimeMs: number) => void;
|
|
396
|
+
};
|
|
397
|
+
type GenerateEvent = {
|
|
398
|
+
/** Model used for generation */
|
|
399
|
+
modelId: string;
|
|
400
|
+
/** Generation result */
|
|
401
|
+
result: GenerateResult;
|
|
402
|
+
/** Whether response came from cache */
|
|
403
|
+
cached: boolean;
|
|
404
|
+
/** Time spent waiting in queue (if any) */
|
|
405
|
+
queueTimeMs?: number;
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Context passed to telemetry onError callback.
|
|
409
|
+
* Flexible record to allow any relevant context data.
|
|
410
|
+
*/
|
|
411
|
+
type ErrorContext = Record<string, unknown>;
|
|
412
|
+
type ModelLoadEvent = {
|
|
413
|
+
/** Model that was loaded */
|
|
414
|
+
modelId: string;
|
|
415
|
+
/** Time to load in ms */
|
|
416
|
+
loadTimeMs: number;
|
|
417
|
+
/** Whether loaded from cache */
|
|
418
|
+
fromCache: boolean;
|
|
419
|
+
/** Device used */
|
|
420
|
+
device: "webgpu" | "cpu" | "wasm";
|
|
421
|
+
/** Whether load succeeded */
|
|
422
|
+
success: boolean;
|
|
423
|
+
/** Error message if failed */
|
|
424
|
+
error?: string;
|
|
425
|
+
};
|
|
426
|
+
type ConcurrencyConfig = {
|
|
427
|
+
/** Maximum concurrent generation requests (default: 1 for LLM) */
|
|
428
|
+
maxConcurrent?: number;
|
|
429
|
+
/** Request timeout in ms (default: 300000 = 5 min) */
|
|
430
|
+
timeout?: number;
|
|
431
|
+
};
|
|
369
432
|
//#endregion
|
|
370
433
|
//#region src/core/models.d.ts
|
|
371
434
|
declare const BUILTIN_MODELS: Record<string, ModelConfig>;
|
|
372
435
|
//#endregion
|
|
373
436
|
//#region src/browser/index.d.ts
|
|
374
|
-
|
|
375
437
|
type WorkerProgress = {
|
|
376
438
|
status: "loading" | "downloading" | "ready" | "error";
|
|
377
439
|
message?: string;
|
|
@@ -1217,6 +1279,80 @@ declare function getRecommendedModels(): {
|
|
|
1217
1279
|
deviceMemory: number | null;
|
|
1218
1280
|
isMobile: boolean;
|
|
1219
1281
|
};
|
|
1282
|
+
/**
|
|
1283
|
+
* Check if a model is safe to load on the current device.
|
|
1284
|
+
* Returns guidance specific to iOS memory constraints.
|
|
1285
|
+
*/
|
|
1286
|
+
declare function isModelSafeForDevice(modelId: string): {
|
|
1287
|
+
safe: boolean;
|
|
1288
|
+
reason: string;
|
|
1289
|
+
recommendation?: string;
|
|
1290
|
+
maxSafeModel?: string;
|
|
1291
|
+
};
|
|
1292
|
+
type DownloadPhase = "idle" | "downloading" | "caching" | "initializing" | "ready" | "error";
|
|
1293
|
+
type SessionState = {
|
|
1294
|
+
phase: DownloadPhase;
|
|
1295
|
+
modelId: string | null;
|
|
1296
|
+
sessionId: string;
|
|
1297
|
+
timestamp: number;
|
|
1298
|
+
bytesDownloaded?: number;
|
|
1299
|
+
totalBytes?: number;
|
|
1300
|
+
};
|
|
1301
|
+
/**
|
|
1302
|
+
* Set the current download/initialization phase.
|
|
1303
|
+
* Used to detect if a reload happened during a critical operation.
|
|
1304
|
+
*/
|
|
1305
|
+
declare function setDownloadPhase(phase: DownloadPhase, modelId?: string, progress?: {
|
|
1306
|
+
bytesDownloaded: number;
|
|
1307
|
+
totalBytes: number;
|
|
1308
|
+
}): void;
|
|
1309
|
+
/**
|
|
1310
|
+
* Get the last known download phase from storage.
|
|
1311
|
+
*/
|
|
1312
|
+
declare function getDownloadPhase(): SessionState | null;
|
|
1313
|
+
/**
|
|
1314
|
+
* Detect if the page reloaded during a model download/initialization.
|
|
1315
|
+
* This typically indicates an iOS memory crash.
|
|
1316
|
+
*
|
|
1317
|
+
* @returns Detection result with recommended action
|
|
1318
|
+
*/
|
|
1319
|
+
declare function detectMemoryCrash(): {
|
|
1320
|
+
crashed: boolean;
|
|
1321
|
+
phase?: DownloadPhase;
|
|
1322
|
+
modelId?: string;
|
|
1323
|
+
timeSinceCrash?: number;
|
|
1324
|
+
recommendation?: string;
|
|
1325
|
+
};
|
|
1326
|
+
/**
|
|
1327
|
+
* Clear session phase (call when model loads successfully).
|
|
1328
|
+
*/
|
|
1329
|
+
declare function clearDownloadPhase(): void;
|
|
1330
|
+
/**
|
|
1331
|
+
* Chunked resumable downloader for large model files.
|
|
1332
|
+
* Downloads in 1.5MB chunks to avoid iOS memory pressure.
|
|
1333
|
+
*/
|
|
1334
|
+
declare function downloadModelChunked(url: string, modelId: string, options?: {
|
|
1335
|
+
onProgress?: (info: {
|
|
1336
|
+
phase: string;
|
|
1337
|
+
bytesDownloaded: number;
|
|
1338
|
+
totalBytes: number;
|
|
1339
|
+
percent: number;
|
|
1340
|
+
}) => void;
|
|
1341
|
+
signal?: AbortSignal;
|
|
1342
|
+
}): Promise<ArrayBuffer>;
|
|
1343
|
+
/**
|
|
1344
|
+
* Check if a model has an incomplete download.
|
|
1345
|
+
*/
|
|
1346
|
+
declare function hasIncompleteDownload(modelId: string): Promise<{
|
|
1347
|
+
incomplete: boolean;
|
|
1348
|
+
bytesDownloaded?: number;
|
|
1349
|
+
totalBytes?: number;
|
|
1350
|
+
percent?: number;
|
|
1351
|
+
}>;
|
|
1352
|
+
/**
|
|
1353
|
+
* Clear incomplete download data for a model.
|
|
1354
|
+
*/
|
|
1355
|
+
declare function clearIncompleteDownload(modelId: string): Promise<void>;
|
|
1220
1356
|
/**
|
|
1221
1357
|
* Check if there's enough storage quota for a model download.
|
|
1222
1358
|
* Returns estimated available space and whether download should proceed.
|
|
@@ -1236,6 +1372,14 @@ declare const _default: {
|
|
|
1236
1372
|
getBrowserDiagnostics: typeof getBrowserDiagnostics;
|
|
1237
1373
|
getRecommendedModels: typeof getRecommendedModels;
|
|
1238
1374
|
checkStorageQuota: typeof checkStorageQuota;
|
|
1375
|
+
isModelSafeForDevice: typeof isModelSafeForDevice;
|
|
1376
|
+
setDownloadPhase: typeof setDownloadPhase;
|
|
1377
|
+
getDownloadPhase: typeof getDownloadPhase;
|
|
1378
|
+
detectMemoryCrash: typeof detectMemoryCrash;
|
|
1379
|
+
clearDownloadPhase: typeof clearDownloadPhase;
|
|
1380
|
+
downloadModelChunked: typeof downloadModelChunked;
|
|
1381
|
+
hasIncompleteDownload: typeof hasIncompleteDownload;
|
|
1382
|
+
clearIncompleteDownload: typeof clearIncompleteDownload;
|
|
1239
1383
|
createGerbilWorker: typeof createGerbilWorker;
|
|
1240
1384
|
playAudio: typeof playAudio;
|
|
1241
1385
|
createAudioPlayer: typeof createAudioPlayer;
|
|
@@ -1245,5 +1389,5 @@ declare const _default: {
|
|
|
1245
1389
|
preloadSTTModel: typeof preloadSTTModel;
|
|
1246
1390
|
};
|
|
1247
1391
|
//#endregion
|
|
1248
|
-
export { AudioChunk, BUILTIN_MODELS, BrowserEmbedResult, BrowserSearchResult, BrowserVoiceInfo, CacheConfig, CompleteOptions, EmbedOptions, EmbedResult, FallbackConfig, GenerateOptions, GenerateResult, GenerateStreamOptions, GerbilConfig, GerbilModelSettings, GerbilProviderSettings, GerbilWorker, GerbilWorkerOptions, ImageInput, JsonOptions, LoadOptions, LoadSTTOptions, LoadTTSOptions, LoadingProgress, Message, ModelConfig, ModelSource, ModelStats, PreloadOptions, PreloadProgress, ProgressInfo, STTModelConfig, STTProgress, SearchResult, SessionStats, SimilarityResult, SpeakOptions, SpeakResult, StreamingTranscriptionOptions, StreamingTranscriptionSession, SystemInfo, TTSModelConfig, TTSModelId, TTSProgress, TranscribeOptions, TranscribeResult, TranscribeSegment, UseChatOptions, UseChatReturn, UseCompletionOptions, UseCompletionReturn, UseEmbeddingOptions, UseEmbeddingReturn, UseSpeechOptions, UseSpeechReturn, UseVoiceChatOptions, UseVoiceChatReturn, UseVoiceInputOptions, UseVoiceInputReturn, VoiceChatMessage, VoiceInfo, WorkerComplete, WorkerProgress, WorkerToken, checkStorageQuota, checkWebGPUCapabilities, checkWebGPUReady, createAudioPlayer, createGerbilWorker, _default as default, getBrowserDiagnostics, getRecommendedModels, getWebGPUInfo, isWebGPUSupported, playAudio, preloadChatModel, preloadEmbeddingModel, preloadSTTModel, preloadTTSModel, useChat, useCompletion, useEmbedding, useSpeech, useVoiceChat, useVoiceInput };
|
|
1392
|
+
export { AudioChunk, BUILTIN_MODELS, BrowserEmbedResult, BrowserSearchResult, BrowserVoiceInfo, CacheConfig, CompleteOptions, ConcurrencyConfig, EmbedOptions, EmbedResult, ErrorContext, FallbackConfig, GenerateEvent, GenerateOptions, GenerateResult, GenerateStreamOptions, GerbilConfig, GerbilModelSettings, GerbilProviderSettings, GerbilWorker, GerbilWorkerOptions, ImageInput, JsonOptions, LoadOptions, LoadSTTOptions, LoadTTSOptions, LoadingProgress, Message, ModelConfig, ModelLoadEvent, ModelSource, ModelStats, PreloadOptions, PreloadProgress, ProgressInfo, STTModelConfig, STTProgress, SearchResult, SessionStats, SimilarityResult, SpeakOptions, SpeakResult, StreamingTranscriptionOptions, StreamingTranscriptionSession, SystemInfo, TTSModelConfig, TTSModelId, TTSProgress, TelemetryConfig, TranscribeOptions, TranscribeResult, TranscribeSegment, UseChatOptions, UseChatReturn, UseCompletionOptions, UseCompletionReturn, UseEmbeddingOptions, UseEmbeddingReturn, UseSpeechOptions, UseSpeechReturn, UseVoiceChatOptions, UseVoiceChatReturn, UseVoiceInputOptions, UseVoiceInputReturn, VoiceChatMessage, VoiceInfo, WorkerComplete, WorkerProgress, WorkerToken, checkStorageQuota, checkWebGPUCapabilities, checkWebGPUReady, clearDownloadPhase, clearIncompleteDownload, createAudioPlayer, createGerbilWorker, _default as default, detectMemoryCrash, downloadModelChunked, getBrowserDiagnostics, getDownloadPhase, getRecommendedModels, getWebGPUInfo, hasIncompleteDownload, isModelSafeForDevice, isWebGPUSupported, playAudio, preloadChatModel, preloadEmbeddingModel, preloadSTTModel, preloadTTSModel, setDownloadPhase, useChat, useCompletion, useEmbedding, useSpeech, useVoiceChat, useVoiceInput };
|
|
1249
1393
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/types.ts","../../src/core/models.ts","../../src/browser/index.ts"],"sourcesContent":[],"mappings":";;;;AAyBY,KAfA,WAAA,GAeW;EASX,EAAA,EAAA,MAAA;EAWA,IAAA,EAAA,MAAA;EAmCA,WAAA,EAAA,MAAc;EA8Bd,IAAA,EAAA,MAAA;EAkBA,aAAA,EAAY,MAAA;EAQZ,gBAAW,EAAA,OAAA;EAWX,YAAA,EAAA,OAAY;EAWZ;EAkBA,cAAW,CAAA,EAAA,OAAA;EAqBX;EAYA,iBAAY,CAAA,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/core/types.ts","../../src/core/models.ts","../../src/browser/index.ts"],"sourcesContent":[],"mappings":"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"}
|