@elizaos/plugin-elizacloud 2.0.3-beta.2 → 2.0.3-beta.3

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.
Files changed (182) hide show
  1. package/dist/cjs/index.node.cjs +32 -8
  2. package/dist/cjs/index.node.js.map +7 -7
  3. package/dist/cloud/auth-service-types.js +1 -1
  4. package/dist/cloud/auth-service-types.js.map +1 -1
  5. package/dist/cloud/auth.js +1 -1
  6. package/dist/cloud/auth.js.map +1 -1
  7. package/dist/cloud/backup.js +1 -1
  8. package/dist/cloud/backup.js.map +1 -1
  9. package/dist/cloud/base-url.js +1 -1
  10. package/dist/cloud/base-url.js.map +1 -1
  11. package/dist/cloud/bridge-client.js +1 -1
  12. package/dist/cloud/bridge-client.js.map +1 -1
  13. package/dist/cloud/clack-observer.js +1 -1
  14. package/dist/cloud/clack-observer.js.map +1 -1
  15. package/dist/cloud/cloud-api-key.js +1 -1
  16. package/dist/cloud/cloud-api-key.js.map +1 -1
  17. package/dist/cloud/cloud-manager.js +1 -1
  18. package/dist/cloud/cloud-manager.js.map +1 -1
  19. package/dist/cloud/cloud-proxy.js +1 -1
  20. package/dist/cloud/cloud-proxy.js.map +1 -1
  21. package/dist/cloud/cloud-wallet.js +1 -1
  22. package/dist/cloud/cloud-wallet.js.map +1 -1
  23. package/dist/cloud/duffel-client.js +1 -1
  24. package/dist/cloud/duffel-client.js.map +1 -1
  25. package/dist/cloud/index.js +914 -11
  26. package/dist/cloud/index.js.map +13 -4
  27. package/dist/cloud/lifeops-schedule-sync-client.js +1 -1
  28. package/dist/cloud/lifeops-schedule-sync-client.js.map +1 -1
  29. package/dist/cloud/lifeops-schedule-sync-contracts.js +1 -1
  30. package/dist/cloud/lifeops-schedule-sync-contracts.js.map +1 -1
  31. package/dist/cloud/managed-payment-clients.js +1 -1
  32. package/dist/cloud/managed-payment-clients.js.map +1 -1
  33. package/dist/cloud/null-observer.js +1 -1
  34. package/dist/cloud/null-observer.js.map +1 -1
  35. package/dist/cloud/reconnect.js +1 -1
  36. package/dist/cloud/reconnect.js.map +1 -1
  37. package/dist/cloud/validate-url.js +1 -1
  38. package/dist/cloud/validate-url.js.map +1 -1
  39. package/dist/cloud/x402-payment-handler.js +1 -1
  40. package/dist/cloud/x402-payment-handler.js.map +1 -1
  41. package/dist/cloud-providers/cloud-status.js +1 -1
  42. package/dist/cloud-providers/cloud-status.js.map +1 -1
  43. package/dist/cloud-providers/container-health.js +1 -1
  44. package/dist/cloud-providers/container-health.js.map +1 -1
  45. package/dist/cloud-providers/credit-balance.js +1 -1
  46. package/dist/cloud-providers/credit-balance.js.map +1 -1
  47. package/dist/cloud-providers/index.js +1 -1
  48. package/dist/cloud-providers/index.js.map +1 -1
  49. package/dist/cloud-providers/model-registry.js +1 -1
  50. package/dist/cloud-providers/model-registry.js.map +1 -1
  51. package/dist/cloud-setup.js +1 -1
  52. package/dist/cloud-setup.js.map +1 -1
  53. package/dist/cloud-voice-catalog.js +1 -1
  54. package/dist/cloud-voice-catalog.js.map +2 -2
  55. package/dist/index.js +45 -16
  56. package/dist/index.js.map +9 -8
  57. package/dist/init.js +1 -1
  58. package/dist/init.js.map +1 -1
  59. package/dist/lib/cloud-connection.js +1 -1
  60. package/dist/lib/cloud-connection.js.map +1 -1
  61. package/dist/lib/cloud-secrets.js +1 -1
  62. package/dist/lib/cloud-secrets.js.map +1 -1
  63. package/dist/lib/config-env.js +1 -1
  64. package/dist/lib/config-env.js.map +1 -1
  65. package/dist/lib/config-like.js +1 -1
  66. package/dist/lib/config-like.js.map +1 -1
  67. package/dist/lib/credential-type-map.js +1 -1
  68. package/dist/lib/credential-type-map.js.map +1 -1
  69. package/dist/lib/feature-flags.js +1 -1
  70. package/dist/lib/feature-flags.js.map +1 -1
  71. package/dist/lib/http.js +1 -1
  72. package/dist/lib/http.js.map +1 -1
  73. package/dist/lib/server-cloud-tts.js +1 -1
  74. package/dist/lib/server-cloud-tts.js.map +1 -1
  75. package/dist/lib/state-paths.js +1 -1
  76. package/dist/lib/state-paths.js.map +1 -1
  77. package/dist/lib/tts-debug.js +1 -1
  78. package/dist/lib/tts-debug.js.map +1 -1
  79. package/dist/models/embeddings.d.ts.map +1 -1
  80. package/dist/models/embeddings.js +4 -1
  81. package/dist/models/embeddings.js.map +3 -3
  82. package/dist/models/image.js +1 -1
  83. package/dist/models/image.js.map +1 -1
  84. package/dist/models/index.js +32 -8
  85. package/dist/models/index.js.map +5 -5
  86. package/dist/models/research.js +1 -1
  87. package/dist/models/research.js.map +1 -1
  88. package/dist/models/speech.js +1 -1
  89. package/dist/models/speech.js.map +2 -2
  90. package/dist/models/text.d.ts +1 -0
  91. package/dist/models/text.d.ts.map +1 -1
  92. package/dist/models/text.js +30 -8
  93. package/dist/models/text.js.map +3 -3
  94. package/dist/models/tokenization.js +1 -1
  95. package/dist/models/tokenization.js.map +1 -1
  96. package/dist/models/transcription.js +1 -1
  97. package/dist/models/transcription.js.map +1 -1
  98. package/dist/node/index.node.js +32 -8
  99. package/dist/node/index.node.js.map +7 -7
  100. package/dist/plugin.js +1 -1
  101. package/dist/plugin.js.map +1 -1
  102. package/dist/providers/openai.js +1 -1
  103. package/dist/providers/openai.js.map +1 -1
  104. package/dist/register-routes.js +1 -1
  105. package/dist/register-routes.js.map +1 -1
  106. package/dist/routes/cloud-billing-routes.js +1 -1
  107. package/dist/routes/cloud-billing-routes.js.map +1 -1
  108. package/dist/routes/cloud-coding-container-routes.js +1 -1
  109. package/dist/routes/cloud-coding-container-routes.js.map +1 -1
  110. package/dist/routes/cloud-compat-routes.js +1 -1
  111. package/dist/routes/cloud-compat-routes.js.map +1 -1
  112. package/dist/routes/cloud-features-routes.js +1 -1
  113. package/dist/routes/cloud-features-routes.js.map +1 -1
  114. package/dist/routes/cloud-provisioning.js +1 -1
  115. package/dist/routes/cloud-provisioning.js.map +1 -1
  116. package/dist/routes/cloud-relay-routes.js +1 -1
  117. package/dist/routes/cloud-relay-routes.js.map +1 -1
  118. package/dist/routes/cloud-routes-autonomous.js +1 -1
  119. package/dist/routes/cloud-routes-autonomous.js.map +1 -1
  120. package/dist/routes/cloud-routes.js +1 -1
  121. package/dist/routes/cloud-routes.js.map +1 -1
  122. package/dist/routes/cloud-status-routes-autonomous.js +1 -1
  123. package/dist/routes/cloud-status-routes-autonomous.js.map +1 -1
  124. package/dist/routes/cloud-status-routes.js +1 -1
  125. package/dist/routes/cloud-status-routes.js.map +1 -1
  126. package/dist/routes/home-remote-runner-access-url.js +1 -1
  127. package/dist/routes/home-remote-runner-access-url.js.map +1 -1
  128. package/dist/routes/travel-provider-relay-routes.js +1 -1
  129. package/dist/routes/travel-provider-relay-routes.js.map +1 -1
  130. package/dist/services/cloud-auth.js +1 -1
  131. package/dist/services/cloud-auth.js.map +1 -1
  132. package/dist/services/cloud-backup.js +1 -1
  133. package/dist/services/cloud-backup.js.map +1 -1
  134. package/dist/services/cloud-bootstrap.js +1 -1
  135. package/dist/services/cloud-bootstrap.js.map +1 -1
  136. package/dist/services/cloud-bridge.js +1 -1
  137. package/dist/services/cloud-bridge.js.map +1 -1
  138. package/dist/services/cloud-container.js +1 -1
  139. package/dist/services/cloud-container.js.map +1 -1
  140. package/dist/services/cloud-credential-provider.js +1 -1
  141. package/dist/services/cloud-credential-provider.js.map +1 -1
  142. package/dist/services/cloud-managed-gateway-relay.js +1 -1
  143. package/dist/services/cloud-managed-gateway-relay.js.map +1 -1
  144. package/dist/services/cloud-model-registry.js +1 -1
  145. package/dist/services/cloud-model-registry.js.map +1 -1
  146. package/dist/services/index.js +1 -1
  147. package/dist/services/index.js.map +1 -1
  148. package/dist/types/cloud.js +1 -1
  149. package/dist/types/cloud.js.map +1 -1
  150. package/dist/types/index.js +1 -1
  151. package/dist/types/index.js.map +1 -1
  152. package/dist/utils/cloud-api.js +1 -1
  153. package/dist/utils/cloud-api.js.map +1 -1
  154. package/dist/utils/cloud-sdk/client.js +1 -1
  155. package/dist/utils/cloud-sdk/client.js.map +1 -1
  156. package/dist/utils/cloud-sdk/http.js +1 -1
  157. package/dist/utils/cloud-sdk/http.js.map +1 -1
  158. package/dist/utils/cloud-sdk/index.js +1 -1
  159. package/dist/utils/cloud-sdk/index.js.map +1 -1
  160. package/dist/utils/cloud-sdk/public-routes.js +1 -1
  161. package/dist/utils/cloud-sdk/public-routes.js.map +1 -1
  162. package/dist/utils/cloud-sdk/types.js +1 -1
  163. package/dist/utils/cloud-sdk/types.js.map +1 -1
  164. package/dist/utils/config.js +1 -1
  165. package/dist/utils/config.js.map +1 -1
  166. package/dist/utils/events.js +1 -1
  167. package/dist/utils/events.js.map +1 -1
  168. package/dist/utils/helpers.js +1 -1
  169. package/dist/utils/helpers.js.map +1 -1
  170. package/dist/utils/responses-output.js +1 -1
  171. package/dist/utils/responses-output.js.map +1 -1
  172. package/dist/utils/sdk-client.js +1 -1
  173. package/dist/utils/sdk-client.js.map +1 -1
  174. package/dist/utils/waifu-metering.js +1 -1
  175. package/dist/utils/waifu-metering.js.map +1 -1
  176. package/package.json +6 -5
  177. package/registry-entry.json +208 -0
  178. package/src/cloud-voice-catalog.ts +2 -2
  179. package/src/index.ts +1 -1
  180. package/src/models/embeddings.ts +9 -0
  181. package/src/models/speech.ts +2 -2
  182. package/src/models/text.ts +54 -6
