@marlinjai/studio-mcp 0.2.0 → 0.4.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/index.d.ts CHANGED
@@ -33,6 +33,7 @@ declare const DocNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
33
33
  "multiview-to-3d": "multiview-to-3d";
34
34
  remesh: "remesh";
35
35
  texture: "texture";
36
+ rig: "rig";
36
37
  "text-to-audio": "text-to-audio";
37
38
  "text-to-speech": "text-to-speech";
38
39
  "speech-to-text": "speech-to-text";
@@ -121,6 +122,7 @@ declare const WorkflowDocumentSchema: z.ZodObject<{
121
122
  "multiview-to-3d": "multiview-to-3d";
122
123
  remesh: "remesh";
123
124
  texture: "texture";
125
+ rig: "rig";
124
126
  "text-to-audio": "text-to-audio";
125
127
  "text-to-speech": "text-to-speech";
126
128
  "speech-to-text": "speech-to-text";
@@ -249,6 +251,7 @@ declare const OpSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
249
251
  "multiview-to-3d": "multiview-to-3d";
250
252
  remesh: "remesh";
251
253
  texture: "texture";
254
+ rig: "rig";
252
255
  "text-to-audio": "text-to-audio";
253
256
  "text-to-speech": "text-to-speech";
254
257
  "speech-to-text": "speech-to-text";
@@ -341,6 +344,7 @@ declare const OpSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
341
344
  "multiview-to-3d": "multiview-to-3d";
342
345
  remesh: "remesh";
343
346
  texture: "texture";
347
+ rig: "rig";
344
348
  "text-to-audio": "text-to-audio";
345
349
  "text-to-speech": "text-to-speech";
346
350
  "speech-to-text": "speech-to-text";
@@ -543,6 +547,7 @@ declare const PatchSchema: z.ZodObject<{
543
547
  "multiview-to-3d": "multiview-to-3d";
544
548
  remesh: "remesh";
545
549
  texture: "texture";
550
+ rig: "rig";
546
551
  "text-to-audio": "text-to-audio";
547
552
  "text-to-speech": "text-to-speech";
548
553
  "speech-to-text": "speech-to-text";
@@ -635,6 +640,7 @@ declare const PatchSchema: z.ZodObject<{
635
640
  "multiview-to-3d": "multiview-to-3d";
636
641
  remesh: "remesh";
637
642
  texture: "texture";
643
+ rig: "rig";
638
644
  "text-to-audio": "text-to-audio";
639
645
  "text-to-speech": "text-to-speech";
640
646
  "speech-to-text": "speech-to-text";
@@ -852,7 +858,7 @@ interface ApplyError {
852
858
  * Pure: no database, no provider, no DOM.
853
859
  */
854
860
 
855
- type ProjectionIssueCode = "no_task_nodes" | "not_runnable" | "no_model" | "prompt_required" | "source_uploading" | "no_inputs" | "param_unmappable" | "param_type_conflict" | "integrity";
861
+ type ProjectionIssueCode = "no_task_nodes" | "not_runnable" | "no_model" | "prompt_required" | "source_uploading" | "keyframe_positions" | "no_inputs" | "param_unmappable" | "param_type_conflict" | "integrity";
856
862
  interface ProjectionIssue {
857
863
  code: ProjectionIssueCode;
858
864
  /** The node the issue is about, when it is about one. */
@@ -863,11 +869,12 @@ interface ProjectionIssue {
863
869
  /**
864
870
  * Server configuration, resolved from the environment once at startup.
865
871
  *
866
- * `LUMITRA_STUDIO_API_KEY` is the bearer token. The legacy name
867
- * `LUMITRA_STUDIO_SERVICE_TOKEN` (the batch skill + lola-stories backend) is
868
- * accepted as a fallback so an existing cc.sh-injected environment works
869
- * unchanged. The token is held in memory only: nothing in this package ever
870
- * logs, echoes, or serializes it (see `redactSecret` in errors.ts).
872
+ * `LUMITRA_STUDIO_API_KEY` is the bearer token, and the only name read. The
873
+ * legacy name `LUMITRA_STUDIO_SERVICE_TOKEN` was a fallback until 0.4.0; the two
874
+ * names carried different keys on one machine, so there is now one. A legacy
875
+ * variable that is still set is named in the error, never read. The token is
876
+ * held in memory only: nothing in this package ever logs, echoes, or serializes
877
+ * it (see `redactSecret` in errors.ts).
871
878
  *
872
879
  * Placeholder handling: the Agent Plugins spec only guarantees expansion of
873
880
  * `${PLUGIN_ROOT}` / `${PLUGIN_DATA}` in a plugin's `.mcp.json`, so some
@@ -965,6 +972,9 @@ interface NodeRun {
965
972
  mime?: string | null;
966
973
  text?: string;
967
974
  json?: unknown;
975
+ assetId?: string | null;
976
+ /** A name for one of several results, e.g. a rig's animation clip preset. */
977
+ label?: string;
968
978
  }>;
969
979
  costUsd?: number | null;
970
980
  errorMessage?: string | null;
@@ -1047,7 +1057,11 @@ interface TenantUsageResponse {
1047
1057
  tenantId?: string;
1048
1058
  month: string;
1049
1059
  plan: string;
1060
+ /** `null` = explicitly unlimited (only an operator-set plan can be). */
1050
1061
  capUsd: number | null;
1062
+ /** `default`: no plan of its own, the default cap applies. `row`: an
1063
+ * operator-set plan. Absent from a Studio older than 2026-09-23. */
1064
+ capSource?: 'row' | 'default';
1051
1065
  rpm: number | null;
1052
1066
  /** Realized + in-flight estimated: the same total the quota guard checks
1053
1067
  * against and a 402 body's `usedUsd` reports. */
@@ -1198,6 +1212,25 @@ declare class StudioClient {
1198
1212
  jobId: string;
1199
1213
  kind: string;
1200
1214
  }>;
1215
+ /**
1216
+ * One 3D generation. `/api/generate` routes to its 3D branch on `?force=3d`
1217
+ * (a prompt alone would be classified by its words); the model and its flags
1218
+ * ride under `settings.model3d` and `settings.options3d`, an input image as
1219
+ * `images[0]`.
1220
+ */
1221
+ generate3d(body: {
1222
+ prompt: string;
1223
+ images?: string[];
1224
+ projectId?: string;
1225
+ brandSlug?: string;
1226
+ settings?: {
1227
+ model3d?: string;
1228
+ options3d?: Record<string, unknown>;
1229
+ };
1230
+ }): Promise<{
1231
+ jobId: string;
1232
+ kind: string;
1233
+ }>;
1201
1234
  getJob(jobId: string): Promise<JobResponse>;
1202
1235
  listCharacters(): Promise<{
1203
1236
  characters: CharacterSummary[];
@@ -1214,6 +1247,11 @@ declare class StudioClient {
1214
1247
  descriptorPrompt: string;
1215
1248
  negativePrompt?: string;
1216
1249
  defaultModel?: string;
1250
+ /** The likeness acknowledgement, confirmed by the human the agent acts
1251
+ * for. The literal `true` in the type is the point: a call site with no
1252
+ * confirmation to pass does not compile. The Studio answers 422
1253
+ * `likeness_rights_confirmation_required` without it. */
1254
+ likenessRightsConfirmed: true;
1217
1255
  }): Promise<{
1218
1256
  character: CharacterSummary;
1219
1257
  }>;
@@ -1316,6 +1354,10 @@ declare class StudioClient {
1316
1354
  budgetUsd?: number;
1317
1355
  /** Bypasses the $10 confirmation threshold for this one request. */
1318
1356
  confirm?: boolean;
1357
+ /** The likeness acknowledgement. Required by the Studio when the recipe
1358
+ * creates a character (422 `likeness_rights_confirmation_required`,
1359
+ * before anything is spent); ignored by a recipe that creates none. */
1360
+ likenessRightsConfirmed?: true;
1319
1361
  }): Promise<{
1320
1362
  runId: string;
1321
1363
  status: string;
@@ -1458,7 +1500,7 @@ declare function registerTools(server: McpServer, ctx: ToolContext): void;
1458
1500
  */
1459
1501
 
1460
1502
  declare const SERVER_NAME = "lumitra-studio";
1461
- declare const SERVER_VERSION = "0.2.0";
1503
+ declare const SERVER_VERSION = "0.4.0";
1462
1504
  interface CreateServerOptions {
1463
1505
  config?: StudioConfig;
1464
1506
  env?: NodeJS.ProcessEnv;
@@ -1530,6 +1572,7 @@ declare const studioWorkflowCreate: ToolDef<{
1530
1572
  "multiview-to-3d": "multiview-to-3d";
1531
1573
  remesh: "remesh";
1532
1574
  texture: "texture";
1575
+ rig: "rig";
1533
1576
  "text-to-audio": "text-to-audio";
1534
1577
  "text-to-speech": "text-to-speech";
1535
1578
  "speech-to-text": "speech-to-text";
@@ -1622,6 +1665,7 @@ declare const studioWorkflowCreate: ToolDef<{
1622
1665
  "multiview-to-3d": "multiview-to-3d";
1623
1666
  remesh: "remesh";
1624
1667
  texture: "texture";
1668
+ rig: "rig";
1625
1669
  "text-to-audio": "text-to-audio";
1626
1670
  "text-to-speech": "text-to-speech";
1627
1671
  "speech-to-text": "speech-to-text";
@@ -1826,6 +1870,7 @@ declare const studioWorkflowApply: ToolDef<{
1826
1870
  "multiview-to-3d": "multiview-to-3d";
1827
1871
  remesh: "remesh";
1828
1872
  texture: "texture";
1873
+ rig: "rig";
1829
1874
  "text-to-audio": "text-to-audio";
1830
1875
  "text-to-speech": "text-to-speech";
1831
1876
  "speech-to-text": "speech-to-text";
@@ -1918,6 +1963,7 @@ declare const studioWorkflowApply: ToolDef<{
1918
1963
  "multiview-to-3d": "multiview-to-3d";
1919
1964
  remesh: "remesh";
1920
1965
  texture: "texture";
1966
+ rig: "rig";
1921
1967
  "text-to-audio": "text-to-audio";
1922
1968
  "text-to-speech": "text-to-speech";
1923
1969
  "speech-to-text": "speech-to-text";
@@ -2121,6 +2167,7 @@ declare const studioWorkflowValidate: ToolDef<{
2121
2167
  "multiview-to-3d": "multiview-to-3d";
2122
2168
  remesh: "remesh";
2123
2169
  texture: "texture";
2170
+ rig: "rig";
2124
2171
  "text-to-audio": "text-to-audio";
2125
2172
  "text-to-speech": "text-to-speech";
2126
2173
  "speech-to-text": "speech-to-text";
@@ -2250,6 +2297,7 @@ declare const studioWorkflowValidate: ToolDef<{
2250
2297
  "multiview-to-3d": "multiview-to-3d";
2251
2298
  remesh: "remesh";
2252
2299
  texture: "texture";
2300
+ rig: "rig";
2253
2301
  "text-to-audio": "text-to-audio";
2254
2302
  "text-to-speech": "text-to-speech";
2255
2303
  "speech-to-text": "speech-to-text";
@@ -2342,6 +2390,7 @@ declare const studioWorkflowValidate: ToolDef<{
2342
2390
  "multiview-to-3d": "multiview-to-3d";
2343
2391
  remesh: "remesh";
2344
2392
  texture: "texture";
2393
+ rig: "rig";
2345
2394
  "text-to-audio": "text-to-audio";
2346
2395
  "text-to-speech": "text-to-speech";
2347
2396
  "speech-to-text": "speech-to-text";
@@ -2791,7 +2840,7 @@ declare function buildCharacterSwapDefinition(input: CharacterSwapInput): Workfl
2791
2840
  * `studio-mcp --http [--port 3939]` Streamable HTTP transport on /mcp (remote / shared)
2792
2841
  *
2793
2842
  * Config: LUMITRA_STUDIO_BASE_URL (default https://studio.lumitra.co) and
2794
- * LUMITRA_STUDIO_API_KEY (or legacy LUMITRA_STUDIO_SERVICE_TOKEN). The token is
2843
+ * LUMITRA_STUDIO_API_KEY (the only key name read). The token is
2795
2844
  * never printed. All diagnostics go to stderr (stdout is the stdio transport).
2796
2845
  */
2797
2846