@usabledev/usable-chat 1.183.0 → 1.185.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/cli.js +54 -16
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -93365,6 +93365,8 @@ var init_env2 = __esm({
|
|
|
93365
93365
|
GEMINI_IMAGE_GEN_API_KEY: external_exports.string().min(1).optional(),
|
|
93366
93366
|
// OpenAI API Configuration (for image generation via gpt-image-2)
|
|
93367
93367
|
OPENAI_IMAGE_GEN_API_KEY: external_exports.string().min(1).optional(),
|
|
93368
|
+
// OpenAI Realtime API (interactive talk mode; server-side only)
|
|
93369
|
+
OPENAI_API_KEY: external_exports.string().min(1).optional(),
|
|
93368
93370
|
// Flowcore Configuration
|
|
93369
93371
|
FLOWCORE_TENANT: external_exports.string().min(1),
|
|
93370
93372
|
FLOWCORE_DATACORE: external_exports.string().min(1),
|
|
@@ -93372,6 +93374,10 @@ var init_env2 = __esm({
|
|
|
93372
93374
|
FLOWCORE_WEBHOOK_API_KEY: external_exports.string().min(1),
|
|
93373
93375
|
FLOWCORE_API_KEY: external_exports.string().min(1).optional(),
|
|
93374
93376
|
FLOWCORE_TRANSFORMER_SECRET: external_exports.string().min(1).default("1234"),
|
|
93377
|
+
FLOWCORE_PROVISION_PATHWAY: external_exports.string().transform((val) => val === "true").default("false"),
|
|
93378
|
+
FLOWCORE_PATHWAY_NAME: external_exports.string().min(1).optional(),
|
|
93379
|
+
FLOWCORE_PATHWAY_ENDPOINT_URL: external_exports.string().url().optional(),
|
|
93380
|
+
FLOWCORE_DATA_CORE_DELETE_PROTECTION: external_exports.string().transform((val) => val !== "false").default("true"),
|
|
93375
93381
|
DATABASE_URL: external_exports.string().url(),
|
|
93376
93382
|
// Feature Flags
|
|
93377
93383
|
ENABLE_SANDBOXES: external_exports.string().transform((val) => val === "true").default("false"),
|
|
@@ -93474,6 +93480,7 @@ var init_env2 = __esm({
|
|
|
93474
93480
|
GEMINI_IMAGE_GEN_API_KEY: process.env.GEMINI_IMAGE_GEN_API_KEY,
|
|
93475
93481
|
// OpenAI API Configuration (for image generation via gpt-image-2)
|
|
93476
93482
|
OPENAI_IMAGE_GEN_API_KEY: process.env.OPENAI_IMAGE_GEN_API_KEY,
|
|
93483
|
+
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
|
|
93477
93484
|
// Flowcore Configuration
|
|
93478
93485
|
FLOWCORE_TENANT: process.env.FLOWCORE_TENANT,
|
|
93479
93486
|
FLOWCORE_DATACORE: process.env.FLOWCORE_DATACORE,
|
|
@@ -93481,6 +93488,10 @@ var init_env2 = __esm({
|
|
|
93481
93488
|
FLOWCORE_WEBHOOK_API_KEY: process.env.FLOWCORE_WEBHOOK_API_KEY,
|
|
93482
93489
|
FLOWCORE_API_KEY: process.env.FLOWCORE_API_KEY,
|
|
93483
93490
|
FLOWCORE_TRANSFORMER_SECRET: process.env.FLOWCORE_TRANSFORMER_SECRET,
|
|
93491
|
+
FLOWCORE_PROVISION_PATHWAY: process.env.FLOWCORE_PROVISION_PATHWAY,
|
|
93492
|
+
FLOWCORE_PATHWAY_NAME: process.env.FLOWCORE_PATHWAY_NAME,
|
|
93493
|
+
FLOWCORE_PATHWAY_ENDPOINT_URL: process.env.FLOWCORE_PATHWAY_ENDPOINT_URL,
|
|
93494
|
+
FLOWCORE_DATA_CORE_DELETE_PROTECTION: process.env.FLOWCORE_DATA_CORE_DELETE_PROTECTION,
|
|
93484
93495
|
DATABASE_URL: process.env.DATABASE_URL,
|
|
93485
93496
|
// Feature Flags
|
|
93486
93497
|
ENABLE_SANDBOXES: process.env.ENABLE_SANDBOXES,
|
|
@@ -93597,13 +93608,22 @@ var init_config = __esm({
|
|
|
93597
93608
|
apiKey: env.OPENAI_IMAGE_GEN_API_KEY,
|
|
93598
93609
|
apiUrl: "https://api.openai.com/v1/images/generations"
|
|
93599
93610
|
},
|
|
93611
|
+
talkMode: {
|
|
93612
|
+
// Prefer a dedicated Realtime key, while reusing the existing server-side
|
|
93613
|
+
// OpenAI project key when deployments already provide image generation.
|
|
93614
|
+
openaiApiKey: env.OPENAI_API_KEY ?? env.OPENAI_IMAGE_GEN_API_KEY
|
|
93615
|
+
},
|
|
93600
93616
|
flowcore: {
|
|
93601
93617
|
tenant: env.FLOWCORE_TENANT,
|
|
93602
93618
|
dataCore: env.FLOWCORE_DATACORE,
|
|
93603
93619
|
webhookBaseUrl: env.FLOWCORE_WEBHOOK_BASE_URL,
|
|
93604
93620
|
apiKey: env.FLOWCORE_WEBHOOK_API_KEY,
|
|
93605
93621
|
platformApiKey: env.FLOWCORE_API_KEY,
|
|
93606
|
-
webhookSecret: env.FLOWCORE_TRANSFORMER_SECRET
|
|
93622
|
+
webhookSecret: env.FLOWCORE_TRANSFORMER_SECRET,
|
|
93623
|
+
provisionPathway: env.FLOWCORE_PROVISION_PATHWAY,
|
|
93624
|
+
pathwayName: env.FLOWCORE_PATHWAY_NAME,
|
|
93625
|
+
pathwayEndpointUrl: env.FLOWCORE_PATHWAY_ENDPOINT_URL,
|
|
93626
|
+
dataCoreDeleteProtection: env.FLOWCORE_DATA_CORE_DELETE_PROTECTION
|
|
93607
93627
|
},
|
|
93608
93628
|
database: {
|
|
93609
93629
|
url: env.DATABASE_URL
|
|
@@ -215283,23 +215303,37 @@ function getRedis() {
|
|
|
215283
215303
|
}
|
|
215284
215304
|
}
|
|
215285
215305
|
async function isRedisAvailable() {
|
|
215286
|
-
|
|
215287
|
-
|
|
215288
|
-
|
|
215289
|
-
|
|
215290
|
-
|
|
215291
|
-
|
|
215306
|
+
const cacheTtl = redisAvailable ? REDIS_SUCCESS_RECHECK_MS : REDIS_FAILURE_RETRY_MS;
|
|
215307
|
+
if (redisAvailable !== null && Date.now() - redisAvailabilityCheckedAt < cacheTtl) {
|
|
215308
|
+
return redisAvailable;
|
|
215309
|
+
}
|
|
215310
|
+
if (redisAvailabilityProbe) return redisAvailabilityProbe;
|
|
215311
|
+
redisAvailabilityProbe = (async () => {
|
|
215312
|
+
const redis = getRedis();
|
|
215313
|
+
if (!redis) {
|
|
215314
|
+
redisAvailable = false;
|
|
215315
|
+
redisAvailabilityCheckedAt = Date.now();
|
|
215316
|
+
return false;
|
|
215317
|
+
}
|
|
215318
|
+
try {
|
|
215319
|
+
await redis.ping();
|
|
215320
|
+
redisAvailable = true;
|
|
215321
|
+
redisAvailabilityCheckedAt = Date.now();
|
|
215322
|
+
return true;
|
|
215323
|
+
} catch {
|
|
215324
|
+
logger3.warn("Redis ping failed; background features are temporarily unavailable");
|
|
215325
|
+
redisAvailable = false;
|
|
215326
|
+
redisAvailabilityCheckedAt = Date.now();
|
|
215327
|
+
return false;
|
|
215328
|
+
}
|
|
215329
|
+
})();
|
|
215292
215330
|
try {
|
|
215293
|
-
await
|
|
215294
|
-
|
|
215295
|
-
|
|
215296
|
-
} catch {
|
|
215297
|
-
logger3.warn("Redis ping failed - falling back to direct streaming");
|
|
215298
|
-
redisAvailable = false;
|
|
215299
|
-
return false;
|
|
215331
|
+
return await redisAvailabilityProbe;
|
|
215332
|
+
} finally {
|
|
215333
|
+
redisAvailabilityProbe = null;
|
|
215300
215334
|
}
|
|
215301
215335
|
}
|
|
215302
|
-
var logger3, redisConfigured, redisAvailable;
|
|
215336
|
+
var logger3, redisConfigured, redisAvailable, redisAvailabilityCheckedAt, redisAvailabilityProbe, REDIS_FAILURE_RETRY_MS, REDIS_SUCCESS_RECHECK_MS;
|
|
215303
215337
|
var init_redis = __esm({
|
|
215304
215338
|
"src/lib/redis/index.ts"() {
|
|
215305
215339
|
"use strict";
|
|
@@ -215309,6 +215343,10 @@ var init_redis = __esm({
|
|
|
215309
215343
|
logger3 = createLogger("redis");
|
|
215310
215344
|
redisConfigured = false;
|
|
215311
215345
|
redisAvailable = null;
|
|
215346
|
+
redisAvailabilityCheckedAt = 0;
|
|
215347
|
+
redisAvailabilityProbe = null;
|
|
215348
|
+
REDIS_FAILURE_RETRY_MS = 1e3;
|
|
215349
|
+
REDIS_SUCCESS_RECHECK_MS = 5e3;
|
|
215312
215350
|
}
|
|
215313
215351
|
});
|
|
215314
215352
|
|
|
@@ -311444,7 +311482,7 @@ init_tui_select();
|
|
|
311444
311482
|
init_model_registry();
|
|
311445
311483
|
|
|
311446
311484
|
// package.json
|
|
311447
|
-
var version2 = "1.
|
|
311485
|
+
var version2 = "1.185.0";
|
|
311448
311486
|
|
|
311449
311487
|
// src/adapters/cli/model-catalog.ts
|
|
311450
311488
|
init_codex_auth();
|