@godot-mcp/protocol 0.0.0 → 0.1.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.
Files changed (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -2
  3. package/dist/canonicalJson.d.ts +4 -0
  4. package/dist/canonicalJson.d.ts.map +1 -0
  5. package/dist/canonicalJson.js +68 -0
  6. package/dist/canonicalJson.js.map +1 -0
  7. package/dist/editor.d.ts +130 -0
  8. package/dist/editor.d.ts.map +1 -0
  9. package/dist/editor.js +179 -0
  10. package/dist/editor.js.map +1 -0
  11. package/dist/editorAuthoring.d.ts +246 -0
  12. package/dist/editorAuthoring.d.ts.map +1 -0
  13. package/dist/editorAuthoring.js +132 -0
  14. package/dist/editorAuthoring.js.map +1 -0
  15. package/dist/editorMutation.d.ts +1239 -0
  16. package/dist/editorMutation.d.ts.map +1 -0
  17. package/dist/editorMutation.js +178 -0
  18. package/dist/editorMutation.js.map +1 -0
  19. package/dist/index.d.ts +14 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +14 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/input.d.ts +1414 -0
  24. package/dist/input.d.ts.map +1 -0
  25. package/dist/input.js +237 -0
  26. package/dist/input.js.map +1 -0
  27. package/dist/projectOperations.d.ts +151 -0
  28. package/dist/projectOperations.d.ts.map +1 -0
  29. package/dist/projectOperations.js +138 -0
  30. package/dist/projectOperations.js.map +1 -0
  31. package/dist/runtime.d.ts +349 -0
  32. package/dist/runtime.d.ts.map +1 -0
  33. package/dist/runtime.js +164 -0
  34. package/dist/runtime.js.map +1 -0
  35. package/dist/runtimeDebug.d.ts +115 -0
  36. package/dist/runtimeDebug.d.ts.map +1 -0
  37. package/dist/runtimeDebug.js +123 -0
  38. package/dist/runtimeDebug.js.map +1 -0
  39. package/dist/runtimePerformance.d.ts +262 -0
  40. package/dist/runtimePerformance.d.ts.map +1 -0
  41. package/dist/runtimePerformance.js +165 -0
  42. package/dist/runtimePerformance.js.map +1 -0
  43. package/dist/runtimeShared.d.ts +19 -0
  44. package/dist/runtimeShared.d.ts.map +1 -0
  45. package/dist/runtimeShared.js +18 -0
  46. package/dist/runtimeShared.js.map +1 -0
  47. package/dist/schemas.d.ts +118 -0
  48. package/dist/schemas.d.ts.map +1 -0
  49. package/dist/schemas.js +95 -0
  50. package/dist/schemas.js.map +1 -0
  51. package/dist/unsafeFixture.d.ts +51 -0
  52. package/dist/unsafeFixture.d.ts.map +1 -0
  53. package/dist/unsafeFixture.js +25 -0
  54. package/dist/unsafeFixture.js.map +1 -0
  55. package/dist/version.d.ts +3 -0
  56. package/dist/version.d.ts.map +1 -0
  57. package/dist/version.js +4 -0
  58. package/dist/version.js.map +1 -0
  59. package/dist/visual.d.ts +812 -0
  60. package/dist/visual.d.ts.map +1 -0
  61. package/dist/visual.js +177 -0
  62. package/dist/visual.js.map +1 -0
  63. package/package.json +25 -6
  64. package/product.json +4 -0
  65. package/index.js +0 -1
@@ -0,0 +1,246 @@
1
+ import { z } from "zod";
2
+ export declare const ResourceLocatorSchema: z.ZodObject<{
3
+ resourcePath: z.ZodString;
4
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
5
+ }, z.core.$strict>;
6
+ export declare const ImportExpectationSchema: z.ZodObject<{
7
+ importer: z.ZodString;
8
+ options: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
9
+ }, z.core.$strict>;
10
+ export declare const ExtendedEditorVariantSchema: z.ZodType<unknown>;
11
+ export declare const AUTHORING_OPERATIONS: readonly ["set_resource_property", "set_resource_metadata", "remove_resource_metadata", "assign_resource_reference", "configure_control_layout", "set_theme_item", "remove_theme_item", "upsert_animation", "remove_animation", "upsert_animation_track", "remove_animation_track", "upsert_animation_key", "remove_animation_key", "configure_animation_tree", "set_tile_cells", "erase_tile_cells", "create_custom_resource", "create_script", "replace_script", "create_shader", "replace_shader"];
12
+ export declare const EditorAuthoringStepSchema: z.ZodUnion<readonly [z.ZodObject<{
13
+ property: z.ZodString;
14
+ value: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
15
+ target: z.ZodObject<{
16
+ resourcePath: z.ZodString;
17
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
18
+ }, z.core.$strict>;
19
+ importExpectation: z.ZodOptional<z.ZodObject<{
20
+ importer: z.ZodString;
21
+ options: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
22
+ }, z.core.$strict>>;
23
+ operation: z.ZodLiteral<"set_resource_property">;
24
+ }, z.core.$strict>, z.ZodObject<{
25
+ key: z.ZodString;
26
+ value: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
27
+ target: z.ZodObject<{
28
+ resourcePath: z.ZodString;
29
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
30
+ }, z.core.$strict>;
31
+ importExpectation: z.ZodOptional<z.ZodObject<{
32
+ importer: z.ZodString;
33
+ options: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
34
+ }, z.core.$strict>>;
35
+ operation: z.ZodLiteral<"set_resource_metadata">;
36
+ }, z.core.$strict>, z.ZodObject<{
37
+ key: z.ZodString;
38
+ target: z.ZodObject<{
39
+ resourcePath: z.ZodString;
40
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
41
+ }, z.core.$strict>;
42
+ importExpectation: z.ZodOptional<z.ZodObject<{
43
+ importer: z.ZodString;
44
+ options: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
45
+ }, z.core.$strict>>;
46
+ operation: z.ZodLiteral<"remove_resource_metadata">;
47
+ }, z.core.$strict>, z.ZodObject<{
48
+ property: z.ZodString;
49
+ referencePath: z.ZodString;
50
+ expectedType: z.ZodOptional<z.ZodString>;
51
+ target: z.ZodObject<{
52
+ resourcePath: z.ZodString;
53
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
54
+ }, z.core.$strict>;
55
+ importExpectation: z.ZodOptional<z.ZodObject<{
56
+ importer: z.ZodString;
57
+ options: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
58
+ }, z.core.$strict>>;
59
+ operation: z.ZodLiteral<"assign_resource_reference">;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ anchors: z.ZodOptional<z.ZodObject<{
62
+ left: z.ZodNumber;
63
+ top: z.ZodNumber;
64
+ right: z.ZodNumber;
65
+ bottom: z.ZodNumber;
66
+ }, z.core.$strict>>;
67
+ offsets: z.ZodOptional<z.ZodObject<{
68
+ left: z.ZodNumber;
69
+ top: z.ZodNumber;
70
+ right: z.ZodNumber;
71
+ bottom: z.ZodNumber;
72
+ }, z.core.$strict>>;
73
+ minimumSize: z.ZodOptional<z.ZodObject<{
74
+ x: z.ZodNumber;
75
+ y: z.ZodNumber;
76
+ }, z.core.$strict>>;
77
+ horizontalSizeFlags: z.ZodOptional<z.ZodNumber>;
78
+ verticalSizeFlags: z.ZodOptional<z.ZodNumber>;
79
+ scenePath: z.ZodString;
80
+ nodePath: z.ZodString;
81
+ operation: z.ZodLiteral<"configure_control_layout">;
82
+ }, z.core.$strict>, z.ZodObject<{
83
+ operation: z.ZodLiteral<"set_theme_item">;
84
+ target: z.ZodObject<{
85
+ resourcePath: z.ZodString;
86
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
87
+ }, z.core.$strict>;
88
+ itemKind: z.ZodEnum<{
89
+ color: "color";
90
+ constant: "constant";
91
+ font: "font";
92
+ font_size: "font_size";
93
+ icon: "icon";
94
+ stylebox: "stylebox";
95
+ }>;
96
+ themeType: z.ZodString;
97
+ itemName: z.ZodString;
98
+ value: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
99
+ }, z.core.$strict>, z.ZodObject<{
100
+ operation: z.ZodLiteral<"remove_theme_item">;
101
+ target: z.ZodObject<{
102
+ resourcePath: z.ZodString;
103
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
104
+ }, z.core.$strict>;
105
+ itemKind: z.ZodEnum<{
106
+ color: "color";
107
+ constant: "constant";
108
+ font: "font";
109
+ font_size: "font_size";
110
+ icon: "icon";
111
+ stylebox: "stylebox";
112
+ }>;
113
+ themeType: z.ZodString;
114
+ itemName: z.ZodString;
115
+ }, z.core.$strict>, z.ZodObject<{
116
+ operation: z.ZodLiteral<"upsert_animation">;
117
+ target: z.ZodObject<{
118
+ resourcePath: z.ZodString;
119
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
120
+ }, z.core.$strict>;
121
+ animationName: z.ZodString;
122
+ length: z.ZodNumber;
123
+ loopMode: z.ZodEnum<{
124
+ none: "none";
125
+ linear: "linear";
126
+ pingpong: "pingpong";
127
+ }>;
128
+ }, z.core.$strict>, z.ZodObject<{
129
+ operation: z.ZodLiteral<"remove_animation">;
130
+ target: z.ZodObject<{
131
+ resourcePath: z.ZodString;
132
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
133
+ }, z.core.$strict>;
134
+ animationName: z.ZodString;
135
+ }, z.core.$strict>, z.ZodObject<{
136
+ operation: z.ZodLiteral<"upsert_animation_track">;
137
+ target: z.ZodObject<{
138
+ resourcePath: z.ZodString;
139
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
140
+ }, z.core.$strict>;
141
+ trackId: z.ZodString;
142
+ trackType: z.ZodEnum<{
143
+ value: "value";
144
+ method: "method";
145
+ audio: "audio";
146
+ position_3d: "position_3d";
147
+ rotation_3d: "rotation_3d";
148
+ scale_3d: "scale_3d";
149
+ blend_shape: "blend_shape";
150
+ bezier: "bezier";
151
+ animation: "animation";
152
+ }>;
153
+ trackPath: z.ZodString;
154
+ }, z.core.$strict>, z.ZodObject<{
155
+ operation: z.ZodLiteral<"remove_animation_track">;
156
+ target: z.ZodObject<{
157
+ resourcePath: z.ZodString;
158
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
159
+ }, z.core.$strict>;
160
+ trackId: z.ZodString;
161
+ }, z.core.$strict>, z.ZodObject<{
162
+ operation: z.ZodLiteral<"upsert_animation_key">;
163
+ target: z.ZodObject<{
164
+ resourcePath: z.ZodString;
165
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
166
+ }, z.core.$strict>;
167
+ trackId: z.ZodString;
168
+ keyTime: z.ZodNumber;
169
+ value: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
170
+ transition: z.ZodOptional<z.ZodNumber>;
171
+ }, z.core.$strict>, z.ZodObject<{
172
+ operation: z.ZodLiteral<"remove_animation_key">;
173
+ target: z.ZodObject<{
174
+ resourcePath: z.ZodString;
175
+ propertyPath: z.ZodDefault<z.ZodArray<z.ZodString>>;
176
+ }, z.core.$strict>;
177
+ trackId: z.ZodString;
178
+ keyTime: z.ZodNumber;
179
+ }, z.core.$strict>, z.ZodObject<{
180
+ treeRoot: z.ZodOptional<z.ZodObject<{
181
+ type: z.ZodLiteral<"resource_ref">;
182
+ path: z.ZodString;
183
+ expectedType: z.ZodOptional<z.ZodString>;
184
+ }, z.core.$strict>>;
185
+ active: z.ZodOptional<z.ZodBoolean>;
186
+ processCallback: z.ZodOptional<z.ZodEnum<{
187
+ manual: "manual";
188
+ physics: "physics";
189
+ idle: "idle";
190
+ }>>;
191
+ rootMotionTrack: z.ZodOptional<z.ZodString>;
192
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
193
+ scenePath: z.ZodString;
194
+ nodePath: z.ZodString;
195
+ operation: z.ZodLiteral<"configure_animation_tree">;
196
+ }, z.core.$strict>, z.ZodObject<{
197
+ cells: z.ZodArray<z.ZodObject<{
198
+ coordinates: z.ZodObject<{
199
+ x: z.ZodNumber;
200
+ y: z.ZodNumber;
201
+ }, z.core.$strict>;
202
+ sourceId: z.ZodNumber;
203
+ atlasCoordinates: z.ZodObject<{
204
+ x: z.ZodNumber;
205
+ y: z.ZodNumber;
206
+ }, z.core.$strict>;
207
+ alternativeTile: z.ZodNumber;
208
+ }, z.core.$strict>>;
209
+ scenePath: z.ZodString;
210
+ nodePath: z.ZodString;
211
+ operation: z.ZodLiteral<"set_tile_cells">;
212
+ }, z.core.$strict>, z.ZodObject<{
213
+ coordinates: z.ZodArray<z.ZodObject<{
214
+ x: z.ZodNumber;
215
+ y: z.ZodNumber;
216
+ }, z.core.$strict>>;
217
+ scenePath: z.ZodString;
218
+ nodePath: z.ZodString;
219
+ operation: z.ZodLiteral<"erase_tile_cells">;
220
+ }, z.core.$strict>, z.ZodObject<{
221
+ operation: z.ZodLiteral<"create_custom_resource">;
222
+ resourcePath: z.ZodString;
223
+ className: z.ZodString;
224
+ properties: z.ZodRecord<z.ZodString, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
225
+ }, z.core.$strict>, z.ZodObject<{
226
+ operation: z.ZodLiteral<"create_script">;
227
+ sourcePath: z.ZodString;
228
+ content: z.ZodString;
229
+ }, z.core.$strict>, z.ZodObject<{
230
+ operation: z.ZodLiteral<"replace_script">;
231
+ sourcePath: z.ZodString;
232
+ expectedSha256: z.ZodString;
233
+ content: z.ZodString;
234
+ }, z.core.$strict>, z.ZodObject<{
235
+ operation: z.ZodLiteral<"create_shader">;
236
+ sourcePath: z.ZodString;
237
+ content: z.ZodString;
238
+ }, z.core.$strict>, z.ZodObject<{
239
+ operation: z.ZodLiteral<"replace_shader">;
240
+ sourcePath: z.ZodString;
241
+ expectedSha256: z.ZodString;
242
+ content: z.ZodString;
243
+ }, z.core.$strict>]>;
244
+ export type EditorAuthoringStep = z.infer<typeof EditorAuthoringStepSchema>;
245
+ export type ExtendedEditorVariant = z.infer<typeof ExtendedEditorVariantSchema>;
246
+ //# sourceMappingURL=editorAuthoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorAuthoring.d.ts","sourceRoot":"","sources":["../src/editorAuthoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuCxB,eAAO,MAAM,qBAAqB;;;kBAGvB,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;kBAIzB,CAAC;AAiCZ,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAaxD,CAAC;AA8CJ,eAAO,MAAM,oBAAoB,ueAOvB,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,132 @@
1
+ import { z } from "zod";
2
+ const MAX_SOURCE_BYTES = 192 * 1024;
3
+ const Sha256Schema = z.string().regex(/^[a-f0-9]{64}$/);
4
+ const IdentifierSchema = z.string().min(1).max(128).regex(/^[A-Za-z_][A-Za-z0-9_]*$/);
5
+ const PropertyNameSchema = z.string().min(1).max(256).refine((value) => !value.includes(":") && !value.includes("\0"));
6
+ const MetadataKeySchema = z.string().min(1).max(128).refine((value) => !value.includes("\0"));
7
+ function isCanonicalResPath(value) {
8
+ if (!value.startsWith("res://") || value.includes("\0") || value.endsWith("/"))
9
+ return false;
10
+ const components = value.slice("res://".length).split("/");
11
+ return components.length > 0 && components.every((component) => component.length > 0 && component !== "." && component !== "..");
12
+ }
13
+ function isProtectedPath(value) {
14
+ const components = value.slice("res://".length).split("/");
15
+ const first = components[0]?.toLowerCase();
16
+ return first === "addons" || first === ".godot" || first === ".git" || components.some((component) => component.startsWith("."));
17
+ }
18
+ const ResPathSchema = z.string().min(7).max(512).refine(isCanonicalResPath, { message: "Path must be canonical and project-local" });
19
+ const ScenePathSchema = ResPathSchema.refine((value) => value.endsWith(".tscn") || value.endsWith(".scn"), { message: "Scene path must name a Godot scene" });
20
+ const ResourcePathSchema = ResPathSchema.refine((value) => !isProtectedPath(value) && !value.endsWith(".gd") && !value.endsWith(".gdshader"), { message: "Resource path must name an authorable project resource" });
21
+ const SourcePathSchema = ResPathSchema.refine((value) => !isProtectedPath(value), { message: "Source path is protected" });
22
+ const NodePathSchema = z.string().min(1).max(512).refine((value) => !value.startsWith("/") && !value.includes(":") && !value.includes("\0") && !value.split("/").includes(".."), { message: "Node path must be a relative descendant without subnames" });
23
+ const FiniteSchema = z.number().finite();
24
+ const Vector2Schema = z.object({ x: FiniteSchema, y: FiniteSchema }).strict();
25
+ const Vector3Schema = z.object({ x: FiniteSchema, y: FiniteSchema, z: FiniteSchema }).strict();
26
+ const Vector4Schema = z.object({ x: FiniteSchema, y: FiniteSchema, z: FiniteSchema, w: FiniteSchema }).strict();
27
+ const RectSchema = z.object({ left: FiniteSchema, top: FiniteSchema, right: FiniteSchema, bottom: FiniteSchema }).strict();
28
+ const ScalarImportValueSchema = z.union([z.boolean(), z.number().finite(), z.string().max(1_024)]);
29
+ export const ResourceLocatorSchema = z.object({
30
+ resourcePath: ResourcePathSchema,
31
+ propertyPath: z.array(IdentifierSchema).max(8).default([]),
32
+ }).strict();
33
+ export const ImportExpectationSchema = z.object({
34
+ importer: IdentifierSchema,
35
+ options: z.record(z.string().min(1).max(256), ScalarImportValueSchema)
36
+ .refine((value) => Object.keys(value).length <= 64, { message: "Import expectation exceeds 64 options" }),
37
+ }).strict();
38
+ const NumericTagSchemas = [
39
+ z.object({ type: z.literal("vector2"), x: FiniteSchema, y: FiniteSchema }).strict(),
40
+ z.object({ type: z.literal("vector2i"), x: z.number().int(), y: z.number().int() }).strict(),
41
+ z.object({ type: z.literal("vector3"), x: FiniteSchema, y: FiniteSchema, z: FiniteSchema }).strict(),
42
+ z.object({ type: z.literal("vector3i"), x: z.number().int(), y: z.number().int(), z: z.number().int() }).strict(),
43
+ z.object({ type: z.literal("vector4"), x: FiniteSchema, y: FiniteSchema, z: FiniteSchema, w: FiniteSchema }).strict(),
44
+ z.object({ type: z.literal("vector4i"), x: z.number().int(), y: z.number().int(), z: z.number().int(), w: z.number().int() }).strict(),
45
+ z.object({ type: z.literal("rect2"), x: FiniteSchema, y: FiniteSchema, width: FiniteSchema, height: FiniteSchema }).strict(),
46
+ z.object({ type: z.literal("rect2i"), x: z.number().int(), y: z.number().int(), width: z.number().int(), height: z.number().int() }).strict(),
47
+ z.object({ type: z.literal("color"), r: FiniteSchema, g: FiniteSchema, b: FiniteSchema, a: FiniteSchema }).strict(),
48
+ z.object({ type: z.literal("quaternion"), x: FiniteSchema, y: FiniteSchema, z: FiniteSchema, w: FiniteSchema }).strict(),
49
+ z.object({ type: z.literal("plane"), x: FiniteSchema, y: FiniteSchema, z: FiniteSchema, d: FiniteSchema }).strict(),
50
+ z.object({ type: z.literal("aabb"), position: z.tuple([FiniteSchema, FiniteSchema, FiniteSchema]), size: z.tuple([FiniteSchema, FiniteSchema, FiniteSchema]) }).strict(),
51
+ z.object({ type: z.literal("transform2d"), x: Vector2Schema, y: Vector2Schema, origin: Vector2Schema }).strict(),
52
+ z.object({ type: z.literal("basis"), x: Vector3Schema, y: Vector3Schema, z: Vector3Schema }).strict(),
53
+ z.object({ type: z.literal("transform3d"), basis: z.object({ x: Vector3Schema, y: Vector3Schema, z: Vector3Schema }).strict(), origin: Vector3Schema }).strict(),
54
+ z.object({ type: z.literal("projection"), x: Vector4Schema, y: Vector4Schema, z: Vector4Schema, w: Vector4Schema }).strict(),
55
+ ];
56
+ const PackedTagSchema = z.discriminatedUnion("type", [
57
+ z.object({ type: z.literal("packed_byte_array"), values: z.array(z.number().int().min(0).max(255)).max(4_096) }).strict(),
58
+ z.object({ type: z.literal("packed_int32_array"), values: z.array(z.number().int().min(-2_147_483_648).max(2_147_483_647)).max(4_096) }).strict(),
59
+ z.object({ type: z.literal("packed_int64_array"), values: z.array(z.number().int().safe()).max(4_096) }).strict(),
60
+ z.object({ type: z.literal("packed_float32_array"), values: z.array(FiniteSchema).max(4_096) }).strict(),
61
+ z.object({ type: z.literal("packed_float64_array"), values: z.array(FiniteSchema).max(4_096) }).strict(),
62
+ z.object({ type: z.literal("packed_string_array"), values: z.array(z.string().max(16_384)).max(4_096) }).strict(),
63
+ z.object({ type: z.literal("packed_vector2_array"), values: z.array(Vector2Schema).max(4_096) }).strict(),
64
+ z.object({ type: z.literal("packed_vector3_array"), values: z.array(Vector3Schema).max(4_096) }).strict(),
65
+ z.object({ type: z.literal("packed_color_array"), values: z.array(z.object({ r: FiniteSchema, g: FiniteSchema, b: FiniteSchema, a: FiniteSchema }).strict()).max(4_096) }).strict(),
66
+ ]);
67
+ export const ExtendedEditorVariantSchema = z.lazy(() => z.union([
68
+ z.null(),
69
+ z.boolean(),
70
+ z.number().finite(),
71
+ z.string().max(16_384),
72
+ ...NumericTagSchemas,
73
+ PackedTagSchema,
74
+ z.object({ type: z.literal("node_path"), value: NodePathSchema }).strict(),
75
+ z.object({ type: z.literal("string_name"), value: z.string().max(16_384) }).strict(),
76
+ z.object({ type: z.literal("resource_ref"), path: ResourcePathSchema, expectedType: IdentifierSchema.optional() }).strict(),
77
+ z.array(ExtendedEditorVariantSchema).max(256),
78
+ z.record(z.string().min(1).max(128), ExtendedEditorVariantSchema)
79
+ .refine((value) => Object.keys(value).length <= 256 && !("type" in value), { message: "Variant dictionary exceeds 256 entries or uses a reserved type key" }),
80
+ ]));
81
+ const ResourceBase = {
82
+ target: ResourceLocatorSchema,
83
+ importExpectation: ImportExpectationSchema.optional(),
84
+ };
85
+ const ResourceSchemas = [
86
+ z.object({ operation: z.literal("set_resource_property"), ...ResourceBase, property: PropertyNameSchema, value: ExtendedEditorVariantSchema }).strict(),
87
+ z.object({ operation: z.literal("set_resource_metadata"), ...ResourceBase, key: MetadataKeySchema, value: ExtendedEditorVariantSchema }).strict(),
88
+ z.object({ operation: z.literal("remove_resource_metadata"), ...ResourceBase, key: MetadataKeySchema }).strict(),
89
+ z.object({ operation: z.literal("assign_resource_reference"), ...ResourceBase, property: PropertyNameSchema, referencePath: ResourcePathSchema, expectedType: IdentifierSchema.optional() }).strict(),
90
+ ];
91
+ const SceneTarget = { scenePath: ScenePathSchema, nodePath: NodePathSchema };
92
+ const ThemeKindSchema = z.enum(["color", "constant", "font", "font_size", "icon", "stylebox"]);
93
+ const AnimationTrackTypeSchema = z.enum(["value", "position_3d", "rotation_3d", "scale_3d", "blend_shape", "method", "bezier", "audio", "animation"]);
94
+ const TypedSchemas = [
95
+ z.object({ operation: z.literal("configure_control_layout"), ...SceneTarget, anchors: RectSchema.optional(), offsets: RectSchema.optional(), minimumSize: Vector2Schema.optional(), horizontalSizeFlags: z.number().int().min(0).max(255).optional(), verticalSizeFlags: z.number().int().min(0).max(255).optional() }).strict()
96
+ .refine((value) => value.anchors !== undefined || value.offsets !== undefined || value.minimumSize !== undefined || value.horizontalSizeFlags !== undefined || value.verticalSizeFlags !== undefined, { message: "Control layout must change at least one field" }),
97
+ z.object({ operation: z.literal("set_theme_item"), target: ResourceLocatorSchema, itemKind: ThemeKindSchema, themeType: IdentifierSchema, itemName: IdentifierSchema, value: ExtendedEditorVariantSchema }).strict(),
98
+ z.object({ operation: z.literal("remove_theme_item"), target: ResourceLocatorSchema, itemKind: ThemeKindSchema, themeType: IdentifierSchema, itemName: IdentifierSchema }).strict(),
99
+ z.object({ operation: z.literal("upsert_animation"), target: ResourceLocatorSchema, animationName: IdentifierSchema, length: FiniteSchema.nonnegative(), loopMode: z.enum(["none", "linear", "pingpong"]) }).strict(),
100
+ z.object({ operation: z.literal("remove_animation"), target: ResourceLocatorSchema, animationName: IdentifierSchema }).strict(),
101
+ z.object({ operation: z.literal("upsert_animation_track"), target: ResourceLocatorSchema, trackId: IdentifierSchema, trackType: AnimationTrackTypeSchema, trackPath: z.string().min(1).max(512) }).strict(),
102
+ z.object({ operation: z.literal("remove_animation_track"), target: ResourceLocatorSchema, trackId: IdentifierSchema }).strict(),
103
+ z.object({ operation: z.literal("upsert_animation_key"), target: ResourceLocatorSchema, trackId: IdentifierSchema, keyTime: FiniteSchema.nonnegative(), value: ExtendedEditorVariantSchema, transition: FiniteSchema.optional() }).strict(),
104
+ z.object({ operation: z.literal("remove_animation_key"), target: ResourceLocatorSchema, trackId: IdentifierSchema, keyTime: FiniteSchema.nonnegative() }).strict(),
105
+ z.object({ operation: z.literal("configure_animation_tree"), ...SceneTarget, treeRoot: z.object({ type: z.literal("resource_ref"), path: ResourcePathSchema, expectedType: IdentifierSchema.optional() }).strict().optional(), active: z.boolean().optional(), processCallback: z.enum(["physics", "idle", "manual"]).optional(), rootMotionTrack: z.string().max(512).optional(), parameters: z.record(z.string().min(1).max(512), ExtendedEditorVariantSchema).refine((value) => Object.keys(value).length <= 64).optional() }).strict(),
106
+ z.object({ operation: z.literal("set_tile_cells"), ...SceneTarget, cells: z.array(z.object({ coordinates: Vector2Schema, sourceId: z.number().int(), atlasCoordinates: Vector2Schema, alternativeTile: z.number().int().min(0) }).strict()).min(1).max(4_096) }).strict(),
107
+ z.object({ operation: z.literal("erase_tile_cells"), ...SceneTarget, coordinates: z.array(Vector2Schema).min(1).max(4_096) }).strict(),
108
+ z.object({ operation: z.literal("create_custom_resource"), resourcePath: ResPathSchema.refine((value) => value.endsWith(".tres")), className: IdentifierSchema, properties: z.record(IdentifierSchema, ExtendedEditorVariantSchema).refine((value) => Object.keys(value).length <= 256) }).strict(),
109
+ ];
110
+ function sourceContentSchema() {
111
+ return z.string().refine((value) => !value.includes("\0") && new TextEncoder().encode(value).byteLength <= MAX_SOURCE_BYTES, { message: "Source must be NUL-free and no larger than 192 KiB" });
112
+ }
113
+ const SourceSchemas = [
114
+ z.object({ operation: z.literal("create_script"), sourcePath: SourcePathSchema.refine((value) => value.endsWith(".gd")), content: sourceContentSchema() }).strict(),
115
+ z.object({ operation: z.literal("replace_script"), sourcePath: SourcePathSchema.refine((value) => value.endsWith(".gd")), expectedSha256: Sha256Schema, content: sourceContentSchema() }).strict(),
116
+ z.object({ operation: z.literal("create_shader"), sourcePath: SourcePathSchema.refine((value) => value.endsWith(".gdshader")), content: sourceContentSchema() }).strict(),
117
+ z.object({ operation: z.literal("replace_shader"), sourcePath: SourcePathSchema.refine((value) => value.endsWith(".gdshader")), expectedSha256: Sha256Schema, content: sourceContentSchema() }).strict(),
118
+ ];
119
+ export const AUTHORING_OPERATIONS = [
120
+ "set_resource_property", "set_resource_metadata", "remove_resource_metadata", "assign_resource_reference",
121
+ "configure_control_layout", "set_theme_item", "remove_theme_item",
122
+ "upsert_animation", "remove_animation", "upsert_animation_track", "remove_animation_track",
123
+ "upsert_animation_key", "remove_animation_key", "configure_animation_tree",
124
+ "set_tile_cells", "erase_tile_cells", "create_custom_resource",
125
+ "create_script", "replace_script", "create_shader", "replace_shader",
126
+ ];
127
+ export const EditorAuthoringStepSchema = z.union([
128
+ ...ResourceSchemas,
129
+ ...TypedSchemas,
130
+ ...SourceSchemas,
131
+ ]);
132
+ //# sourceMappingURL=editorAuthoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorAuthoring.js","sourceRoot":"","sources":["../src/editorAuthoring.ts"],"names":[],"mappings":"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"}