@sync.so/mcp-server 0.1.3 → 0.2.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/README.md +261 -86
- package/deploy/generation-status/app.html.gz +0 -0
- package/deploy/generation-status/release.json +6 -0
- package/dist/abort-signals.d.ts +6 -0
- package/dist/abort-signals.d.ts.map +1 -0
- package/dist/abort-signals.js +23 -0
- package/dist/account-features.d.ts +7 -0
- package/dist/account-features.d.ts.map +1 -0
- package/dist/account-features.js +48 -0
- package/dist/app-upload-relay.d.ts +13 -0
- package/dist/app-upload-relay.d.ts.map +1 -0
- package/dist/app-upload-relay.js +136 -0
- package/dist/asset-thumbnail.d.ts +3 -0
- package/dist/asset-thumbnail.d.ts.map +1 -0
- package/dist/asset-thumbnail.js +2 -0
- package/dist/auth/async-context.d.ts +5 -0
- package/dist/auth/async-context.d.ts.map +1 -0
- package/dist/auth/async-context.js +14 -0
- package/dist/auth/bearer-auth.d.ts +16 -0
- package/dist/auth/bearer-auth.d.ts.map +1 -0
- package/dist/auth/bearer-auth.js +55 -0
- package/dist/auth/client-credentials.d.ts +13 -0
- package/dist/auth/client-credentials.d.ts.map +1 -0
- package/dist/auth/client-credentials.js +67 -0
- package/dist/auth/device-auth.d.ts.map +1 -1
- package/dist/auth/device-auth.js +3 -2
- package/dist/auth/fixture-cleanup.d.ts +4 -0
- package/dist/auth/fixture-cleanup.d.ts.map +1 -0
- package/dist/auth/fixture-cleanup.js +9 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -0
- package/dist/auth/oauth-diagnostics.d.ts +11 -0
- package/dist/auth/oauth-diagnostics.d.ts.map +1 -0
- package/dist/auth/oauth-diagnostics.js +78 -0
- package/dist/auth/oauth-provider.d.ts +16 -0
- package/dist/auth/oauth-provider.d.ts.map +1 -0
- package/dist/auth/oauth-provider.js +107 -0
- package/dist/auth/resource-metadata.d.ts +2 -0
- package/dist/auth/resource-metadata.d.ts.map +1 -0
- package/dist/auth/resource-metadata.js +3 -0
- package/dist/auth/token-verification.d.ts +11 -0
- package/dist/auth/token-verification.d.ts.map +1 -0
- package/dist/auth/token-verification.js +99 -0
- package/dist/auth/verification-cache.d.ts +8 -0
- package/dist/auth/verification-cache.d.ts.map +1 -0
- package/dist/auth/verification-cache.js +111 -0
- package/dist/chatgpt-analytics.d.ts +22 -0
- package/dist/chatgpt-analytics.d.ts.map +1 -0
- package/dist/chatgpt-analytics.js +172 -0
- package/dist/chatgpt-app.d.ts +15 -0
- package/dist/chatgpt-app.d.ts.map +1 -0
- package/dist/chatgpt-app.js +133 -0
- package/dist/chatgpt-release.d.ts +12 -0
- package/dist/chatgpt-release.d.ts.map +1 -0
- package/dist/chatgpt-release.js +30 -0
- package/dist/cli.js +30 -16
- package/dist/client-profile.d.ts +10 -0
- package/dist/client-profile.d.ts.map +1 -0
- package/dist/client-profile.js +45 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +52 -0
- package/dist/generation-status-html.d.ts +2 -0
- package/dist/generation-status-html.d.ts.map +1 -0
- package/dist/generation-status-html.js +26 -0
- package/dist/generation-status.d.ts +6 -0
- package/dist/generation-status.d.ts.map +1 -0
- package/dist/generation-status.js +37 -0
- package/dist/http-client.d.ts +45 -1
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +171 -34
- package/dist/http-server.d.ts +53 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +753 -0
- package/dist/http-session.d.ts +18 -0
- package/dist/http-session.d.ts.map +1 -0
- package/dist/http-session.js +189 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/oauth-response.d.ts +3 -0
- package/dist/oauth-response.d.ts.map +1 -0
- package/dist/oauth-response.js +30 -0
- package/dist/openapi/index.d.ts +2 -2
- package/dist/openapi/index.d.ts.map +1 -1
- package/dist/openapi/index.js +1 -1
- package/dist/openapi/parser.d.ts +2 -0
- package/dist/openapi/parser.d.ts.map +1 -1
- package/dist/openapi/parser.js +41 -1
- package/dist/openapi/types.d.ts +3 -0
- package/dist/openapi/types.d.ts.map +1 -1
- package/dist/organization-selection.d.ts +61 -0
- package/dist/organization-selection.d.ts.map +1 -0
- package/dist/organization-selection.js +142 -0
- package/dist/rate-limits.d.ts +13 -0
- package/dist/rate-limits.d.ts.map +1 -0
- package/dist/rate-limits.js +67 -0
- package/dist/revision.d.ts +6 -0
- package/dist/revision.d.ts.map +1 -0
- package/dist/revision.js +17 -0
- package/dist/runtime-diagnostics.d.ts +32 -0
- package/dist/runtime-diagnostics.d.ts.map +1 -0
- package/dist/runtime-diagnostics.js +58 -0
- package/dist/server.d.ts +23 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +893 -32
- package/dist/session-registry.d.ts +54 -0
- package/dist/session-registry.d.ts.map +1 -0
- package/dist/session-registry.js +202 -0
- package/dist/session-telemetry.d.ts +13 -0
- package/dist/session-telemetry.d.ts.map +1 -0
- package/dist/session-telemetry.js +87 -0
- package/dist/spend-confirmation.d.ts +21 -0
- package/dist/spend-confirmation.d.ts.map +1 -0
- package/dist/spend-confirmation.js +105 -0
- package/dist/tool-analytics-context.d.ts +11 -0
- package/dist/tool-analytics-context.d.ts.map +1 -0
- package/dist/tool-analytics-context.js +8 -0
- package/dist/tool-names.d.ts +35 -0
- package/dist/tool-names.d.ts.map +1 -0
- package/dist/tool-names.js +133 -0
- package/dist/tools/account-context.d.ts +5 -0
- package/dist/tools/account-context.d.ts.map +1 -0
- package/dist/tools/account-context.js +131 -0
- package/dist/tools/account-management.d.ts +4 -0
- package/dist/tools/account-management.d.ts.map +1 -0
- package/dist/tools/account-management.js +111 -0
- package/dist/tools/app-tools.d.ts +31 -0
- package/dist/tools/app-tools.d.ts.map +1 -0
- package/dist/tools/app-tools.js +350 -0
- package/dist/tools/asset-analysis.d.ts +4 -0
- package/dist/tools/asset-analysis.d.ts.map +1 -0
- package/dist/tools/asset-analysis.js +172 -0
- package/dist/tools/asset-creators.d.ts +4 -0
- package/dist/tools/asset-creators.d.ts.map +1 -0
- package/dist/tools/asset-creators.js +38 -0
- package/dist/tools/audio-trim.d.ts +6 -0
- package/dist/tools/audio-trim.d.ts.map +1 -0
- package/dist/tools/audio-trim.js +79 -0
- package/dist/tools/batch-results.d.ts +16 -0
- package/dist/tools/batch-results.d.ts.map +1 -0
- package/dist/tools/batch-results.js +103 -0
- package/dist/tools/batches.d.ts +28 -0
- package/dist/tools/batches.d.ts.map +1 -0
- package/dist/tools/batches.js +293 -0
- package/dist/tools/dialogue.d.ts +6 -0
- package/dist/tools/dialogue.d.ts.map +1 -0
- package/dist/tools/dialogue.js +309 -0
- package/dist/tools/estimate-duration.d.ts +35 -0
- package/dist/tools/estimate-duration.d.ts.map +1 -0
- package/dist/tools/estimate-duration.js +66 -0
- package/dist/tools/feedback.d.ts +14 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +72 -0
- package/dist/tools/generated-adapters.d.ts +25 -0
- package/dist/tools/generated-adapters.d.ts.map +1 -0
- package/dist/tools/generated-adapters.js +143 -0
- package/dist/tools/generation-context.d.ts +14 -0
- package/dist/tools/generation-context.d.ts.map +1 -0
- package/dist/tools/generation-context.js +39 -0
- package/dist/tools/generation-continuation.d.ts +4 -0
- package/dist/tools/generation-continuation.d.ts.map +1 -0
- package/dist/tools/generation-continuation.js +124 -0
- package/dist/tools/generation-costs.d.ts +6 -0
- package/dist/tools/generation-costs.d.ts.map +1 -0
- package/dist/tools/generation-costs.js +67 -0
- package/dist/tools/generation-output.d.ts +3 -0
- package/dist/tools/generation-output.d.ts.map +1 -0
- package/dist/tools/generation-output.js +39 -0
- package/dist/tools/generator.d.ts +35 -2
- package/dist/tools/generator.d.ts.map +1 -1
- package/dist/tools/generator.js +127 -9
- package/dist/tools/job-status.d.ts +35 -0
- package/dist/tools/job-status.d.ts.map +1 -0
- package/dist/tools/job-status.js +92 -0
- package/dist/tools/job-wait.d.ts +41 -0
- package/dist/tools/job-wait.d.ts.map +1 -0
- package/dist/tools/job-wait.js +84 -0
- package/dist/tools/jobs.d.ts +3 -0
- package/dist/tools/jobs.d.ts.map +1 -0
- package/dist/tools/jobs.js +210 -0
- package/dist/tools/media-upload.d.ts +27 -0
- package/dist/tools/media-upload.d.ts.map +1 -0
- package/dist/tools/media-upload.js +247 -0
- package/dist/tools/model-options.d.ts +36 -0
- package/dist/tools/model-options.d.ts.map +1 -0
- package/dist/tools/model-options.js +48 -0
- package/dist/tools/organization-choice.d.ts +9 -0
- package/dist/tools/organization-choice.d.ts.map +1 -0
- package/dist/tools/organization-choice.js +136 -0
- package/dist/tools/organizations.d.ts +56 -0
- package/dist/tools/organizations.d.ts.map +1 -0
- package/dist/tools/organizations.js +235 -0
- package/dist/tools/output-schemas.d.ts +54 -0
- package/dist/tools/output-schemas.d.ts.map +1 -0
- package/dist/tools/output-schemas.js +58 -0
- package/dist/tools/overrides.d.ts +3 -0
- package/dist/tools/overrides.d.ts.map +1 -1
- package/dist/tools/overrides.js +113 -15
- package/dist/tools/playback-metadata.d.ts +4 -0
- package/dist/tools/playback-metadata.d.ts.map +1 -0
- package/dist/tools/playback-metadata.js +51 -0
- package/dist/tools/project-destination.d.ts +13 -0
- package/dist/tools/project-destination.d.ts.map +1 -0
- package/dist/tools/project-destination.js +45 -0
- package/dist/tools/project-history.d.ts +6 -0
- package/dist/tools/project-history.d.ts.map +1 -0
- package/dist/tools/project-history.js +45 -0
- package/dist/tools/project-intent.d.ts +8 -0
- package/dist/tools/project-intent.d.ts.map +1 -0
- package/dist/tools/project-intent.js +87 -0
- package/dist/tools/running-submissions.d.ts +7 -0
- package/dist/tools/running-submissions.d.ts.map +1 -0
- package/dist/tools/running-submissions.js +91 -0
- package/dist/tools/speech.d.ts +6 -0
- package/dist/tools/speech.d.ts.map +1 -0
- package/dist/tools/speech.js +116 -0
- package/dist/tools/studio-draft.d.ts +7 -0
- package/dist/tools/studio-draft.d.ts.map +1 -0
- package/dist/tools/studio-draft.js +195 -0
- package/dist/tools/studio-view-contract.d.ts +184 -0
- package/dist/tools/studio-view-contract.d.ts.map +1 -0
- package/dist/tools/studio-view-contract.js +67 -0
- package/dist/tools/studio-view.d.ts +6 -0
- package/dist/tools/studio-view.d.ts.map +1 -0
- package/dist/tools/studio-view.js +126 -0
- package/dist/tools/timeline-lipsync.d.ts +316 -0
- package/dist/tools/timeline-lipsync.d.ts.map +1 -0
- package/dist/tools/timeline-lipsync.js +304 -0
- package/dist/tools/translation-preview.d.ts +8 -0
- package/dist/tools/translation-preview.d.ts.map +1 -0
- package/dist/tools/translation-preview.js +146 -0
- package/dist/tools/translation.d.ts +6 -0
- package/dist/tools/translation.d.ts.map +1 -0
- package/dist/tools/translation.js +131 -0
- package/dist/tools/upload-widget.d.ts +13 -0
- package/dist/tools/upload-widget.d.ts.map +1 -0
- package/dist/tools/upload-widget.js +788 -0
- package/dist/toolsets.d.ts +18 -0
- package/dist/toolsets.d.ts.map +1 -0
- package/dist/toolsets.js +157 -0
- package/dist/update-check.d.ts +38 -0
- package/dist/update-check.d.ts.map +1 -0
- package/dist/update-check.js +150 -0
- package/dist/upload-runtime.d.ts +45 -0
- package/dist/upload-runtime.d.ts.map +1 -0
- package/dist/upload-runtime.js +156 -0
- package/dist/upload-source.d.ts +4 -0
- package/dist/upload-source.d.ts.map +1 -0
- package/dist/upload-source.js +46 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/package.json +79 -33
- package/dist/openapi/parser.test.d.ts +0 -2
- package/dist/openapi/parser.test.d.ts.map +0 -1
- package/dist/openapi/parser.test.js +0 -188
- package/dist/tools/generator.test.d.ts +0 -2
- package/dist/tools/generator.test.d.ts.map +0 -1
- package/dist/tools/generator.test.js +0 -178
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const StudioViewContextSchema: z.ZodObject<{
|
|
3
|
+
projectId: z.ZodNullable<z.ZodUUID>;
|
|
4
|
+
draftId: z.ZodNullable<z.ZodUUID>;
|
|
5
|
+
draftRevision: z.ZodNullable<z.ZodNumber>;
|
|
6
|
+
editToken: z.ZodOptional<z.ZodString>;
|
|
7
|
+
busy: z.ZodBoolean;
|
|
8
|
+
}, z.core.$strict>;
|
|
9
|
+
export declare const StudioViewCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
10
|
+
type: z.ZodLiteral<"open-project">;
|
|
11
|
+
projectId: z.ZodUUID;
|
|
12
|
+
workflow: z.ZodOptional<z.ZodEnum<{
|
|
13
|
+
edit_dialogue: "edit_dialogue";
|
|
14
|
+
image_to_video: "image_to_video";
|
|
15
|
+
lipsync: "lipsync";
|
|
16
|
+
translate_and_dub: "translate_and_dub";
|
|
17
|
+
}>>;
|
|
18
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
19
|
+
type: z.ZodLiteral<"refresh-project">;
|
|
20
|
+
projectId: z.ZodUUID;
|
|
21
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
22
|
+
type: z.ZodLiteral<"refresh-assets">;
|
|
23
|
+
projectId: z.ZodUUID;
|
|
24
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
25
|
+
type: z.ZodLiteral<"open-generation">;
|
|
26
|
+
projectId: z.ZodUUID;
|
|
27
|
+
generationId: z.ZodUUID;
|
|
28
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
29
|
+
type: z.ZodLiteral<"continue-generation">;
|
|
30
|
+
projectId: z.ZodUUID;
|
|
31
|
+
generationId: z.ZodUUID;
|
|
32
|
+
workflow: z.ZodEnum<{
|
|
33
|
+
edit_dialogue: "edit_dialogue";
|
|
34
|
+
image_to_video: "image_to_video";
|
|
35
|
+
lipsync: "lipsync";
|
|
36
|
+
translate_and_dub: "translate_and_dub";
|
|
37
|
+
}>;
|
|
38
|
+
seedSource: z.ZodEnum<{
|
|
39
|
+
output: "output";
|
|
40
|
+
"source-input": "source-input";
|
|
41
|
+
}>;
|
|
42
|
+
}, z.core.$strict>], "type">;
|
|
43
|
+
export declare const StudioViewSchema: z.ZodObject<{
|
|
44
|
+
id: z.ZodUUID;
|
|
45
|
+
revision: z.ZodNumber;
|
|
46
|
+
context: z.ZodObject<{
|
|
47
|
+
projectId: z.ZodNullable<z.ZodUUID>;
|
|
48
|
+
draftId: z.ZodNullable<z.ZodUUID>;
|
|
49
|
+
draftRevision: z.ZodNullable<z.ZodNumber>;
|
|
50
|
+
editToken: z.ZodOptional<z.ZodString>;
|
|
51
|
+
busy: z.ZodBoolean;
|
|
52
|
+
}, z.core.$strict>;
|
|
53
|
+
updatedAt: z.ZodNumber;
|
|
54
|
+
action: z.ZodNullable<z.ZodObject<{
|
|
55
|
+
id: z.ZodUUID;
|
|
56
|
+
requestRevision: z.ZodNumber;
|
|
57
|
+
expectedContext: z.ZodObject<{
|
|
58
|
+
projectId: z.ZodNullable<z.ZodUUID>;
|
|
59
|
+
draftId: z.ZodNullable<z.ZodUUID>;
|
|
60
|
+
draftRevision: z.ZodNullable<z.ZodNumber>;
|
|
61
|
+
editToken: z.ZodOptional<z.ZodString>;
|
|
62
|
+
busy: z.ZodBoolean;
|
|
63
|
+
}, z.core.$strict>;
|
|
64
|
+
command: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
65
|
+
type: z.ZodLiteral<"open-project">;
|
|
66
|
+
projectId: z.ZodUUID;
|
|
67
|
+
workflow: z.ZodOptional<z.ZodEnum<{
|
|
68
|
+
edit_dialogue: "edit_dialogue";
|
|
69
|
+
image_to_video: "image_to_video";
|
|
70
|
+
lipsync: "lipsync";
|
|
71
|
+
translate_and_dub: "translate_and_dub";
|
|
72
|
+
}>>;
|
|
73
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
74
|
+
type: z.ZodLiteral<"refresh-project">;
|
|
75
|
+
projectId: z.ZodUUID;
|
|
76
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
77
|
+
type: z.ZodLiteral<"refresh-assets">;
|
|
78
|
+
projectId: z.ZodUUID;
|
|
79
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
80
|
+
type: z.ZodLiteral<"open-generation">;
|
|
81
|
+
projectId: z.ZodUUID;
|
|
82
|
+
generationId: z.ZodUUID;
|
|
83
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
84
|
+
type: z.ZodLiteral<"continue-generation">;
|
|
85
|
+
projectId: z.ZodUUID;
|
|
86
|
+
generationId: z.ZodUUID;
|
|
87
|
+
workflow: z.ZodEnum<{
|
|
88
|
+
edit_dialogue: "edit_dialogue";
|
|
89
|
+
image_to_video: "image_to_video";
|
|
90
|
+
lipsync: "lipsync";
|
|
91
|
+
translate_and_dub: "translate_and_dub";
|
|
92
|
+
}>;
|
|
93
|
+
seedSource: z.ZodEnum<{
|
|
94
|
+
output: "output";
|
|
95
|
+
"source-input": "source-input";
|
|
96
|
+
}>;
|
|
97
|
+
}, z.core.$strict>], "type">;
|
|
98
|
+
expiresAt: z.ZodNumber;
|
|
99
|
+
status: z.ZodEnum<{
|
|
100
|
+
applied: "applied";
|
|
101
|
+
blocked: "blocked";
|
|
102
|
+
failed: "failed";
|
|
103
|
+
pending: "pending";
|
|
104
|
+
}>;
|
|
105
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
106
|
+
busy: "busy";
|
|
107
|
+
expired: "expired";
|
|
108
|
+
stale: "stale";
|
|
109
|
+
unavailable: "unavailable";
|
|
110
|
+
}>>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
}, z.core.$strip>;
|
|
113
|
+
export declare const RegisterStudioViewSchema: z.ZodObject<{
|
|
114
|
+
mountId: z.ZodUUID;
|
|
115
|
+
claim: z.ZodDefault<z.ZodBoolean>;
|
|
116
|
+
context: z.ZodObject<{
|
|
117
|
+
projectId: z.ZodNullable<z.ZodUUID>;
|
|
118
|
+
draftId: z.ZodNullable<z.ZodUUID>;
|
|
119
|
+
draftRevision: z.ZodNullable<z.ZodNumber>;
|
|
120
|
+
editToken: z.ZodOptional<z.ZodString>;
|
|
121
|
+
busy: z.ZodBoolean;
|
|
122
|
+
}, z.core.$strict>;
|
|
123
|
+
}, z.core.$strict>;
|
|
124
|
+
export declare const RequestStudioViewActionSchema: z.ZodObject<{
|
|
125
|
+
id: z.ZodUUID;
|
|
126
|
+
expectedRevision: z.ZodNumber;
|
|
127
|
+
command: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
128
|
+
type: z.ZodLiteral<"open-project">;
|
|
129
|
+
projectId: z.ZodUUID;
|
|
130
|
+
workflow: z.ZodOptional<z.ZodEnum<{
|
|
131
|
+
edit_dialogue: "edit_dialogue";
|
|
132
|
+
image_to_video: "image_to_video";
|
|
133
|
+
lipsync: "lipsync";
|
|
134
|
+
translate_and_dub: "translate_and_dub";
|
|
135
|
+
}>>;
|
|
136
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
137
|
+
type: z.ZodLiteral<"refresh-project">;
|
|
138
|
+
projectId: z.ZodUUID;
|
|
139
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
140
|
+
type: z.ZodLiteral<"refresh-assets">;
|
|
141
|
+
projectId: z.ZodUUID;
|
|
142
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
143
|
+
type: z.ZodLiteral<"open-generation">;
|
|
144
|
+
projectId: z.ZodUUID;
|
|
145
|
+
generationId: z.ZodUUID;
|
|
146
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
147
|
+
type: z.ZodLiteral<"continue-generation">;
|
|
148
|
+
projectId: z.ZodUUID;
|
|
149
|
+
generationId: z.ZodUUID;
|
|
150
|
+
workflow: z.ZodEnum<{
|
|
151
|
+
edit_dialogue: "edit_dialogue";
|
|
152
|
+
image_to_video: "image_to_video";
|
|
153
|
+
lipsync: "lipsync";
|
|
154
|
+
translate_and_dub: "translate_and_dub";
|
|
155
|
+
}>;
|
|
156
|
+
seedSource: z.ZodEnum<{
|
|
157
|
+
output: "output";
|
|
158
|
+
"source-input": "source-input";
|
|
159
|
+
}>;
|
|
160
|
+
}, z.core.$strict>], "type">;
|
|
161
|
+
}, z.core.$strict>;
|
|
162
|
+
export declare const AcknowledgeStudioViewSchema: z.ZodObject<{
|
|
163
|
+
mountId: z.ZodUUID;
|
|
164
|
+
id: z.ZodUUID;
|
|
165
|
+
status: z.ZodEnum<{
|
|
166
|
+
applied: "applied";
|
|
167
|
+
blocked: "blocked";
|
|
168
|
+
failed: "failed";
|
|
169
|
+
}>;
|
|
170
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
171
|
+
busy: "busy";
|
|
172
|
+
expired: "expired";
|
|
173
|
+
stale: "stale";
|
|
174
|
+
unavailable: "unavailable";
|
|
175
|
+
}>>;
|
|
176
|
+
context: z.ZodOptional<z.ZodObject<{
|
|
177
|
+
projectId: z.ZodNullable<z.ZodUUID>;
|
|
178
|
+
draftId: z.ZodNullable<z.ZodUUID>;
|
|
179
|
+
draftRevision: z.ZodNullable<z.ZodNumber>;
|
|
180
|
+
editToken: z.ZodOptional<z.ZodString>;
|
|
181
|
+
busy: z.ZodBoolean;
|
|
182
|
+
}, z.core.$strict>>;
|
|
183
|
+
}, z.core.$strict>;
|
|
184
|
+
//# sourceMappingURL=studio-view-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-view-contract.d.ts","sourceRoot":"","sources":["../../src/tools/studio-view-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;kBASlC,CAAC;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAoBlC,CAAC;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgB3B,CAAC;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;kBAInC,CAAC;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAIxC,CAAC;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;kBAMtC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
const workflow = z.enum(['lipsync', 'image_to_video', 'translate_and_dub', 'edit_dialogue']);
|
|
3
|
+
export const StudioViewContextSchema = z.strictObject({
|
|
4
|
+
projectId: z.uuid().nullable(),
|
|
5
|
+
draftId: z.uuid().nullable(),
|
|
6
|
+
draftRevision: z.number().int().nonnegative().nullable(),
|
|
7
|
+
editToken: z
|
|
8
|
+
.string()
|
|
9
|
+
.regex(/^[a-f0-9]{64}$/)
|
|
10
|
+
.optional(),
|
|
11
|
+
busy: z.boolean(),
|
|
12
|
+
});
|
|
13
|
+
export const StudioViewCommandSchema = z.discriminatedUnion('type', [
|
|
14
|
+
z.strictObject({
|
|
15
|
+
type: z.literal('open-project'),
|
|
16
|
+
projectId: z.uuid(),
|
|
17
|
+
workflow: workflow.optional(),
|
|
18
|
+
}),
|
|
19
|
+
z.strictObject({ type: z.literal('refresh-project'), projectId: z.uuid() }),
|
|
20
|
+
z.strictObject({ type: z.literal('refresh-assets'), projectId: z.uuid() }),
|
|
21
|
+
z.strictObject({
|
|
22
|
+
type: z.literal('open-generation'),
|
|
23
|
+
projectId: z.uuid(),
|
|
24
|
+
generationId: z.uuid(),
|
|
25
|
+
}),
|
|
26
|
+
z.strictObject({
|
|
27
|
+
type: z.literal('continue-generation'),
|
|
28
|
+
projectId: z.uuid(),
|
|
29
|
+
generationId: z.uuid(),
|
|
30
|
+
workflow,
|
|
31
|
+
seedSource: z.enum(['source-input', 'output']),
|
|
32
|
+
}),
|
|
33
|
+
]);
|
|
34
|
+
export const StudioViewSchema = z.object({
|
|
35
|
+
id: z.uuid(),
|
|
36
|
+
revision: z.number().int().positive(),
|
|
37
|
+
context: StudioViewContextSchema,
|
|
38
|
+
updatedAt: z.number(),
|
|
39
|
+
action: z
|
|
40
|
+
.object({
|
|
41
|
+
id: z.uuid(),
|
|
42
|
+
requestRevision: z.number().int().positive(),
|
|
43
|
+
expectedContext: StudioViewContextSchema,
|
|
44
|
+
command: StudioViewCommandSchema,
|
|
45
|
+
expiresAt: z.number(),
|
|
46
|
+
status: z.enum(['pending', 'applied', 'blocked', 'failed']),
|
|
47
|
+
reason: z.enum(['busy', 'stale', 'expired', 'unavailable']).optional(),
|
|
48
|
+
})
|
|
49
|
+
.nullable(),
|
|
50
|
+
});
|
|
51
|
+
export const RegisterStudioViewSchema = z.strictObject({
|
|
52
|
+
mountId: z.uuid(),
|
|
53
|
+
claim: z.boolean().default(false),
|
|
54
|
+
context: StudioViewContextSchema,
|
|
55
|
+
});
|
|
56
|
+
export const RequestStudioViewActionSchema = z.strictObject({
|
|
57
|
+
id: z.uuid(),
|
|
58
|
+
expectedRevision: z.number().int().positive(),
|
|
59
|
+
command: StudioViewCommandSchema,
|
|
60
|
+
});
|
|
61
|
+
export const AcknowledgeStudioViewSchema = z.strictObject({
|
|
62
|
+
mountId: z.uuid(),
|
|
63
|
+
id: z.uuid(),
|
|
64
|
+
status: z.enum(['applied', 'blocked', 'failed']),
|
|
65
|
+
reason: z.enum(['busy', 'stale', 'expired', 'unavailable']).optional(),
|
|
66
|
+
context: StudioViewContextSchema.optional(),
|
|
67
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HttpClient } from '../http-client.js';
|
|
2
|
+
import type { ParsedOperation } from '../openapi/types.js';
|
|
3
|
+
import type { McpToolDefinition } from './generator.js';
|
|
4
|
+
export declare function supportsStudioViews(operations: ParsedOperation[]): boolean;
|
|
5
|
+
export declare function createStudioViewTools(operations: ParsedOperation[], http: HttpClient): McpToolDefinition[];
|
|
6
|
+
//# sourceMappingURL=studio-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-view.d.ts","sourceRoot":"","sources":["../../src/tools/studio-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASxD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,EAAE,WAWhE;AACD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,eAAe,EAAE,EAC7B,IAAI,EAAE,UAAU,GACf,iBAAiB,EAAE,CAsIrB"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AcknowledgeStudioViewSchema, RegisterStudioViewSchema, RequestStudioViewActionSchema, StudioViewCommandSchema, StudioViewSchema, } from './studio-view-contract.js';
|
|
3
|
+
export function supportsStudioViews(operations) {
|
|
4
|
+
return [
|
|
5
|
+
['StudioViewsController_get', 'get'],
|
|
6
|
+
['StudioViewsController_register', 'put'],
|
|
7
|
+
['StudioViewsController_request', 'post'],
|
|
8
|
+
['StudioViewsController_acknowledge', 'post'],
|
|
9
|
+
].every(([id, method]) => operations.some((op) => op.operationId === id && op.method === method && op.studioViewVersion === 1));
|
|
10
|
+
}
|
|
11
|
+
export function createStudioViewTools(operations, http) {
|
|
12
|
+
if (!supportsStudioViews(operations))
|
|
13
|
+
return [];
|
|
14
|
+
const viewId = z.uuid();
|
|
15
|
+
const instructions = ' First studio-views_get for the exact published viewId, use its expectedRevision and a fresh UUID id; retry an uncertain handoff with the SAME id/body. Do not replace unresolved actions, guess a widget, or overwrite stale edits. On "Studio context is stale", studio-views_get again and retry once with its expectedRevision and a fresh id. On STUDIO_VIEW_NOT_OPEN, Studio is not open in this chat: tell the user to open Studio, then studio-views_get again; do not keep retrying. This never repeats backend creation or paid work. Check the action receipt through studio-views_get: only applied confirms UI display; pending/blocked/failed do not. Draft selection/settings edits use studio-drafts_get and studio-drafts_update.';
|
|
16
|
+
const actions = {
|
|
17
|
+
'open-project': {
|
|
18
|
+
name: 'studio-views_open-project',
|
|
19
|
+
title: 'Open a project in Studio',
|
|
20
|
+
description: 'Open an existing project in the mounted Studio, optionally selecting its workflow. Can replace the active editor state, archiving the prior draft. Does not create a project or generate media.',
|
|
21
|
+
},
|
|
22
|
+
'refresh-project': {
|
|
23
|
+
name: 'studio-views_refresh-project',
|
|
24
|
+
title: 'Refresh Studio project details',
|
|
25
|
+
description: 'Refresh an existing project in the mounted Studio after its backend details change, such as a rename. Does not rename or create the project.',
|
|
26
|
+
},
|
|
27
|
+
'refresh-assets': {
|
|
28
|
+
name: 'studio-views_refresh-assets',
|
|
29
|
+
title: 'Refresh Studio media',
|
|
30
|
+
description: 'Refresh an existing project’s media in the mounted Studio after an upload or asset registration succeeds. Does not upload, register, delete or select media.',
|
|
31
|
+
},
|
|
32
|
+
'open-generation': {
|
|
33
|
+
name: 'studio-views_show-generation',
|
|
34
|
+
title: 'Show an existing Studio generation',
|
|
35
|
+
description: 'Display an already accepted generation or its result in the mounted Studio, opening its project if needed. Replaces the active editor state and archives the prior draft. Does not submit or retry generation.',
|
|
36
|
+
},
|
|
37
|
+
'continue-generation': {
|
|
38
|
+
name: 'studio-views_continue-generation',
|
|
39
|
+
title: 'Continue an existing Studio generation',
|
|
40
|
+
description: 'For an explicit user request, stage an existing generation’s source input or output as a new editable draft in the selected workflow. Replaces the active draft and archives its prior state; output continuation may register existing output as Sync media. Does not generate or synthesize media.',
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
const actionTools = StudioViewCommandSchema.options.map((command) => {
|
|
44
|
+
const { type: discriminator, ...fields } = command.shape;
|
|
45
|
+
const type = discriminator.value;
|
|
46
|
+
const schema = RequestStudioViewActionSchema.omit({ command: true }).extend(fields);
|
|
47
|
+
return {
|
|
48
|
+
...actions[type],
|
|
49
|
+
description: actions[type].description + instructions,
|
|
50
|
+
schema,
|
|
51
|
+
bodySchema: schema.transform(({ id, expectedRevision, ...commandFields }) => ({
|
|
52
|
+
id,
|
|
53
|
+
expectedRevision,
|
|
54
|
+
command: command.parse({ ...commandFields, type }),
|
|
55
|
+
})),
|
|
56
|
+
suffix: '/actions',
|
|
57
|
+
method: 'post',
|
|
58
|
+
appOnly: false,
|
|
59
|
+
destructive: type !== 'refresh-project' && type !== 'refresh-assets',
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
const tools = [
|
|
63
|
+
[
|
|
64
|
+
'studio-views_get',
|
|
65
|
+
'Read mounted Studio view',
|
|
66
|
+
z.object({}),
|
|
67
|
+
'',
|
|
68
|
+
'get',
|
|
69
|
+
false,
|
|
70
|
+
'Read the exact viewId published by the mounted Studio, including its current revision and last action receipt. No view list or inferred latest widget. pending means not displayed; blocked needs the UI action/recovery completed; failed was not confirmed; applied confirms that action was displayed. An unavailable view must be reopened.',
|
|
71
|
+
],
|
|
72
|
+
[
|
|
73
|
+
'studio-views_register',
|
|
74
|
+
'Register mounted Studio view',
|
|
75
|
+
RegisterStudioViewSchema,
|
|
76
|
+
'',
|
|
77
|
+
'put',
|
|
78
|
+
true,
|
|
79
|
+
'Studio-only view ownership/context registration. No provider work.',
|
|
80
|
+
],
|
|
81
|
+
[
|
|
82
|
+
'studio-views_ack',
|
|
83
|
+
'Acknowledge displayed Studio action',
|
|
84
|
+
AcknowledgeStudioViewSchema,
|
|
85
|
+
'/acknowledgement',
|
|
86
|
+
'post',
|
|
87
|
+
true,
|
|
88
|
+
'Studio-only application receipt. No provider work.',
|
|
89
|
+
],
|
|
90
|
+
];
|
|
91
|
+
return [
|
|
92
|
+
...tools.map(([name, title, schema, suffix, method, appOnly, description]) => ({
|
|
93
|
+
name,
|
|
94
|
+
title,
|
|
95
|
+
schema,
|
|
96
|
+
bodySchema: schema,
|
|
97
|
+
suffix,
|
|
98
|
+
method,
|
|
99
|
+
appOnly,
|
|
100
|
+
description,
|
|
101
|
+
destructive: false,
|
|
102
|
+
})),
|
|
103
|
+
...actionTools,
|
|
104
|
+
].map(({ name, title, schema, bodySchema, suffix, method, appOnly, description, destructive, }) => ({
|
|
105
|
+
name,
|
|
106
|
+
title,
|
|
107
|
+
description,
|
|
108
|
+
inputSchema: { viewId, ...schema.shape },
|
|
109
|
+
outputSchema: StudioViewSchema.shape,
|
|
110
|
+
annotations: {
|
|
111
|
+
readOnlyHint: method === 'get',
|
|
112
|
+
destructiveHint: destructive,
|
|
113
|
+
idempotentHint: true,
|
|
114
|
+
openWorldHint: false,
|
|
115
|
+
},
|
|
116
|
+
...(appOnly ? { meta: { ui: { visibility: ['app'] } } } : {}),
|
|
117
|
+
handler: async (args, context) => {
|
|
118
|
+
const { viewId: rawId, ...body } = args;
|
|
119
|
+
const id = viewId.parse(rawId);
|
|
120
|
+
return StudioViewSchema.refine((view) => view.id === id).parse(await http.request(method, `/v2/studio-views/${id}${suffix}`, {
|
|
121
|
+
body: method === 'get' ? undefined : bodySchema.parse(body),
|
|
122
|
+
signal: context?.signal,
|
|
123
|
+
}));
|
|
124
|
+
},
|
|
125
|
+
}));
|
|
126
|
+
}
|