@series-inc/rundot-game-sdk 5.17.0-beta.8 → 5.17.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/dist/{AdsApi-CEWQVyKz.d.ts → AdsApi-WlnMwXKa.d.ts} +446 -690
- package/dist/LeaderboardApi--NKuV2tJ.d.ts +644 -0
- package/dist/callRemoteFunction-D-Ah7AxA.d.ts +23 -0
- package/dist/{chunk-3BBACCEY.js → chunk-2YN6ATNL.js} +542 -112
- package/dist/chunk-2YN6ATNL.js.map +1 -0
- package/dist/{chunk-D6MEEPZ2.js → chunk-B7N5C22M.js} +198 -344
- package/dist/chunk-B7N5C22M.js.map +1 -0
- package/dist/chunk-CU3M4HTH.js +402 -0
- package/dist/chunk-CU3M4HTH.js.map +1 -0
- package/dist/chunk-V5C5VQM4.js +27 -0
- package/dist/chunk-V5C5VQM4.js.map +1 -0
- package/dist/host-http.d.ts +96 -0
- package/dist/host-http.js +4 -0
- package/dist/host-http.js.map +1 -0
- package/dist/index.d.ts +288 -219
- package/dist/index.js +3 -2
- package/dist/rundot-game-api/index.d.ts +3 -2
- package/dist/rundot-game-api/index.js +3 -2
- package/dist/rundot-game-api/index.js.map +1 -1
- package/dist/sandbox/index.js +711 -450
- package/dist/sandbox/index.js.map +1 -1
- package/dist/vite/chunk-RDFEWAG5.js +14 -0
- package/dist/vite/chunk-RDFEWAG5.js.map +1 -0
- package/dist/vite/{dev-server-SV76ANVO.js → dev-server-3NX2VVPT.js} +11 -9
- package/dist/vite/dev-server-3NX2VVPT.js.map +1 -0
- package/dist/vite/{esbuild-validate-CELBC5DE.js → esbuild-validate-DO5ES37N.js} +5 -5
- package/dist/vite/esbuild-validate-DO5ES37N.js.map +1 -0
- package/dist/vite/index.d.ts +7 -0
- package/dist/vite/index.js +469 -118
- package/dist/vite/index.js.map +1 -1
- package/package.json +6 -1
- package/dist/chunk-3BBACCEY.js.map +0 -1
- package/dist/chunk-D6MEEPZ2.js.map +0 -1
- package/dist/vite/dev-server-SV76ANVO.js.map +0 -1
- package/dist/vite/esbuild-validate-CELBC5DE.js.map +0 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { H as LeaderboardApi, I as ImageGenApi, A as AudioGenApi, V as VideoGenApi, q as SpriteGenApi, T as ThreeDGenApi } from './LeaderboardApi--NKuV2tJ.js';
|
|
2
|
+
|
|
1
3
|
interface StorageApi {
|
|
2
4
|
key(index: number): Promise<string | null>;
|
|
3
5
|
clear(): Promise<void>;
|
|
@@ -425,6 +427,21 @@ interface TimeApi {
|
|
|
425
427
|
type AiTextContent = {
|
|
426
428
|
type: 'text';
|
|
427
429
|
text: string;
|
|
430
|
+
/**
|
|
431
|
+
* Anthropic prompt-caching marker. When set, the proxy emits a
|
|
432
|
+
* `cache_control: { type: 'ephemeral' }` annotation on the corresponding
|
|
433
|
+
* Anthropic block. Ignored by non-Anthropic providers.
|
|
434
|
+
*
|
|
435
|
+
* You usually don't need to set this. By default, the proxy auto-caches
|
|
436
|
+
* the system prefix for Anthropic calls — see `AiChatCompletionRequest`.
|
|
437
|
+
* Set this explicitly when you want to control which segments are cached
|
|
438
|
+
* (e.g. caching mid-conversation history alongside the system, or
|
|
439
|
+
* disabling the proxy's default by claiming the breakpoint yourself on
|
|
440
|
+
* a different block).
|
|
441
|
+
*/
|
|
442
|
+
cacheControl?: {
|
|
443
|
+
type: 'ephemeral';
|
|
444
|
+
};
|
|
428
445
|
};
|
|
429
446
|
/** Image referenced by URL. OpenAI/DeepSeek accept directly; the proxy fetches and base64-encodes for Anthropic. */
|
|
430
447
|
type AiImageUrlContent = {
|
|
@@ -445,7 +462,88 @@ type AiImageContent = {
|
|
|
445
462
|
data: string;
|
|
446
463
|
};
|
|
447
464
|
};
|
|
448
|
-
|
|
465
|
+
/**
|
|
466
|
+
* Assistant-emitted tool invocation, used in multi-turn tool conversations
|
|
467
|
+
* when echoing prior assistant turns back to the model. The same data is
|
|
468
|
+
* surfaced on a fresh response via the `toolCalls` field on the assistant
|
|
469
|
+
* message; this block type exists so callers can replay prior turns.
|
|
470
|
+
*/
|
|
471
|
+
type AiToolUseContent = {
|
|
472
|
+
type: 'tool_use';
|
|
473
|
+
id: string;
|
|
474
|
+
name: string;
|
|
475
|
+
input: Record<string, unknown>;
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* User-supplied result for a previously emitted tool call. Used when feeding
|
|
479
|
+
* tool execution output back to the model on the next turn.
|
|
480
|
+
*/
|
|
481
|
+
type AiToolResultContent = {
|
|
482
|
+
type: 'tool_result';
|
|
483
|
+
toolUseId: string;
|
|
484
|
+
content: string | AiContentBlock[];
|
|
485
|
+
isError?: boolean;
|
|
486
|
+
};
|
|
487
|
+
type AiContentBlock = AiTextContent | AiImageUrlContent | AiImageContent | AiToolUseContent | AiToolResultContent;
|
|
488
|
+
interface Tool {
|
|
489
|
+
name: string;
|
|
490
|
+
description: string;
|
|
491
|
+
/** JSON Schema describing the tool's input arguments. */
|
|
492
|
+
inputSchema: object;
|
|
493
|
+
}
|
|
494
|
+
type ToolChoice = 'auto' | 'any' | 'none' | {
|
|
495
|
+
type: 'tool';
|
|
496
|
+
name: string;
|
|
497
|
+
};
|
|
498
|
+
interface ToolUse {
|
|
499
|
+
id: string;
|
|
500
|
+
name: string;
|
|
501
|
+
input: Record<string, unknown>;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Constrains the model's output format.
|
|
505
|
+
*
|
|
506
|
+
* - `text`: free-form text (default).
|
|
507
|
+
* - `json_object`: model is asked to emit valid JSON. No schema enforcement.
|
|
508
|
+
* - `json_schema`: model is asked to emit JSON matching the given schema.
|
|
509
|
+
* The proxy enforces the schema on every provider:
|
|
510
|
+
* - OpenAI / DeepSeek: native Structured-Outputs `response_format`.
|
|
511
|
+
* - Anthropic: schema is appended to the system prompt; the response is
|
|
512
|
+
* parsed and validated server-side. On validation failure the proxy
|
|
513
|
+
* retries once with the validator errors fed back to the model. If
|
|
514
|
+
* the retry also fails, the request fails with HTTP 422.
|
|
515
|
+
* - Gemini: native `responseSchema`.
|
|
516
|
+
*
|
|
517
|
+
* `strict` (default `false`) maps to OpenAI's `strict` Structured-Outputs
|
|
518
|
+
* flag and is otherwise informational.
|
|
519
|
+
*
|
|
520
|
+
* For back-compat, the OpenAI native nested shape
|
|
521
|
+
* (`json_schema: { name, schema, strict? }`) is also accepted and passed
|
|
522
|
+
* through unchanged on the OpenAI path.
|
|
523
|
+
*
|
|
524
|
+
* ### Interaction with `tools`
|
|
525
|
+
*
|
|
526
|
+
* When `tools` is also set on the request, the schema applies ONLY to the
|
|
527
|
+
* model's text content. If the model invokes a tool, the tool call IS the
|
|
528
|
+
* response and the schema is not enforced (matches OpenAI's native
|
|
529
|
+
* behavior). To force schema-conforming text even when tools are
|
|
530
|
+
* available, omit `tools` from the request.
|
|
531
|
+
*/
|
|
532
|
+
type AiResponseFormat = {
|
|
533
|
+
type: 'text';
|
|
534
|
+
} | {
|
|
535
|
+
type: 'json_object';
|
|
536
|
+
} | {
|
|
537
|
+
type: 'json_schema';
|
|
538
|
+
schema?: object;
|
|
539
|
+
strict?: boolean;
|
|
540
|
+
json_schema?: {
|
|
541
|
+
name?: string;
|
|
542
|
+
description?: string;
|
|
543
|
+
schema?: object;
|
|
544
|
+
strict?: boolean | null;
|
|
545
|
+
};
|
|
546
|
+
};
|
|
449
547
|
interface AiMessage {
|
|
450
548
|
/**
|
|
451
549
|
* Depends on the model you are using. Most common is user, system, and assistant.
|
|
@@ -460,6 +558,36 @@ type AiChatCompletionRequest = {
|
|
|
460
558
|
model: string;
|
|
461
559
|
/** Array of message objects in OpenAI chat format */
|
|
462
560
|
messages: Array<AiMessage>;
|
|
561
|
+
/**
|
|
562
|
+
* Structured system prompt. Mirrors Anthropic's `system` field shape so the
|
|
563
|
+
* caller can mark specific segments of a large static prefix as cacheable
|
|
564
|
+
* via `cacheControl`.
|
|
565
|
+
*
|
|
566
|
+
* - `string`: passed verbatim as the system instruction.
|
|
567
|
+
* - `Array<AiTextContent>`: each block becomes a system text block.
|
|
568
|
+
*
|
|
569
|
+
* ### Anthropic prompt caching (default behavior)
|
|
570
|
+
*
|
|
571
|
+
* For Anthropic models, the proxy automatically caches the system prefix:
|
|
572
|
+
* if neither `system` nor any block in `messages` carries an explicit
|
|
573
|
+
* `cacheControl` marker, the proxy attaches `cache_control: 'ephemeral'`
|
|
574
|
+
* to the LAST text block of the system. This is the cheap default —
|
|
575
|
+
* Anthropic's pricing makes it a net win within ~2 cache hits on the
|
|
576
|
+
* same prefix within the 5-minute TTL, and sub-threshold systems
|
|
577
|
+
* (<1024 tokens Sonnet/Opus, <2048 Haiku) are ignored by Anthropic so
|
|
578
|
+
* the marker is a no-op for small prompts.
|
|
579
|
+
*
|
|
580
|
+
* To **override** the default — for example, to cache a specific segment
|
|
581
|
+
* of the system or to additionally cache a slice of the user-message
|
|
582
|
+
* history — set `cacheControl: { type: 'ephemeral' }` on the block(s) you
|
|
583
|
+
* want as cache breakpoints. The presence of any explicit marker disables
|
|
584
|
+
* the proxy's auto-cache so your strategy isn't interfered with.
|
|
585
|
+
*
|
|
586
|
+
* For non-Anthropic providers, the array is flattened to a single string
|
|
587
|
+
* and `cacheControl` is silently dropped. Coexists with `role: 'system'`
|
|
588
|
+
* entries in `messages`; both are concatenated.
|
|
589
|
+
*/
|
|
590
|
+
system?: string | Array<AiTextContent>;
|
|
463
591
|
/** Maximum number of tokens to generate */
|
|
464
592
|
maxTokens?: number;
|
|
465
593
|
/** Upper bound for tokens generated, including visible output and reasoning tokens */
|
|
@@ -480,8 +608,8 @@ type AiChatCompletionRequest = {
|
|
|
480
608
|
frequencyPenalty?: number;
|
|
481
609
|
/** Token logit biases */
|
|
482
610
|
logitBias?: Record<string, number>;
|
|
483
|
-
/** Object specifying the format that the model must output */
|
|
484
|
-
responseFormat?:
|
|
611
|
+
/** Object specifying the format that the model must output. See {@link AiResponseFormat}. */
|
|
612
|
+
responseFormat?: AiResponseFormat;
|
|
485
613
|
/** Random seed for reproducible outputs (Beta feature) */
|
|
486
614
|
seed?: number;
|
|
487
615
|
/** Unique identifier representing your end-user */
|
|
@@ -500,6 +628,8 @@ type AiChatCompletionRequest = {
|
|
|
500
628
|
extraHeaders?: Record<string, any>;
|
|
501
629
|
/** Custom tags for organizing completions */
|
|
502
630
|
tags?: string[];
|
|
631
|
+
tools?: Tool[];
|
|
632
|
+
toolChoice?: ToolChoice;
|
|
503
633
|
/**
|
|
504
634
|
* @deprecated No longer used. Local dev uses HttpAiApi with Firebase auth. Will be removed in a future major version.
|
|
505
635
|
*/
|
|
@@ -520,6 +650,8 @@ type AiChatCompletionData = {
|
|
|
520
650
|
message: {
|
|
521
651
|
role: string;
|
|
522
652
|
content: string;
|
|
653
|
+
/** Present only when the model invoked one or more tools on this turn. */
|
|
654
|
+
toolCalls?: ToolUse[];
|
|
523
655
|
};
|
|
524
656
|
finish_reason: string;
|
|
525
657
|
}>;
|
|
@@ -532,9 +664,115 @@ type AiChatCompletionData = {
|
|
|
532
664
|
cache_write_tokens?: number;
|
|
533
665
|
};
|
|
534
666
|
};
|
|
667
|
+
/**
|
|
668
|
+
* A single event from a streaming chat completion. Mirrors the wire shape
|
|
669
|
+
* the proxy emits on `/v1/llm/completion-stream`.
|
|
670
|
+
*
|
|
671
|
+
* - `delta`: incremental assistant text. Concatenate `text` across all
|
|
672
|
+
* `delta` events to reconstruct the final message.
|
|
673
|
+
* - `tool_call_chunk`: partial tool-call metadata. Providers stream tool
|
|
674
|
+
* arguments as multiple chunks; buffer by `index` until `done`.
|
|
675
|
+
* - `done`: terminal event for a successful stream. Carries `finishReason`
|
|
676
|
+
* and aggregate token totals (same shape as the non-streaming response's
|
|
677
|
+
* `usage`). Always the last event yielded.
|
|
678
|
+
*
|
|
679
|
+
* Errors are out-of-band — consumers see them as the iterable throwing.
|
|
680
|
+
*/
|
|
681
|
+
type AiChatCompletionStreamChunk = {
|
|
682
|
+
type: 'delta';
|
|
683
|
+
text: string;
|
|
684
|
+
} | {
|
|
685
|
+
type: 'tool_call_chunk';
|
|
686
|
+
index: number;
|
|
687
|
+
id?: string;
|
|
688
|
+
name?: string;
|
|
689
|
+
argumentsDelta?: string;
|
|
690
|
+
} | {
|
|
691
|
+
type: 'done';
|
|
692
|
+
finishReason: string;
|
|
693
|
+
usage: AiChatCompletionData['usage'];
|
|
694
|
+
};
|
|
695
|
+
interface AiChatCompletionStreamOptions {
|
|
696
|
+
/**
|
|
697
|
+
* Caller-supplied AbortSignal. Aborting causes the iterable to stop
|
|
698
|
+
* yielding and the host to close the upstream SSE socket. Equivalent to
|
|
699
|
+
* `break`ing out of `for await`; provided as a separate handle for callers
|
|
700
|
+
* that already manage an AbortController for the surrounding operation.
|
|
701
|
+
*/
|
|
702
|
+
signal?: AbortSignal;
|
|
703
|
+
}
|
|
535
704
|
interface AiApi {
|
|
536
705
|
requestChatCompletionAsync(request: AiChatCompletionRequest): Promise<AiChatCompletionData>;
|
|
537
706
|
getAvailableCompletionModels(): Promise<Array<string>>;
|
|
707
|
+
/**
|
|
708
|
+
* Streaming sibling of `requestChatCompletionAsync`. Returns an async
|
|
709
|
+
* iterable of chunks. Cancel by `break`ing out of `for await`, calling
|
|
710
|
+
* `return()` on the iterator, or aborting the optional `signal`.
|
|
711
|
+
*
|
|
712
|
+
* @example
|
|
713
|
+
* Text-only consumption — concatenate `delta.text` and read usage on `done`:
|
|
714
|
+
* ```ts
|
|
715
|
+
* const stream = textGen.requestChatCompletionStreamAsync({ ... })
|
|
716
|
+
* let text = ''
|
|
717
|
+
* for await (const chunk of stream) {
|
|
718
|
+
* if (chunk.type === 'delta') text += chunk.text
|
|
719
|
+
* if (chunk.type === 'done') console.log('usage', chunk.usage)
|
|
720
|
+
* }
|
|
721
|
+
* ```
|
|
722
|
+
*
|
|
723
|
+
* @example
|
|
724
|
+
* Buffering `tool_call_chunk` events into `ToolUse[]`. Providers stream
|
|
725
|
+
* tool arguments as a sequence of `argumentsDelta` fragments keyed by
|
|
726
|
+
* `index`; concatenate them and JSON-parse once `done` arrives. A
|
|
727
|
+
* `tool_call_chunk` chunk carries the tool's `id` and `name` once they
|
|
728
|
+
* become known (typically on the first chunk for that index), with
|
|
729
|
+
* argument-only chunks following:
|
|
730
|
+
* ```ts
|
|
731
|
+
* import type {
|
|
732
|
+
* AiChatCompletionStreamChunk,
|
|
733
|
+
* ToolUse,
|
|
734
|
+
* } from '@series-inc/rundot-game-sdk'
|
|
735
|
+
*
|
|
736
|
+
* interface PartialToolCall { id?: string; name?: string; args: string }
|
|
737
|
+
*
|
|
738
|
+
* const buffer = new Map<number, PartialToolCall>()
|
|
739
|
+
* const toolCalls: ToolUse[] = []
|
|
740
|
+
* let text = ''
|
|
741
|
+
*
|
|
742
|
+
* for await (const chunk of stream) {
|
|
743
|
+
* switch (chunk.type) {
|
|
744
|
+
* case 'delta':
|
|
745
|
+
* text += chunk.text
|
|
746
|
+
* break
|
|
747
|
+
* case 'tool_call_chunk': {
|
|
748
|
+
* const entry = buffer.get(chunk.index) ?? { args: '' }
|
|
749
|
+
* if (chunk.id !== undefined) entry.id = chunk.id
|
|
750
|
+
* if (chunk.name !== undefined) entry.name = chunk.name
|
|
751
|
+
* if (chunk.argumentsDelta !== undefined) {
|
|
752
|
+
* entry.args += chunk.argumentsDelta
|
|
753
|
+
* }
|
|
754
|
+
* buffer.set(chunk.index, entry)
|
|
755
|
+
* break
|
|
756
|
+
* }
|
|
757
|
+
* case 'done':
|
|
758
|
+
* for (const entry of buffer.values()) {
|
|
759
|
+
* if (entry.id === undefined || entry.name === undefined) continue
|
|
760
|
+
* toolCalls.push({
|
|
761
|
+
* id: entry.id,
|
|
762
|
+
* name: entry.name,
|
|
763
|
+
* input: entry.args === '' ? {} : JSON.parse(entry.args),
|
|
764
|
+
* })
|
|
765
|
+
* }
|
|
766
|
+
* break
|
|
767
|
+
* }
|
|
768
|
+
* }
|
|
769
|
+
* ```
|
|
770
|
+
*
|
|
771
|
+
* Gemini note: text streaming is supported; tool-use on Gemini streaming
|
|
772
|
+
* is deferred — the iterable throws `AppError(400)` when `request.tools`
|
|
773
|
+
* is non-empty.
|
|
774
|
+
*/
|
|
775
|
+
requestChatCompletionStreamAsync(request: AiChatCompletionRequest, options?: AiChatCompletionStreamOptions): AsyncIterable<AiChatCompletionStreamChunk>;
|
|
538
776
|
}
|
|
539
777
|
|
|
540
778
|
type TextGenApi = AiApi;
|
|
@@ -789,6 +1027,7 @@ interface ExecuteRecipeResponse {
|
|
|
789
1027
|
outputs?: Record<string, number | string>;
|
|
790
1028
|
data?: Record<string, unknown>;
|
|
791
1029
|
message?: string;
|
|
1030
|
+
randomSeed?: string;
|
|
792
1031
|
amountRequested?: number;
|
|
793
1032
|
amountFulfilled?: number;
|
|
794
1033
|
partialSuccess?: boolean;
|
|
@@ -1291,10 +1530,31 @@ interface PurchaseSubscriptionResponse {
|
|
|
1291
1530
|
success: boolean;
|
|
1292
1531
|
}
|
|
1293
1532
|
interface SpendCurrencyOptions {
|
|
1533
|
+
/** Screen/route name where the purchase occurred. Used for analytics only. */
|
|
1294
1534
|
screenName?: string;
|
|
1535
|
+
/**
|
|
1536
|
+
* Short human-readable description of what is being purchased
|
|
1537
|
+
* (e.g. "Unlock level 5", "Continue run"). The host renders this in the
|
|
1538
|
+
* spend-confirmation dialog so the player sees what they are paying for.
|
|
1539
|
+
* Sanitized and truncated by the host before display.
|
|
1540
|
+
*/
|
|
1541
|
+
description?: string;
|
|
1542
|
+
/**
|
|
1543
|
+
* Optional profile id of a UGC creator the spend should be attributed to
|
|
1544
|
+
* for revenue share. Forwarded to the server for future revshare bookkeeping.
|
|
1545
|
+
*/
|
|
1546
|
+
beneficiaryId?: string;
|
|
1295
1547
|
}
|
|
1296
1548
|
interface SpendCurrencyResult {
|
|
1297
1549
|
success: boolean;
|
|
1550
|
+
/**
|
|
1551
|
+
* Optional failure reason. Defined sentinel values:
|
|
1552
|
+
*
|
|
1553
|
+
* - `'USER_CANCELLED'` — the player declined the host confirmation dialog
|
|
1554
|
+
* before the spend was sent to the server. No currency was deducted.
|
|
1555
|
+
*
|
|
1556
|
+
* Other values are server-side error messages and are not stable.
|
|
1557
|
+
*/
|
|
1298
1558
|
error?: string;
|
|
1299
1559
|
}
|
|
1300
1560
|
interface OpenStoreResult {
|
|
@@ -1314,140 +1574,6 @@ interface IapApi {
|
|
|
1314
1574
|
hasUserMadePurchase(): Promise<boolean>;
|
|
1315
1575
|
}
|
|
1316
1576
|
|
|
1317
|
-
interface LeaderboardModeConfig {
|
|
1318
|
-
displayName: string;
|
|
1319
|
-
minDurationSec?: number;
|
|
1320
|
-
maxDurationSec?: number;
|
|
1321
|
-
minScore?: number;
|
|
1322
|
-
maxScore?: number;
|
|
1323
|
-
}
|
|
1324
|
-
type LeaderboardPeriodType = 'daily' | 'weekly' | 'monthly' | 'alltime';
|
|
1325
|
-
interface LeaderboardPeriodConfig {
|
|
1326
|
-
displayName: string;
|
|
1327
|
-
type: LeaderboardPeriodType;
|
|
1328
|
-
}
|
|
1329
|
-
interface LeaderboardAntiCheatConfig {
|
|
1330
|
-
enableZScoreDetection: boolean;
|
|
1331
|
-
zScoreThreshold: number;
|
|
1332
|
-
enableRateLimit: boolean;
|
|
1333
|
-
minTimeBetweenSubmissionsSec: number;
|
|
1334
|
-
trustScoreDecayPerFlag: number;
|
|
1335
|
-
shadowBanThreshold: number;
|
|
1336
|
-
}
|
|
1337
|
-
interface LeaderboardDisplaySettings {
|
|
1338
|
-
maxEntriesPerPage: number;
|
|
1339
|
-
}
|
|
1340
|
-
interface LeaderboardConfig {
|
|
1341
|
-
minDurationSec: number;
|
|
1342
|
-
maxDurationSec: number;
|
|
1343
|
-
minScore: number;
|
|
1344
|
-
maxScore: number;
|
|
1345
|
-
requiresToken: boolean;
|
|
1346
|
-
enableScoreSealing: boolean;
|
|
1347
|
-
scoreSealingSecret?: string;
|
|
1348
|
-
modes: Record<string, LeaderboardModeConfig>;
|
|
1349
|
-
periods: Record<string, LeaderboardPeriodConfig>;
|
|
1350
|
-
antiCheat: LeaderboardAntiCheatConfig;
|
|
1351
|
-
displaySettings: LeaderboardDisplaySettings;
|
|
1352
|
-
}
|
|
1353
|
-
interface ScoreToken {
|
|
1354
|
-
token: string;
|
|
1355
|
-
startTime: number;
|
|
1356
|
-
expiresAt: number;
|
|
1357
|
-
sealingNonce?: string | null;
|
|
1358
|
-
sealingSecret?: string | null;
|
|
1359
|
-
mode: string;
|
|
1360
|
-
}
|
|
1361
|
-
interface SubmitScoreParams {
|
|
1362
|
-
token?: string;
|
|
1363
|
-
score: number;
|
|
1364
|
-
duration: number;
|
|
1365
|
-
mode?: string;
|
|
1366
|
-
period?: string;
|
|
1367
|
-
telemetry?: Record<string, any>;
|
|
1368
|
-
metadata?: Record<string, any>;
|
|
1369
|
-
}
|
|
1370
|
-
interface SubmitScoreResult {
|
|
1371
|
-
accepted: boolean;
|
|
1372
|
-
rank?: number | null;
|
|
1373
|
-
zScore?: number | null;
|
|
1374
|
-
isAnomaly?: boolean;
|
|
1375
|
-
/** Human-readable explanation when `accepted` is false (e.g., keep-best rejection). */
|
|
1376
|
-
reason?: string | null;
|
|
1377
|
-
}
|
|
1378
|
-
interface GetPagedScoresOptions {
|
|
1379
|
-
mode?: string;
|
|
1380
|
-
period?: string;
|
|
1381
|
-
periodDate?: number | string;
|
|
1382
|
-
cursor?: string | null;
|
|
1383
|
-
limit?: number;
|
|
1384
|
-
variant?: 'standard' | 'highlight';
|
|
1385
|
-
topCount?: number;
|
|
1386
|
-
contextAhead?: number;
|
|
1387
|
-
contextBehind?: number;
|
|
1388
|
-
}
|
|
1389
|
-
interface LeaderboardEntry {
|
|
1390
|
-
profileId: string;
|
|
1391
|
-
username: string;
|
|
1392
|
-
avatarUrl: string | null;
|
|
1393
|
-
score: number;
|
|
1394
|
-
duration: number;
|
|
1395
|
-
submittedAt: number;
|
|
1396
|
-
token?: string;
|
|
1397
|
-
rank: number | null;
|
|
1398
|
-
zScore?: number | null;
|
|
1399
|
-
isAnomaly?: boolean;
|
|
1400
|
-
trustScore?: number | null;
|
|
1401
|
-
isShadowBanned?: boolean;
|
|
1402
|
-
expiresAt?: number | null;
|
|
1403
|
-
metadata?: Record<string, any> | null;
|
|
1404
|
-
isSeed?: boolean;
|
|
1405
|
-
}
|
|
1406
|
-
interface PagedScoresResponse {
|
|
1407
|
-
variant: 'standard' | 'highlight';
|
|
1408
|
-
entries: LeaderboardEntry[];
|
|
1409
|
-
totalEntries: number;
|
|
1410
|
-
nextCursor?: string | null;
|
|
1411
|
-
playerRank: number | null;
|
|
1412
|
-
periodInstance: string;
|
|
1413
|
-
}
|
|
1414
|
-
interface PlayerRankOptions {
|
|
1415
|
-
mode?: string;
|
|
1416
|
-
period?: string;
|
|
1417
|
-
periodDate?: number | string;
|
|
1418
|
-
}
|
|
1419
|
-
interface PlayerRankResult {
|
|
1420
|
-
rank: number | null;
|
|
1421
|
-
score?: number;
|
|
1422
|
-
totalPlayers: number;
|
|
1423
|
-
percentile?: number;
|
|
1424
|
-
trustScore: number;
|
|
1425
|
-
periodInstance: string;
|
|
1426
|
-
}
|
|
1427
|
-
interface PodiumScoresContext {
|
|
1428
|
-
topEntries: LeaderboardEntry[];
|
|
1429
|
-
beforePlayer: LeaderboardEntry[];
|
|
1430
|
-
playerEntry?: LeaderboardEntry | null;
|
|
1431
|
-
afterPlayer: LeaderboardEntry[];
|
|
1432
|
-
totalBefore: number;
|
|
1433
|
-
totalAfter: number;
|
|
1434
|
-
omittedBefore: number;
|
|
1435
|
-
omittedAfter: number;
|
|
1436
|
-
}
|
|
1437
|
-
interface PodiumScoresResponse extends PagedScoresResponse {
|
|
1438
|
-
variant: 'highlight';
|
|
1439
|
-
context: PodiumScoresContext;
|
|
1440
|
-
}
|
|
1441
|
-
interface GetPodiumScoresOptions extends Omit<GetPagedScoresOptions, 'variant'> {
|
|
1442
|
-
}
|
|
1443
|
-
interface LeaderboardApi {
|
|
1444
|
-
createScoreToken(mode?: string): Promise<ScoreToken>;
|
|
1445
|
-
submitScore(params: SubmitScoreParams): Promise<SubmitScoreResult>;
|
|
1446
|
-
getPagedScores(options?: GetPagedScoresOptions): Promise<PagedScoresResponse>;
|
|
1447
|
-
getMyRank(options?: PlayerRankOptions): Promise<PlayerRankResult>;
|
|
1448
|
-
getPodiumScores(options?: GetPodiumScoresOptions): Promise<PodiumScoresResponse>;
|
|
1449
|
-
}
|
|
1450
|
-
|
|
1451
1577
|
/**
|
|
1452
1578
|
* UGC (User-Generated Content) API
|
|
1453
1579
|
*
|
|
@@ -1501,6 +1627,11 @@ interface UgcListParams {
|
|
|
1501
1627
|
type UgcBuiltinSortBy = 'recent' | 'mostLiked' | 'mostUsed';
|
|
1502
1628
|
type UgcCustomSortBy = `idx_${string}`;
|
|
1503
1629
|
type UgcSortBy = UgcBuiltinSortBy | UgcCustomSortBy;
|
|
1630
|
+
interface UgcRangeFilter {
|
|
1631
|
+
gte?: number;
|
|
1632
|
+
lte?: number;
|
|
1633
|
+
}
|
|
1634
|
+
type UgcFilterValue = string | number | UgcRangeFilter;
|
|
1504
1635
|
interface UgcBrowseParams {
|
|
1505
1636
|
contentType?: string;
|
|
1506
1637
|
authorId?: string;
|
|
@@ -1508,7 +1639,7 @@ interface UgcBrowseParams {
|
|
|
1508
1639
|
limit?: number;
|
|
1509
1640
|
sortBy?: UgcSortBy;
|
|
1510
1641
|
sortOrder?: 'asc' | 'desc';
|
|
1511
|
-
filters?: Record<string,
|
|
1642
|
+
filters?: Record<string, UgcFilterValue>;
|
|
1512
1643
|
}
|
|
1513
1644
|
interface UgcGetManyParams {
|
|
1514
1645
|
entryIds: string[];
|
|
@@ -1520,7 +1651,7 @@ interface UgcGetManyResponse {
|
|
|
1520
1651
|
}
|
|
1521
1652
|
interface UgcCountParams {
|
|
1522
1653
|
contentType?: string;
|
|
1523
|
-
filters?: Record<string,
|
|
1654
|
+
filters?: Record<string, UgcFilterValue>;
|
|
1524
1655
|
}
|
|
1525
1656
|
interface UgcCrossAppBrowseParams extends UgcBrowseParams {
|
|
1526
1657
|
targetAppId: string;
|
|
@@ -1988,267 +2119,6 @@ interface SocialApi {
|
|
|
1988
2119
|
canShareFileAsync(): Promise<CanShareFileResult>;
|
|
1989
2120
|
}
|
|
1990
2121
|
|
|
1991
|
-
type ImageGenModel = 'gemini-3.1-flash-image-preview' | 'gemini-3-pro-image-preview';
|
|
1992
|
-
type BgRemovalModel = 'bria' | 'birefnet';
|
|
1993
|
-
type BiRefNetVariant = 'light' | 'heavy' | 'portrait';
|
|
1994
|
-
interface RemoveBackgroundOptions {
|
|
1995
|
-
/** Model to use. Default: 'bria'. */
|
|
1996
|
-
model?: BgRemovalModel;
|
|
1997
|
-
/** BiRefNet variant (ignored when model is 'bria'). Default: 'light'. */
|
|
1998
|
-
variant?: BiRefNetVariant;
|
|
1999
|
-
/** Operating resolution for BiRefNet (ignored for bria). Default: '1024x1024'. */
|
|
2000
|
-
resolution?: '1024x1024' | '2048x2048';
|
|
2001
|
-
}
|
|
2002
|
-
interface ImageGenParams {
|
|
2003
|
-
prompt: string;
|
|
2004
|
-
negativePrompt?: string;
|
|
2005
|
-
aspectRatio?: '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '4:5' | '5:4' | '9:16' | '16:9' | '21:9';
|
|
2006
|
-
/**
|
|
2007
|
-
* Reference images for style/content guidance.
|
|
2008
|
-
* Each entry can be:
|
|
2009
|
-
* - A file key (e.g. `"sprites/hero.png"`) — resolved server-side from your app's storage
|
|
2010
|
-
* - An HTTPS URL — fetched server-side
|
|
2011
|
-
* - A data URI (`data:image/png;base64,...`)
|
|
2012
|
-
*/
|
|
2013
|
-
referenceImages?: string[];
|
|
2014
|
-
seed?: number;
|
|
2015
|
-
/**
|
|
2016
|
-
* When true, removes the background using Bria (default).
|
|
2017
|
-
* When an object, uses the specified model/variant.
|
|
2018
|
-
*/
|
|
2019
|
-
removeBackground?: boolean | RemoveBackgroundOptions;
|
|
2020
|
-
/** Model to use. Defaults to 'gemini-3.1-flash-image-preview' (Nano Banana 2). */
|
|
2021
|
-
model?: ImageGenModel;
|
|
2022
|
-
}
|
|
2023
|
-
interface ImageGenResult {
|
|
2024
|
-
imageUrl: string;
|
|
2025
|
-
prompt: string;
|
|
2026
|
-
}
|
|
2027
|
-
interface ImageGenJobEvent {
|
|
2028
|
-
jobId: string;
|
|
2029
|
-
status: 'completed' | 'failed';
|
|
2030
|
-
params: ImageGenParams;
|
|
2031
|
-
result?: ImageGenResult;
|
|
2032
|
-
error?: string;
|
|
2033
|
-
}
|
|
2034
|
-
interface DepthEstimationParams {
|
|
2035
|
-
/** Source image: file key, HTTPS URL, or data URI (HTTP path only). */
|
|
2036
|
-
imageUrl: string;
|
|
2037
|
-
/** Number of inference steps (1–50). Default: 10. */
|
|
2038
|
-
numInferenceSteps?: number;
|
|
2039
|
-
/** Ensemble predictions to average (1–20). Default: 10. */
|
|
2040
|
-
ensembleSize?: number;
|
|
2041
|
-
/** Max processing resolution; 0 = use input size (0–4096). Default: 0. */
|
|
2042
|
-
processingRes?: number;
|
|
2043
|
-
}
|
|
2044
|
-
interface DepthEstimationResult {
|
|
2045
|
-
depthMapUrl: string;
|
|
2046
|
-
width: number;
|
|
2047
|
-
height: number;
|
|
2048
|
-
}
|
|
2049
|
-
type RemoveBackgroundParams = RemoveBackgroundOptions & {
|
|
2050
|
-
/** Source image: file key, HTTPS URL, or data URI (HTTP path only). */
|
|
2051
|
-
imageUrl: string;
|
|
2052
|
-
};
|
|
2053
|
-
interface RemoveBackgroundResult {
|
|
2054
|
-
imageUrl: string;
|
|
2055
|
-
width: number;
|
|
2056
|
-
height: number;
|
|
2057
|
-
}
|
|
2058
|
-
interface ImageGenApi {
|
|
2059
|
-
generate(params: ImageGenParams): Promise<ImageGenResult>;
|
|
2060
|
-
estimateDepth(params: DepthEstimationParams): Promise<DepthEstimationResult>;
|
|
2061
|
-
removeBackground(params: RemoveBackgroundParams): Promise<RemoveBackgroundResult>;
|
|
2062
|
-
getCompletedJobs(): Promise<ImageGenJobEvent[]>;
|
|
2063
|
-
}
|
|
2064
|
-
|
|
2065
|
-
type AudioGenType = 'sfx' | 'music' | 'tts';
|
|
2066
|
-
type AudioGenProvider = 'elevenlabs';
|
|
2067
|
-
interface AudioGenSFXParams {
|
|
2068
|
-
type: 'sfx';
|
|
2069
|
-
provider?: AudioGenProvider;
|
|
2070
|
-
/** Describe materials, intensity, context — "sword clashing against metal shield, heavy impact" */
|
|
2071
|
-
description: string;
|
|
2072
|
-
/** Duration in seconds (0.5–30). Omit for model-decided. */
|
|
2073
|
-
durationSec?: number;
|
|
2074
|
-
/** Opaque correlation ID echoed back in job events for client-side recovery. */
|
|
2075
|
-
clientRef?: string;
|
|
2076
|
-
}
|
|
2077
|
-
interface AudioGenMusicParams {
|
|
2078
|
-
type: 'music';
|
|
2079
|
-
provider?: AudioGenProvider;
|
|
2080
|
-
/** Genre, tempo, instruments, mood — "orchestral victory fanfare, triumphant brass" */
|
|
2081
|
-
prompt: string;
|
|
2082
|
-
/** Duration in seconds (REQUIRED, 1–300). */
|
|
2083
|
-
durationSec: number;
|
|
2084
|
-
/** Opaque correlation ID echoed back in job events for client-side recovery. */
|
|
2085
|
-
clientRef?: string;
|
|
2086
|
-
}
|
|
2087
|
-
type TTSModel = 'eleven_v3' | 'eleven_multilingual_v2';
|
|
2088
|
-
interface AudioGenTTSParams {
|
|
2089
|
-
type: 'tts';
|
|
2090
|
-
provider?: AudioGenProvider;
|
|
2091
|
-
/** Text to speak. Supports ElevenLabs v3 audio tags: [whispers], [shouts], [pause]. */
|
|
2092
|
-
text: string;
|
|
2093
|
-
/** ElevenLabs voice ID. Use a known voice ID from the ElevenLabs library. */
|
|
2094
|
-
voiceId: string;
|
|
2095
|
-
/** TTS model. Default: 'eleven_v3'. */
|
|
2096
|
-
model?: TTSModel;
|
|
2097
|
-
/** 0–1. Lower = more expressive. Default: 0.5. */
|
|
2098
|
-
stability?: number;
|
|
2099
|
-
/** 0–1. Voice similarity boost. Default: 0.8. */
|
|
2100
|
-
similarityBoost?: number;
|
|
2101
|
-
/** Speech speed 0.5–2.0. Default: 1.0. */
|
|
2102
|
-
speed?: number;
|
|
2103
|
-
/** Opaque correlation ID echoed back in job events for client-side recovery. */
|
|
2104
|
-
clientRef?: string;
|
|
2105
|
-
}
|
|
2106
|
-
type AudioGenParams = AudioGenSFXParams | AudioGenMusicParams | AudioGenTTSParams;
|
|
2107
|
-
interface AudioGenResult {
|
|
2108
|
-
generationId: string;
|
|
2109
|
-
audioUrl: string;
|
|
2110
|
-
type: AudioGenType;
|
|
2111
|
-
durationSec: number;
|
|
2112
|
-
prompt: string;
|
|
2113
|
-
}
|
|
2114
|
-
interface AudioGenJobEvent {
|
|
2115
|
-
jobId: string;
|
|
2116
|
-
status: 'completed' | 'failed';
|
|
2117
|
-
params: AudioGenParams;
|
|
2118
|
-
result?: AudioGenResult;
|
|
2119
|
-
error?: string;
|
|
2120
|
-
}
|
|
2121
|
-
interface VoiceLibraryEntry {
|
|
2122
|
-
voiceId: string;
|
|
2123
|
-
name: string;
|
|
2124
|
-
category?: string;
|
|
2125
|
-
description?: string;
|
|
2126
|
-
previewUrl?: string;
|
|
2127
|
-
labels?: Record<string, string>;
|
|
2128
|
-
}
|
|
2129
|
-
interface ListVoicesResult {
|
|
2130
|
-
voices: VoiceLibraryEntry[];
|
|
2131
|
-
}
|
|
2132
|
-
interface DesignVoicesParams {
|
|
2133
|
-
/** Natural-language voice description — "Young female, breathy, excited" */
|
|
2134
|
-
description: string;
|
|
2135
|
-
/** Optional sample text (100–1000 chars). ElevenLabs uses a default if omitted. */
|
|
2136
|
-
sampleText?: string;
|
|
2137
|
-
}
|
|
2138
|
-
interface DesignVoicePreview {
|
|
2139
|
-
/**
|
|
2140
|
-
* Temporary voice ID returned by ElevenLabs createPreviews.
|
|
2141
|
-
* Can be used as a voiceId for TTS generation.
|
|
2142
|
-
*
|
|
2143
|
-
* NOTE: If direct use fails, the host may need an intermediate
|
|
2144
|
-
* textToVoice.create() step — see PRD open question #2.
|
|
2145
|
-
*/
|
|
2146
|
-
generatedVoiceId: string;
|
|
2147
|
-
/** Data URI or URL of the audio preview. */
|
|
2148
|
-
audioUrl: string;
|
|
2149
|
-
durationSec: number;
|
|
2150
|
-
}
|
|
2151
|
-
interface DesignVoicesResult {
|
|
2152
|
-
previews: DesignVoicePreview[];
|
|
2153
|
-
/** The text that was spoken in the previews. */
|
|
2154
|
-
previewText: string;
|
|
2155
|
-
}
|
|
2156
|
-
interface AudioGenApi {
|
|
2157
|
-
generate(params: AudioGenParams): Promise<AudioGenResult>;
|
|
2158
|
-
getCompletedJobs(): Promise<AudioGenJobEvent[]>;
|
|
2159
|
-
listVoices(): Promise<ListVoicesResult>;
|
|
2160
|
-
designVoices(params: DesignVoicesParams): Promise<DesignVoicesResult>;
|
|
2161
|
-
}
|
|
2162
|
-
|
|
2163
|
-
type VideoGenProvider = 'seedance-2.0' | 'seedance-2.0-fast' | 'kling-3.0-standard';
|
|
2164
|
-
type VideoGenMode = 'text-to-video' | 'image-to-video' | 'reference-to-video';
|
|
2165
|
-
type VideoGenAspectRatio = '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16';
|
|
2166
|
-
type VideoGenResolution = '480p' | '720p' | '1080p';
|
|
2167
|
-
interface VideoGenBase {
|
|
2168
|
-
prompt?: string;
|
|
2169
|
-
seed?: number;
|
|
2170
|
-
requestOrigin?: string;
|
|
2171
|
-
clientRef?: string;
|
|
2172
|
-
}
|
|
2173
|
-
interface SeedanceBase extends VideoGenBase {
|
|
2174
|
-
provider: 'seedance-2.0' | 'seedance-2.0-fast';
|
|
2175
|
-
aspectRatio?: VideoGenAspectRatio;
|
|
2176
|
-
resolution?: VideoGenResolution;
|
|
2177
|
-
durationSeconds?: 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
|
|
2178
|
-
generateAudio?: boolean;
|
|
2179
|
-
cameraFixed?: boolean;
|
|
2180
|
-
}
|
|
2181
|
-
interface SeedanceTextToVideoParams extends SeedanceBase {
|
|
2182
|
-
mode: 'text-to-video';
|
|
2183
|
-
}
|
|
2184
|
-
interface SeedanceImageToVideoParams extends SeedanceBase {
|
|
2185
|
-
mode: 'image-to-video';
|
|
2186
|
-
startImageUrl: string;
|
|
2187
|
-
endImageUrl?: string;
|
|
2188
|
-
}
|
|
2189
|
-
interface SeedanceReferenceToVideoParams extends SeedanceBase {
|
|
2190
|
-
mode: 'reference-to-video';
|
|
2191
|
-
/** Style/content reference images. Max 9 for Seedance. */
|
|
2192
|
-
imageReferences?: string[];
|
|
2193
|
-
/** Motion reference videos. Max 3 for Seedance. */
|
|
2194
|
-
videoReferences?: string[];
|
|
2195
|
-
/** Audio samples for voice cloning. Max 3 refs, each 3–5s, total <= 15s. Must be re-encoded (not stream-copied) to exact-second boundaries. */
|
|
2196
|
-
audioReferences?: string[];
|
|
2197
|
-
}
|
|
2198
|
-
interface KlingMultiPromptElement {
|
|
2199
|
-
prompt: string;
|
|
2200
|
-
durationSeconds?: number;
|
|
2201
|
-
}
|
|
2202
|
-
interface KlingBase extends VideoGenBase {
|
|
2203
|
-
provider: 'kling-3.0-standard';
|
|
2204
|
-
aspectRatio?: '16:9' | '9:16' | '1:1';
|
|
2205
|
-
durationSeconds?: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
|
|
2206
|
-
generateAudio?: boolean;
|
|
2207
|
-
negativePrompt?: string;
|
|
2208
|
-
cfgScale?: number;
|
|
2209
|
-
shotType?: 'customize' | 'intelligent';
|
|
2210
|
-
multiPrompt?: KlingMultiPromptElement[];
|
|
2211
|
-
}
|
|
2212
|
-
interface KlingTextToVideoParams extends KlingBase {
|
|
2213
|
-
mode: 'text-to-video';
|
|
2214
|
-
}
|
|
2215
|
-
interface KlingImageToVideoParams extends KlingBase {
|
|
2216
|
-
mode: 'image-to-video';
|
|
2217
|
-
startImageUrl: string;
|
|
2218
|
-
endImageUrl?: string;
|
|
2219
|
-
}
|
|
2220
|
-
type VideoGenParams = SeedanceTextToVideoParams | SeedanceImageToVideoParams | SeedanceReferenceToVideoParams | KlingTextToVideoParams | KlingImageToVideoParams;
|
|
2221
|
-
interface VideoGenResult {
|
|
2222
|
-
generationId: string;
|
|
2223
|
-
videoUrl: string;
|
|
2224
|
-
posterUrl?: string;
|
|
2225
|
-
durationSeconds: number;
|
|
2226
|
-
width: number;
|
|
2227
|
-
height: number;
|
|
2228
|
-
provider: VideoGenProvider;
|
|
2229
|
-
mode: VideoGenMode;
|
|
2230
|
-
prompt: string;
|
|
2231
|
-
seed: number;
|
|
2232
|
-
}
|
|
2233
|
-
interface VideoGenJobEvent {
|
|
2234
|
-
jobId: string;
|
|
2235
|
-
status: 'completed' | 'failed';
|
|
2236
|
-
params: VideoGenParams;
|
|
2237
|
-
result?: VideoGenResult;
|
|
2238
|
-
error?: string;
|
|
2239
|
-
}
|
|
2240
|
-
interface VideoGenJobStartedEvent {
|
|
2241
|
-
jobId: string;
|
|
2242
|
-
}
|
|
2243
|
-
interface VideoGenApi {
|
|
2244
|
-
generate(params: VideoGenParams): Promise<VideoGenResult>;
|
|
2245
|
-
getCompletedJobs(): Promise<VideoGenJobEvent[]>;
|
|
2246
|
-
cancel(jobId: string): Promise<void>;
|
|
2247
|
-
onJobStarted(callback: (event: VideoGenJobStartedEvent) => void): {
|
|
2248
|
-
unsubscribe: () => void;
|
|
2249
|
-
};
|
|
2250
|
-
}
|
|
2251
|
-
|
|
2252
2122
|
interface FileEntry {
|
|
2253
2123
|
key: string;
|
|
2254
2124
|
sizeBytes: number;
|
|
@@ -2312,6 +2182,23 @@ interface ExistsParams {
|
|
|
2312
2182
|
targetAppId?: string;
|
|
2313
2183
|
targetProfileId?: string;
|
|
2314
2184
|
}
|
|
2185
|
+
interface BatchMetadataParams {
|
|
2186
|
+
keys: string[];
|
|
2187
|
+
targetAppId?: string;
|
|
2188
|
+
targetProfileId?: string;
|
|
2189
|
+
}
|
|
2190
|
+
interface BatchMetadataResult {
|
|
2191
|
+
entries: Record<string, FileEntry>;
|
|
2192
|
+
ttlMs: number;
|
|
2193
|
+
}
|
|
2194
|
+
interface BatchExistsParams {
|
|
2195
|
+
keys: string[];
|
|
2196
|
+
targetAppId?: string;
|
|
2197
|
+
targetProfileId?: string;
|
|
2198
|
+
}
|
|
2199
|
+
interface BatchExistsResult {
|
|
2200
|
+
results: Record<string, boolean>;
|
|
2201
|
+
}
|
|
2315
2202
|
interface StorageQuota {
|
|
2316
2203
|
usedBytes: number;
|
|
2317
2204
|
capBytes: number;
|
|
@@ -2353,6 +2240,11 @@ type TransformParams = {
|
|
|
2353
2240
|
input: string;
|
|
2354
2241
|
outputKey: string;
|
|
2355
2242
|
targetResolution?: '720p' | '1080p';
|
|
2243
|
+
model?: 'standard-v2' | 'low-resolution-v2' | 'cgi' | 'high-fidelity-v2' | 'recovery-v2';
|
|
2244
|
+
sharpen?: number;
|
|
2245
|
+
denoise?: number;
|
|
2246
|
+
faceEnhancement?: boolean;
|
|
2247
|
+
outputFormat?: 'png' | 'jpeg';
|
|
2356
2248
|
clientRef?: string;
|
|
2357
2249
|
} | {
|
|
2358
2250
|
op: 'copy';
|
|
@@ -2399,229 +2291,67 @@ interface TransformResult {
|
|
|
2399
2291
|
interface ConfirmUploadOptions {
|
|
2400
2292
|
clientRef?: string;
|
|
2401
2293
|
}
|
|
2294
|
+
interface BatchUploadParams {
|
|
2295
|
+
files: Array<{
|
|
2296
|
+
key: string;
|
|
2297
|
+
contentType: string;
|
|
2298
|
+
sizeBytes: number;
|
|
2299
|
+
visibility?: 'private' | 'public';
|
|
2300
|
+
}>;
|
|
2301
|
+
}
|
|
2302
|
+
interface BatchUploadResult {
|
|
2303
|
+
files: UploadResult[];
|
|
2304
|
+
}
|
|
2305
|
+
interface BatchConfirmResult {
|
|
2306
|
+
jobs: Array<{
|
|
2307
|
+
key: string;
|
|
2308
|
+
jobId?: string;
|
|
2309
|
+
status: string;
|
|
2310
|
+
error?: string;
|
|
2311
|
+
}>;
|
|
2312
|
+
}
|
|
2313
|
+
interface ExportToCloudinaryParams {
|
|
2314
|
+
key: string;
|
|
2315
|
+
publicId?: string;
|
|
2316
|
+
folder?: string;
|
|
2317
|
+
}
|
|
2318
|
+
interface CloudinaryExportResult {
|
|
2319
|
+
secureUrl: string;
|
|
2320
|
+
publicId: string;
|
|
2321
|
+
}
|
|
2402
2322
|
interface FilesJobEvent {
|
|
2403
2323
|
jobId: string;
|
|
2404
|
-
type: 'fileConfirm' | 'upscale' | 'transform';
|
|
2324
|
+
type: 'fileConfirm' | 'upscale' | 'transform' | 'fileExportCloudinary';
|
|
2405
2325
|
status: 'completed' | 'failed';
|
|
2406
2326
|
clientRef?: string;
|
|
2407
2327
|
params: Record<string, unknown>;
|
|
2408
|
-
result?: FileEntry | TransformResult;
|
|
2409
|
-
error?: string
|
|
2328
|
+
result?: FileEntry | TransformResult | CloudinaryExportResult;
|
|
2329
|
+
error?: string | {
|
|
2330
|
+
code: string;
|
|
2331
|
+
message: string;
|
|
2332
|
+
};
|
|
2410
2333
|
}
|
|
2411
2334
|
interface FilesApi {
|
|
2412
2335
|
upload(params: UploadParams): Promise<UploadResult>;
|
|
2413
2336
|
confirmUpload(key: string, options?: ConfirmUploadOptions): Promise<FileEntry>;
|
|
2337
|
+
batchUpload(params: BatchUploadParams): Promise<BatchUploadResult>;
|
|
2338
|
+
batchConfirm(keys: string[], options?: ConfirmUploadOptions): Promise<BatchConfirmResult>;
|
|
2414
2339
|
getUrl(params: GetUrlParams): Promise<string>;
|
|
2415
2340
|
getUrls(params: GetUrlsParams): Promise<GetUrlsResult>;
|
|
2416
2341
|
getMetadata(params: GetMetadataParams): Promise<FileEntry>;
|
|
2417
2342
|
exists(params: ExistsParams): Promise<boolean>;
|
|
2343
|
+
batchGetMetadata(params: BatchMetadataParams): Promise<BatchMetadataResult>;
|
|
2344
|
+
batchExists(params: BatchExistsParams): Promise<BatchExistsResult>;
|
|
2418
2345
|
delete(key: string): Promise<void>;
|
|
2419
2346
|
list(params?: ListParams): Promise<ListResult>;
|
|
2420
2347
|
getQuota(): Promise<StorageQuota>;
|
|
2421
2348
|
hasStorageAvailable(sizeBytes: number): Promise<boolean>;
|
|
2422
2349
|
setVisibility(key: string, visibility: 'private' | 'public'): Promise<FileEntry>;
|
|
2423
2350
|
transform(params: TransformParams): Promise<TransformResult>;
|
|
2351
|
+
exportToCloudinary(params: ExportToCloudinaryParams): Promise<CloudinaryExportResult>;
|
|
2424
2352
|
getCompletedJobs(): Promise<FilesJobEvent[]>;
|
|
2425
2353
|
}
|
|
2426
2354
|
|
|
2427
|
-
type SpriteGenModel = string;
|
|
2428
|
-
interface SpriteGenParams {
|
|
2429
|
-
prompt: string;
|
|
2430
|
-
/** Pixel art (true) or detailed HD art (false). Default true. */
|
|
2431
|
-
pixel?: boolean;
|
|
2432
|
-
width?: number;
|
|
2433
|
-
height?: number;
|
|
2434
|
-
bgMode?: 'transparent' | 'white' | 'include';
|
|
2435
|
-
theme?: string;
|
|
2436
|
-
style?: string;
|
|
2437
|
-
colors?: string[];
|
|
2438
|
-
/** SpriteCook asset ID from a prior generation, for style consistency. */
|
|
2439
|
-
referenceAssetId?: string;
|
|
2440
|
-
/** Creator-storage file key to use as style reference (resolved server-side). */
|
|
2441
|
-
referenceFileKey?: string;
|
|
2442
|
-
model?: SpriteGenModel;
|
|
2443
|
-
}
|
|
2444
|
-
interface SpriteGenResult {
|
|
2445
|
-
generationId: string;
|
|
2446
|
-
imageUrl: string;
|
|
2447
|
-
spriteCookAssetId: string;
|
|
2448
|
-
prompt: string;
|
|
2449
|
-
model: string;
|
|
2450
|
-
width: number;
|
|
2451
|
-
height: number;
|
|
2452
|
-
}
|
|
2453
|
-
interface AnimateSpriteParams {
|
|
2454
|
-
/** generationId from a prior spriteGen.generate() call. */
|
|
2455
|
-
sourceGenerationId?: string;
|
|
2456
|
-
/** Or: a creator-storage file key to animate (imported to SpriteCook on the fly). */
|
|
2457
|
-
sourceFileKey?: string;
|
|
2458
|
-
/** Or: an HTTPS URL to import and animate. */
|
|
2459
|
-
sourceImageUrl?: string;
|
|
2460
|
-
/** Motion description, e.g. "walk cycle, side view" or "idle breathing". */
|
|
2461
|
-
prompt: string;
|
|
2462
|
-
/** Frame count. Pixel: 2-16 (even), HD: 2-24 (even). Default 8. */
|
|
2463
|
-
outputFrames?: number;
|
|
2464
|
-
/** Output format. Default 'spritesheet'. */
|
|
2465
|
-
outputFormat?: 'spritesheet' | 'gif' | 'webp';
|
|
2466
|
-
/** Background removal mode. Default 'Basic'. */
|
|
2467
|
-
removeBg?: 'None' | 'Basic' | 'Pro';
|
|
2468
|
-
}
|
|
2469
|
-
interface AnimateSpriteResult {
|
|
2470
|
-
generationId: string;
|
|
2471
|
-
spriteSheetUrl: string;
|
|
2472
|
-
frameCount: number;
|
|
2473
|
-
frameWidth: number;
|
|
2474
|
-
frameHeight: number;
|
|
2475
|
-
prompt: string;
|
|
2476
|
-
}
|
|
2477
|
-
interface SpriteGenJobEvent {
|
|
2478
|
-
jobId: string;
|
|
2479
|
-
status: 'completed' | 'failed';
|
|
2480
|
-
/** Firestore job type — always 'spriteGen'. Use params.operation to distinguish generate vs animate. */
|
|
2481
|
-
type: string;
|
|
2482
|
-
params: (SpriteGenParams | AnimateSpriteParams) & {
|
|
2483
|
-
operation: 'generate' | 'animate';
|
|
2484
|
-
};
|
|
2485
|
-
result?: SpriteGenResult | AnimateSpriteResult;
|
|
2486
|
-
error?: string;
|
|
2487
|
-
}
|
|
2488
|
-
interface SpriteGenApi {
|
|
2489
|
-
generate(params: SpriteGenParams): Promise<SpriteGenResult>;
|
|
2490
|
-
animate(params: AnimateSpriteParams): Promise<AnimateSpriteResult>;
|
|
2491
|
-
getCompletedJobs(): Promise<SpriteGenJobEvent[]>;
|
|
2492
|
-
}
|
|
2493
|
-
|
|
2494
|
-
type ThreeDGenProvider = 'pixal3d' | 'hunyuan3d-v3.1-pro' | 'trellis-2';
|
|
2495
|
-
type ThreeDGenMode = 'image-to-3d' | 'text-to-3d';
|
|
2496
|
-
type ThreeDGenQuality = 'draft' | 'standard' | 'high';
|
|
2497
|
-
interface ThreeDGenBase {
|
|
2498
|
-
quality?: ThreeDGenQuality;
|
|
2499
|
-
seed?: number;
|
|
2500
|
-
requestOrigin?: string;
|
|
2501
|
-
clientRef?: string;
|
|
2502
|
-
/** Resolve a Files SDK key as the source image (alternative to imageUrl) */
|
|
2503
|
-
imageFileKey?: string;
|
|
2504
|
-
}
|
|
2505
|
-
interface Pixal3DImageTo3DParams extends ThreeDGenBase {
|
|
2506
|
-
provider: 'pixal3d';
|
|
2507
|
-
mode: 'image-to-3d';
|
|
2508
|
-
imageUrl: string;
|
|
2509
|
-
providerOptions?: {
|
|
2510
|
-
resolution?: 1024 | 1536;
|
|
2511
|
-
decimation_target?: number;
|
|
2512
|
-
texture_size?: 1024 | 2048 | 4096;
|
|
2513
|
-
remesh?: boolean;
|
|
2514
|
-
ss_guidance_strength?: number;
|
|
2515
|
-
ss_sampling_steps?: number;
|
|
2516
|
-
shape_slat_guidance_strength?: number;
|
|
2517
|
-
shape_slat_sampling_steps?: number;
|
|
2518
|
-
tex_slat_guidance_strength?: number;
|
|
2519
|
-
tex_slat_sampling_steps?: number;
|
|
2520
|
-
};
|
|
2521
|
-
}
|
|
2522
|
-
interface HunyuanImageTo3DParams extends ThreeDGenBase {
|
|
2523
|
-
provider: 'hunyuan3d-v3.1-pro';
|
|
2524
|
-
mode: 'image-to-3d';
|
|
2525
|
-
imageUrl: string;
|
|
2526
|
-
additionalViews?: {
|
|
2527
|
-
backImageUrl?: string;
|
|
2528
|
-
leftImageUrl?: string;
|
|
2529
|
-
rightImageUrl?: string;
|
|
2530
|
-
topImageUrl?: string;
|
|
2531
|
-
bottomImageUrl?: string;
|
|
2532
|
-
};
|
|
2533
|
-
providerOptions?: {
|
|
2534
|
-
face_count?: number;
|
|
2535
|
-
generate_type?: 'Normal' | 'Geometry';
|
|
2536
|
-
enable_pbr?: boolean;
|
|
2537
|
-
};
|
|
2538
|
-
}
|
|
2539
|
-
interface HunyuanTextTo3DParams extends ThreeDGenBase {
|
|
2540
|
-
provider: 'hunyuan3d-v3.1-pro';
|
|
2541
|
-
mode: 'text-to-3d';
|
|
2542
|
-
prompt: string;
|
|
2543
|
-
providerOptions?: {
|
|
2544
|
-
face_count?: number;
|
|
2545
|
-
generate_type?: 'Normal' | 'Geometry';
|
|
2546
|
-
enable_pbr?: boolean;
|
|
2547
|
-
};
|
|
2548
|
-
}
|
|
2549
|
-
interface Trellis2ImageTo3DParams extends ThreeDGenBase {
|
|
2550
|
-
provider: 'trellis-2';
|
|
2551
|
-
mode: 'image-to-3d';
|
|
2552
|
-
imageUrl: string;
|
|
2553
|
-
providerOptions?: Record<string, never>;
|
|
2554
|
-
}
|
|
2555
|
-
type ThreeDGenParams = Pixal3DImageTo3DParams | HunyuanImageTo3DParams | HunyuanTextTo3DParams | Trellis2ImageTo3DParams;
|
|
2556
|
-
interface ThreeDGenResult {
|
|
2557
|
-
generationId: string;
|
|
2558
|
-
modelUrl: string;
|
|
2559
|
-
rawModelUrl?: string;
|
|
2560
|
-
thumbnailUrl?: string;
|
|
2561
|
-
provider: ThreeDGenProvider;
|
|
2562
|
-
mode: ThreeDGenMode;
|
|
2563
|
-
quality: ThreeDGenQuality;
|
|
2564
|
-
seed: number;
|
|
2565
|
-
compression?: {
|
|
2566
|
-
inputSizeBytes: number;
|
|
2567
|
-
outputSizeBytes: number;
|
|
2568
|
-
compressionPercent: number;
|
|
2569
|
-
};
|
|
2570
|
-
}
|
|
2571
|
-
type RemeshTargetPreset = 'character' | 'prop';
|
|
2572
|
-
interface RemeshParams {
|
|
2573
|
-
modelUrl: string;
|
|
2574
|
-
targetFaceCount?: number;
|
|
2575
|
-
targetPreset?: RemeshTargetPreset;
|
|
2576
|
-
clientRef?: string;
|
|
2577
|
-
}
|
|
2578
|
-
interface RemeshResult {
|
|
2579
|
-
remeshId: string;
|
|
2580
|
-
modelUrl: string;
|
|
2581
|
-
faceCount: number;
|
|
2582
|
-
provider: 'meshy';
|
|
2583
|
-
}
|
|
2584
|
-
interface RigParams {
|
|
2585
|
-
modelUrl: string;
|
|
2586
|
-
heightMeters?: number;
|
|
2587
|
-
clientRef?: string;
|
|
2588
|
-
}
|
|
2589
|
-
interface RigResult {
|
|
2590
|
-
rigId: string;
|
|
2591
|
-
modelUrl: string;
|
|
2592
|
-
provider: 'meshy';
|
|
2593
|
-
}
|
|
2594
|
-
type AnimationPreset = 'idle' | 'walk' | 'run' | 'jump' | 'attack' | 'dance' | 'wave' | 'crouch' | 'fall' | 'hit';
|
|
2595
|
-
interface AnimateParams {
|
|
2596
|
-
rigId: string;
|
|
2597
|
-
animations: (AnimationPreset | number)[];
|
|
2598
|
-
clientRef?: string;
|
|
2599
|
-
}
|
|
2600
|
-
interface AnimatedClip {
|
|
2601
|
-
animation: string;
|
|
2602
|
-
modelUrl: string;
|
|
2603
|
-
}
|
|
2604
|
-
interface AnimateResult {
|
|
2605
|
-
clips: AnimatedClip[];
|
|
2606
|
-
provider: 'meshy';
|
|
2607
|
-
}
|
|
2608
|
-
type ThreeDGenJobOperation = 'generate' | 'remesh' | 'rig' | 'animate';
|
|
2609
|
-
interface ThreeDGenJobEvent {
|
|
2610
|
-
jobId: string;
|
|
2611
|
-
operation: ThreeDGenJobOperation;
|
|
2612
|
-
status: 'completed' | 'failed';
|
|
2613
|
-
params: ThreeDGenParams | RemeshParams | RigParams | AnimateParams;
|
|
2614
|
-
result?: ThreeDGenResult | RemeshResult | RigResult | AnimateResult;
|
|
2615
|
-
error?: string;
|
|
2616
|
-
}
|
|
2617
|
-
interface ThreeDGenApi {
|
|
2618
|
-
generate(params: ThreeDGenParams): Promise<ThreeDGenResult>;
|
|
2619
|
-
remesh(params: RemeshParams): Promise<RemeshResult>;
|
|
2620
|
-
rig(params: RigParams): Promise<RigResult>;
|
|
2621
|
-
animate(params: AnimateParams): Promise<AnimateResult>;
|
|
2622
|
-
getCompletedJobs(): Promise<ThreeDGenJobEvent[]>;
|
|
2623
|
-
}
|
|
2624
|
-
|
|
2625
2355
|
interface Entitlement {
|
|
2626
2356
|
docId: string;
|
|
2627
2357
|
userId: string;
|
|
@@ -2926,6 +2656,34 @@ interface VideoApi {
|
|
|
2926
2656
|
}) => void): Subscription;
|
|
2927
2657
|
}
|
|
2928
2658
|
|
|
2659
|
+
interface AdminGenBrowseParams {
|
|
2660
|
+
profileId?: string;
|
|
2661
|
+
status?: 'active' | 'removed';
|
|
2662
|
+
cursor?: string;
|
|
2663
|
+
limit?: number;
|
|
2664
|
+
sortOrder?: 'asc' | 'desc';
|
|
2665
|
+
}
|
|
2666
|
+
interface AdminGenBrowseResponse<TEntry> {
|
|
2667
|
+
entries: TEntry[];
|
|
2668
|
+
nextCursor?: string;
|
|
2669
|
+
}
|
|
2670
|
+
interface AdminGenListReportsParams {
|
|
2671
|
+
status?: 'pending' | 'reviewed' | 'dismissed';
|
|
2672
|
+
cursor?: string;
|
|
2673
|
+
limit?: number;
|
|
2674
|
+
}
|
|
2675
|
+
interface AdminGenListReportsResponse<TReport> {
|
|
2676
|
+
reports: TReport[];
|
|
2677
|
+
nextCursor?: string;
|
|
2678
|
+
}
|
|
2679
|
+
type AdminGenResolveAction = 'reviewed' | 'dismissed';
|
|
2680
|
+
interface AdminGenApi<TEntry, TReport> {
|
|
2681
|
+
browse(params?: AdminGenBrowseParams): Promise<AdminGenBrowseResponse<TEntry>>;
|
|
2682
|
+
removeEntry(generationId: string): Promise<void>;
|
|
2683
|
+
listReports(params?: AdminGenListReportsParams): Promise<AdminGenListReportsResponse<TReport>>;
|
|
2684
|
+
resolveReport(reportId: string, action: AdminGenResolveAction): Promise<void>;
|
|
2685
|
+
}
|
|
2686
|
+
|
|
2929
2687
|
type AppRole = 'owner' | 'editor' | 'none';
|
|
2930
2688
|
interface AdminUgcBrowseParams {
|
|
2931
2689
|
contentType?: string;
|
|
@@ -2996,17 +2754,6 @@ interface ImageGenEntry {
|
|
|
2996
2754
|
createdAt: number;
|
|
2997
2755
|
status: 'active' | 'removed';
|
|
2998
2756
|
}
|
|
2999
|
-
interface AdminImageGenBrowseParams {
|
|
3000
|
-
profileId?: string;
|
|
3001
|
-
status?: 'active' | 'removed';
|
|
3002
|
-
cursor?: string;
|
|
3003
|
-
limit?: number;
|
|
3004
|
-
sortOrder?: 'asc' | 'desc';
|
|
3005
|
-
}
|
|
3006
|
-
interface AdminImageGenBrowseResponse {
|
|
3007
|
-
entries: ImageGenEntry[];
|
|
3008
|
-
nextCursor?: string;
|
|
3009
|
-
}
|
|
3010
2757
|
interface ImageGenReport {
|
|
3011
2758
|
id: string;
|
|
3012
2759
|
generationId: string;
|
|
@@ -3017,22 +2764,34 @@ interface ImageGenReport {
|
|
|
3017
2764
|
createdAt: number;
|
|
3018
2765
|
status: 'pending' | 'reviewed' | 'dismissed';
|
|
3019
2766
|
}
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
2767
|
+
type AdminImageGenApi = AdminGenApi<ImageGenEntry, ImageGenReport>;
|
|
2768
|
+
interface VideoGenEntry {
|
|
2769
|
+
id: string;
|
|
2770
|
+
appId: string;
|
|
2771
|
+
profileId: string;
|
|
2772
|
+
provider: string;
|
|
2773
|
+
mode: string;
|
|
2774
|
+
prompt: string;
|
|
2775
|
+
videoUrl: string;
|
|
2776
|
+
posterUrl?: string;
|
|
2777
|
+
durationSeconds: number;
|
|
2778
|
+
width: number;
|
|
2779
|
+
height: number;
|
|
2780
|
+
generationCostUsd?: number;
|
|
2781
|
+
createdAt: number;
|
|
2782
|
+
status: 'active' | 'removed';
|
|
3028
2783
|
}
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
2784
|
+
interface VideoGenReport {
|
|
2785
|
+
id: string;
|
|
2786
|
+
generationId: string;
|
|
2787
|
+
appId: string;
|
|
2788
|
+
reporterId: string;
|
|
2789
|
+
reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
|
|
2790
|
+
details?: string;
|
|
2791
|
+
createdAt: number;
|
|
2792
|
+
status: 'pending' | 'reviewed' | 'dismissed';
|
|
3035
2793
|
}
|
|
2794
|
+
type AdminVideoGenApi = AdminGenApi<VideoGenEntry, VideoGenReport>;
|
|
3036
2795
|
interface SpriteGenEntry {
|
|
3037
2796
|
id: string;
|
|
3038
2797
|
appId: string;
|
|
@@ -3049,34 +2808,35 @@ interface SpriteGenEntry {
|
|
|
3049
2808
|
frameHeight?: number;
|
|
3050
2809
|
imageUrl: string;
|
|
3051
2810
|
creditsUsed?: number;
|
|
2811
|
+
createdAt: number;
|
|
2812
|
+
status: 'active' | 'removed';
|
|
3052
2813
|
}
|
|
3053
|
-
interface
|
|
2814
|
+
interface SpriteGenReport {
|
|
2815
|
+
id: string;
|
|
2816
|
+
generationId: string;
|
|
2817
|
+
appId: string;
|
|
2818
|
+
reporterId: string;
|
|
2819
|
+
reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
|
|
2820
|
+
details?: string;
|
|
2821
|
+
createdAt: number;
|
|
2822
|
+
status: 'pending' | 'reviewed' | 'dismissed';
|
|
2823
|
+
}
|
|
2824
|
+
type AdminSpriteGenApi = AdminGenApi<SpriteGenEntry, SpriteGenReport>;
|
|
2825
|
+
interface AudioGenEntry {
|
|
3054
2826
|
id: string;
|
|
3055
2827
|
appId: string;
|
|
3056
2828
|
profileId: string;
|
|
3057
|
-
|
|
2829
|
+
type: 'sfx' | 'music' | 'tts';
|
|
3058
2830
|
provider: string;
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
estimatedCostUsd: number;
|
|
2831
|
+
prompt: string;
|
|
2832
|
+
audioUrl: string;
|
|
2833
|
+
durationSec: number;
|
|
2834
|
+
model?: string;
|
|
2835
|
+
voiceId?: string;
|
|
3065
2836
|
createdAt: number;
|
|
3066
2837
|
status: 'active' | 'removed';
|
|
3067
2838
|
}
|
|
3068
|
-
interface
|
|
3069
|
-
profileId?: string;
|
|
3070
|
-
status?: 'active' | 'removed';
|
|
3071
|
-
cursor?: string;
|
|
3072
|
-
limit?: number;
|
|
3073
|
-
sortOrder?: 'asc' | 'desc';
|
|
3074
|
-
}
|
|
3075
|
-
interface AdminSpriteGenBrowseResponse {
|
|
3076
|
-
entries: SpriteGenEntry[];
|
|
3077
|
-
nextCursor?: string;
|
|
3078
|
-
}
|
|
3079
|
-
interface SpriteGenReport {
|
|
2839
|
+
interface AudioGenReport {
|
|
3080
2840
|
id: string;
|
|
3081
2841
|
generationId: string;
|
|
3082
2842
|
appId: string;
|
|
@@ -3086,64 +2846,60 @@ interface SpriteGenReport {
|
|
|
3086
2846
|
createdAt: number;
|
|
3087
2847
|
status: 'pending' | 'reviewed' | 'dismissed';
|
|
3088
2848
|
}
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
}
|
|
3105
|
-
interface AdminThreeDGenBrowseParams {
|
|
3106
|
-
profileId?: string;
|
|
3107
|
-
status?: 'active' | 'removed';
|
|
3108
|
-
cursor?: string;
|
|
3109
|
-
limit?: number;
|
|
3110
|
-
sortOrder?: 'asc' | 'desc';
|
|
3111
|
-
}
|
|
3112
|
-
interface AdminThreeDGenBrowseResponse {
|
|
3113
|
-
entries: ThreeDGenEntry[];
|
|
3114
|
-
nextCursor?: string;
|
|
2849
|
+
type AdminAudioGenApi = AdminGenApi<AudioGenEntry, AudioGenReport>;
|
|
2850
|
+
interface ThreeDGenEntry {
|
|
2851
|
+
id: string;
|
|
2852
|
+
appId: string;
|
|
2853
|
+
profileId: string;
|
|
2854
|
+
operation: string;
|
|
2855
|
+
provider: string;
|
|
2856
|
+
mode?: string;
|
|
2857
|
+
quality?: string;
|
|
2858
|
+
prompt?: string;
|
|
2859
|
+
modelUrl: string;
|
|
2860
|
+
rawModelUrl?: string;
|
|
2861
|
+
estimatedCostUsd?: number;
|
|
2862
|
+
createdAt: number;
|
|
2863
|
+
status: 'active' | 'removed';
|
|
3115
2864
|
}
|
|
3116
2865
|
interface ThreeDGenReport {
|
|
3117
2866
|
id: string;
|
|
3118
2867
|
generationId: string;
|
|
3119
2868
|
appId: string;
|
|
3120
2869
|
reporterId: string;
|
|
3121
|
-
reason:
|
|
2870
|
+
reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
|
|
3122
2871
|
details?: string;
|
|
3123
2872
|
createdAt: number;
|
|
3124
2873
|
status: 'pending' | 'reviewed' | 'dismissed';
|
|
3125
2874
|
}
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
type
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
2875
|
+
type AdminThreeDGenApi = AdminGenApi<ThreeDGenEntry, ThreeDGenReport>;
|
|
2876
|
+
type AdminImageGenBrowseParams = AdminGenBrowseParams;
|
|
2877
|
+
type AdminImageGenBrowseResponse = AdminGenBrowseResponse<ImageGenEntry>;
|
|
2878
|
+
type AdminImageGenListReportsParams = AdminGenListReportsParams;
|
|
2879
|
+
type AdminImageGenListReportsResponse = AdminGenListReportsResponse<ImageGenReport>;
|
|
2880
|
+
type AdminImageGenResolveAction = AdminGenResolveAction;
|
|
2881
|
+
type AdminVideoGenBrowseParams = AdminGenBrowseParams;
|
|
2882
|
+
type AdminVideoGenBrowseResponse = AdminGenBrowseResponse<VideoGenEntry>;
|
|
2883
|
+
type AdminVideoGenListReportsParams = AdminGenListReportsParams;
|
|
2884
|
+
type AdminVideoGenListReportsResponse = AdminGenListReportsResponse<VideoGenReport>;
|
|
2885
|
+
type AdminVideoGenResolveAction = AdminGenResolveAction;
|
|
2886
|
+
type AdminSpriteGenBrowseParams = AdminGenBrowseParams;
|
|
2887
|
+
type AdminSpriteGenBrowseResponse = AdminGenBrowseResponse<SpriteGenEntry>;
|
|
2888
|
+
type AdminSpriteGenListReportsParams = AdminGenListReportsParams;
|
|
2889
|
+
type AdminSpriteGenListReportsResponse = AdminGenListReportsResponse<SpriteGenReport>;
|
|
2890
|
+
type AdminSpriteGenResolveAction = AdminGenResolveAction;
|
|
2891
|
+
type AdminThreeDGenBrowseParams = AdminGenBrowseParams;
|
|
2892
|
+
type AdminThreeDGenBrowseResponse = AdminGenBrowseResponse<ThreeDGenEntry>;
|
|
2893
|
+
type AdminThreeDGenListReportsParams = AdminGenListReportsParams;
|
|
2894
|
+
type AdminThreeDGenListReportsResponse = AdminGenListReportsResponse<ThreeDGenReport>;
|
|
2895
|
+
type AdminThreeDGenResolveAction = AdminGenResolveAction;
|
|
3142
2896
|
interface AppApi {
|
|
3143
2897
|
getMyRole(): Promise<AppRole>;
|
|
3144
2898
|
readonly adminUgc: AdminUgcApi;
|
|
3145
2899
|
readonly adminImageGen: AdminImageGenApi;
|
|
2900
|
+
readonly adminVideoGen: AdminVideoGenApi;
|
|
3146
2901
|
readonly adminSpriteGen: AdminSpriteGenApi;
|
|
2902
|
+
readonly adminAudioGen: AdminAudioGenApi;
|
|
3147
2903
|
readonly adminThreeDGen: AdminThreeDGenApi;
|
|
3148
2904
|
}
|
|
3149
2905
|
|
|
@@ -3767,4 +3523,4 @@ interface AdsApi {
|
|
|
3767
3523
|
showInterstitialAd(options?: ShowInterstitialAdOptions): Promise<boolean>;
|
|
3768
3524
|
}
|
|
3769
3525
|
|
|
3770
|
-
export { type FetchFromCdnOptions as $, type AnalyticsApi as A, type BatchRecipeRequirementsResult as B, type NotificationsApi as C, type ScheduleLocalNotification as D, type ScheduleNotificationOptions as E, type RCSAvailabilityStatus as F, type ScheduleRCSInput as G, type Host as H, type ScheduleRCSResult as I, type PopupsApi as J, type ShowToastOptions as K, type ShowInterstitialAdOptions as L, type ShowRewardedAdOptions as M, type NavigationApi as N, type ProfileApi as O, type Profile as P, type QuitOptions as Q, type RundotGameAPI as R, type SimulationActiveRunsUpdate as S, type DeviceApi as T, type DeviceInfo as U, type EnvironmentApi as V, type EnvironmentInfo as W, type SystemApi as X, type SafeArea as Y, type AddToHomeScreenResult as Z, type CdnApi as _, type RecipeRequirementQuery as a, type
|
|
3526
|
+
export { type FetchFromCdnOptions as $, type AnalyticsApi as A, type BatchRecipeRequirementsResult as B, type NotificationsApi as C, type ScheduleLocalNotification as D, type ScheduleNotificationOptions as E, type RCSAvailabilityStatus as F, type ScheduleRCSInput as G, type Host as H, type ScheduleRCSResult as I, type PopupsApi as J, type ShowToastOptions as K, type ShowInterstitialAdOptions as L, type ShowRewardedAdOptions as M, type NavigationApi as N, type ProfileApi as O, type Profile as P, type QuitOptions as Q, type RundotGameAPI as R, type SimulationActiveRunsUpdate as S, type DeviceApi as T, type DeviceInfo as U, type EnvironmentApi as V, type EnvironmentInfo as W, type SystemApi as X, type SafeArea as Y, type AddToHomeScreenResult as Z, type CdnApi as _, type RecipeRequirementQuery as a, type SpendCurrencyOptions as a$, type AssetUrlResult as a0, type TimeApi as a1, type ServerTimeData as a2, type GetFutureTimeOptions as a3, type AiApi as a4, type AiChatCompletionRequest as a5, type AiChatCompletionData as a6, type AiChatCompletionStreamOptions as a7, type AiChatCompletionStreamChunk as a8, type HapticsApi as a9, type GetActiveRunsOptions as aA, type ExecuteScopedRecipeOptions as aB, type ExecuteScopedRecipeResult as aC, type GetAvailableRecipesOptions as aD, type GetAvailableRecipesResult as aE, type Recipe as aF, type GetBatchRecipeRequirements as aG, type TriggerRecipeChainOptions as aH, type RoomDataUpdate as aI, type RoomMessageEvent as aJ, type ProposedMoveEvent as aK, RundotGameTransport as aL, type RoomsApi as aM, type CreateRoomOptions as aN, type JoinOrCreateRoomOptions as aO, type JoinOrCreateResult as aP, type ListRoomsOptions as aQ, type UpdateRoomDataOptions as aR, type RoomMessageRequest as aS, type StartRoomGameOptions as aT, type ProposeMoveRequest as aU, type ProposeMoveResult as aV, type ValidateMoveVerdict as aW, type ValidateMoveResult as aX, type RoomSubscriptionOptions as aY, type LoggingApi as aZ, type IapApi as a_, HapticFeedbackStyle as aa, type FeaturesApi as ab, type Experiment as ac, type LifecycleApi as ad, type SleepCallback as ae, type Subscription as af, type AwakeCallback as ag, type PauseCallback as ah, type ResumeCallback as ai, type QuitCallback as aj, type BackButtonCallback as ak, type SimulationApi as al, type SimulationSlotValidationResult as am, type SimulationBatchOperation as an, type SimulationBatchOperationsResult as ao, type SimulationAvailableItem as ap, type SimulationPowerPreview as aq, type SimulationSlotMutationResult as ar, type SimulationSlotContainer as as, type SimulationAssignment as at, type SimulationState as au, type ExecuteRecipeOptions as av, type ExecuteRecipeResponse as aw, type CollectRecipeResult as ax, type ResetStateOptions as ay, type ResetStateResult as az, type RecipeRequirementResult as b, type FilesApi as b$, type SpendCurrencyResult as b0, type SubscriptionTier as b1, type RunSubscriptionsResponse as b2, type SubscriptionInterval as b3, type PurchaseSubscriptionResponse as b4, type OpenStoreResult as b5, type LoadEmbeddedAssetsResponse as b6, type SharedAssetsApi as b7, type PreloaderApi as b8, type SocialApi as b9, type AdminSpriteGenApi as bA, type AdminAudioGenApi as bB, type AdminThreeDGenApi as bC, type AppRole as bD, type AdminUgcBrowseParams as bE, type AdminUgcBrowseResponse as bF, type AdminUgcListReportsParams as bG, type AdminUgcListReportsResponse as bH, type AdminUgcResolveAction as bI, type AdminGenBrowseParams as bJ, type AdminGenBrowseResponse as bK, type ImageGenEntry as bL, type AdminGenListReportsParams as bM, type AdminGenListReportsResponse as bN, type ImageGenReport as bO, type AdminGenResolveAction as bP, type SpriteGenEntry as bQ, type SpriteGenReport as bR, type ThreeDGenEntry as bS, type ThreeDGenReport as bT, type Avatar3dApi as bU, type AssetManifest as bV, type Avatar3dConfig as bW, type ShowEditorOptions as bX, type Avatar3dEdits as bY, type AdsApi as bZ, type SharedStorageHostApi as b_, type ShareMetadata as ba, type ShareLinkResult as bb, type SocialQRCodeOptions as bc, type QRCodeResult as bd, type ShareClickData as be, type ShareFileOptions as bf, type ShareFileResult as bg, type CanShareFileResult as bh, type EntitlementApi as bi, type Entitlement as bj, type LedgerEntry as bk, type ShopApi as bl, type StorefrontResponse as bm, type StorefrontItem as bn, type ShopPurchaseResponse as bo, type ShopOrderHistoryResponse as bp, type PromptLoginResult as bq, type AccessTier as br, type AccessGateApi as bs, type TextGenApi as bt, type UgcApi as bu, type VideoApi as bv, type AppApi as bw, type AdminUgcApi as bx, type AdminImageGenApi as by, type AdminVideoGenApi as bz, type RundotGameAvailableRecipe as c, type RoomMessageEventType as c$, type MultiplayerApi as c0, type AttributionApi as c1, type InitializationContext as c2, type InitializationOptions as c3, AccessDeniedError as c4, type AdminGenApi as c5, type AdminImageGenBrowseParams as c6, type AdminImageGenBrowseResponse as c7, type AdminImageGenListReportsParams as c8, type AdminImageGenListReportsResponse as c9, type AudioGenEntry as cA, type AudioGenReport as cB, type Category as cC, type ConnectionState as cD, type GetSubscriptionsForTierRequest as cE, type HudInsets as cF, type InboundForKeyEntry as cG, type InboundMethodIds as cH, type InboundStorageApi as cI, type IsPlayerSubscribedRequest as cJ, type JoinOrCreateRoomEnvelopeResponse as cK, type JoinRoomMatchCriteria as cL, type LoadEmbeddedAssetsRequest as cM, MockAvatarApi as cN, type NotificationTriggerInput as cO, type OnNotificationCallback as cP, type OnRequestCallback as cQ, type OnResponseCallback as cR, type ProposedMovePayload as cS, type Protocol as cT, type PurchaseSubscriptionRequest as cU, type RCSAvailabilityReason as cV, ROOM_GAME_PHASES as cW, type RecipeInfo as cX, type RoomEnvelopeResponse as cY, type RoomEvents as cZ, type RoomGamePhase as c_, type AdminImageGenResolveAction as ca, type AdminSpriteGenBrowseParams as cb, type AdminSpriteGenBrowseResponse as cc, type AdminSpriteGenListReportsParams as cd, type AdminSpriteGenListReportsResponse as ce, type AdminSpriteGenResolveAction as cf, type AdminThreeDGenBrowseParams as cg, type AdminThreeDGenBrowseResponse as ch, type AdminThreeDGenListReportsParams as ci, type AdminThreeDGenListReportsResponse as cj, type AdminThreeDGenResolveAction as ck, type AdminUgcEntry as cl, type AdminVideoGenBrowseParams as cm, type AdminVideoGenBrowseResponse as cn, type AdminVideoGenListReportsParams as co, type AdminVideoGenListReportsResponse as cp, type AdminVideoGenResolveAction as cq, type AiContentBlock as cr, type AiImageContent as cs, type AiImageUrlContent as ct, type AiMessage as cu, type AiResponseFormat as cv, type AiTextContent as cw, type AiToolResultContent as cx, type AiToolUseContent as cy, type Asset as cz, type RundotGameCollectRecipeResult as d, type RoomMessagePayload as d0, type RoomsEnvelopeResponse as d1, RpcInboundStorageApi as d2, RpcSharedAssetsApi as d3, type RpcTransport as d4, type RunSubscription as d5, type RundotGameRoomCustomMetadata as d6, type RundotGameRoomPayload as d7, type RundotGameRoomRules as d8, type RundotGameRoomRulesGameState as d9, SHARE_FILE_ALLOWED_MIME_TYPES as da, SHARE_FILE_MAX_SIZE_BYTES as db, type ScheduleRCSStatus as dc, type ServerPlayer as dd, type ServerRoom as de, type ShareFileMimeType as df, type ShopOrder as dg, type SimulationBatchOperationAssign as dh, type SimulationBatchOperationRemove as di, type SimulationBatchOperationResult as dj, type SimulationPersonalState as dk, type SimulationRoomActiveRecipe as dl, type SimulationRoomState as dm, type StorefrontCollection as dn, type StorefrontCollectionItem as dp, type SubPath as dq, type Tool as dr, type ToolChoice as ds, type ToolUse as dt, type TimeIntervalTriggerInput as du, type UgcReport as dv, type VideoGenEntry as dw, type VideoGenReport as dx, createHost as dy, resolveCollectionItemPrice as dz, type RundotGameExecuteRecipeOptions as e, type RundotGameExecuteRecipeResult as f, type RundotGameExecuteScopedRecipeOptions as g, RundotGameRoom as h, type RundotGameSimulationConfig as i, type RundotGameSimulationEffect as j, type RundotGameSimulationRecipe as k, type RundotGameSimulationStateResponse as l, type SimulationEntityUpdate as m, type SimulationRunSummary as n, type SimulationSnapshotUpdate as o, type SimulationSubscribeOptions as p, type SimulationUpdateData as q, type SimulationUpdateType as r, type RpcRequest as s, type RpcResponse as t, type RpcNotification as u, RpcClient as v, type StorageApi as w, type NavigationStackInfo as x, type PushAppOptions as y, type NavigateToGameOptions as z };
|