@@ -348,6 +348,18 @@ function isReasoningModel(modelName: string): boolean {
348
348
  return REASONING_MODEL_PATTERNS.some((pattern) => lower.includes(pattern));
349
349
  }
350
350
 
351
+ /**
352
+ * True when the Cloud gateway routes this model to Cerebras (the gpt-oss
353
+ * family). Cerebras's OpenAI-compatible endpoint rejects
354
+ * `response_format: { type: "json_schema", ... }` with a 400, so structured
355
+ * output for these models must fall back to `{ type: "json_object" }`.
356
+ * Mirrors plugin-openai's `isCerebrasMode` json_object scrub, detected by
357
+ * model name here because one Cloud key serves many providers.
358
+ */
359
+ function isCerebrasServedModel(modelName: string): boolean {
360
+ return modelName.toLowerCase().includes("gpt-oss");
361
+ }
362
+
351
363
  function isRecord(value: unknown): value is Record<string, unknown> {
352
364
  return typeof value === "object" && value !== null && !Array.isArray(value);
353
365
  }
@@ -509,7 +521,7 @@ export function normalizeNativeTools(tools: unknown): unknown[] | undefined {
509
521
  return normalized.length > 0 ? normalized : undefined;
510
522
  }
511
523
 
512
- function normalizeNativeToolChoice(toolChoice: unknown): unknown {
524
+ export function normalizeNativeToolChoice(toolChoice: unknown): unknown {
513
525
  if (!toolChoice) {
514
526
  return undefined;
515
527
  }
@@ -523,7 +535,17 @@ function normalizeNativeToolChoice(toolChoice: unknown): unknown {
523
535
 
524
536
  const choice = asRecord(toolChoice);
525
537
  if (choice.type === "function") {
526
- return toolChoice;
538
+ const functionChoice = recordAt(choice, "function");
539
+ const toolName = firstString(functionChoice.name, choice.name, choice.toolName);
540
+ return toolName
541
+ ? {
542
+ type: "function",
543
+ function: {
544
+ ...functionChoice,
545
+ name: toolName,
546
+ },
547
+ }
548
+ : undefined;
527
549
  }
528
550
  if (choice.type === "tool") {
529
551
  const toolName = firstString(choice.toolName, choice.name);
@@ -535,11 +557,17 @@ function normalizeNativeToolChoice(toolChoice: unknown): unknown {
535
557
  return toolName ? { type: "function", function: { name: toolName } } : toolChoice;
536
558
  }
537
559
 
538
- function buildNativeResponseFormat(responseSchema: unknown): unknown {
560
+ function buildNativeResponseFormat(responseSchema: unknown, modelName: string): unknown {
539
561
  if (!responseSchema) {
540
562
  return undefined;
541
563
  }
542
564
 
565
+ // Cerebras-served models (gpt-oss) 400 on `response_format: json_schema`, so
566
+ // emit `json_object` and rely on the schema embedded in the prompt body.
567
+ if (isCerebrasServedModel(modelName)) {
568
+ return { type: "json_object" };
569
+ }
570
+
543
571
  const schemaRecord = asRecord(responseSchema);
544
572
  if (schemaRecord.responseFormat) {
545
573
  return schemaRecord.responseFormat;
@@ -653,16 +681,34 @@ function buildNativeRequestBody(
653
681
  const promptCacheKey = providerOptions ? resolvePromptCacheKey(providerOptions) : undefined;
654
682
  const tools = normalizeNativeTools(params.tools);
655
683
  const toolChoice = normalizeNativeToolChoice(params.toolChoice);
656
- const responseFormat = buildNativeResponseFormat(params.responseSchema);
684
+ const responseFormat = buildNativeResponseFormat(params.responseSchema, modelName);
657
685
  const requestBody: Record<string, unknown> = {
658
686
  model: modelName,
659
687
  messages: buildNativeMessages(params, promptText, systemPrompt),
660
- max_tokens: params.maxTokens ?? 8192,
661
688
  };
689
+ // Omit the cap entirely when the caller opted out (direct-channel Stage-1):
690
+ // a hardcoded max_tokens 400s on a model whose real limit differs. Every other
691
+ // caller keeps the 8192 default so it stays bounded.
692
+ if (!params.omitMaxTokens) {
693
+ requestBody.max_tokens = params.maxTokens ?? 8192;
694
+ }
662
695
 
663
696
  if (!isReasoningModel(modelName) && typeof params.temperature === "number") {
664
697
  requestBody.temperature = params.temperature;
665
698
  }
699
+ // cerebras gpt-oss runs a hidden-reasoning pass before answering even when the
700
+ // caller wants none — measured ~4s/call vs ~0.7s with reasoning suppressed. The
701
+ // runtime signals "don't reason" via providerOptions.eliza.thinking="off" (e.g.
702
+ // the Stage-1 RESPONSE_HANDLER formatting call), but resolveNativeProviderOptions
703
+ // drops the eliza block, so it never reached the wire. Honor it as cerebras's
704
+ // reasoning_effort:"low". Cerebras-gated (the plugin's isReasoningModel does NOT
705
+ // match gpt-oss); other providers ignore the field.
706
+ if (
707
+ isCerebrasServedModel(modelName) &&
708
+ recordAt(asRecord(params.providerOptions), "eliza").thinking === "off"
709
+ ) {
710
+ requestBody.reasoning_effort = "low";
711
+ }
666
712
  if (tools) {
667
713
  requestBody.tools = tools;
668
714
  }
@@ -924,8 +970,10 @@ async function generateTextWithModel(
924
970
  const requestBody: Record<string, unknown> = {
925
971
  model: modelName,
926
972
  input,
927
- max_output_tokens: params.maxTokens ?? 8192,
928
973
  };
974
+ if (!params.omitMaxTokens) {
975
+ requestBody.max_output_tokens = params.maxTokens ?? 8192;
976
+ }
929
977
  if (!reasoning && typeof params.temperature === "number") {
930
978
  requestBody.temperature = params.temperature;
931
979
  }