unreal-engine-mcp-server 0.6.0-beta-d → 0.6.0-beta-e
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/CHANGELOG.md +38 -0
- package/README.md +1 -1
- package/dist/gateway/gateway-manifest.generated.json +139 -7
- package/dist/proxy/native-proxy.js +6 -5
- package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.d.ts +2 -2
- package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.js +2 -2
- package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.json +672 -4
- package/dist/tools/catalog/capabilities/generated/capability-cost-index.generated.d.ts +1 -1
- package/dist/tools/catalog/capabilities/generated/capability-cost-index.generated.js +4 -1
- package/dist/tools/catalog/capabilities/generated/parent-tool-definitions.generated.js +203 -7
- package/dist/tools/catalog/capabilities/records/aggregate.d.ts +1 -1
- package/dist/tools/catalog/capabilities/records/aggregate.js +1 -1
- package/dist/tools/catalog/capabilities/records/folds/manage-blueprint.folds.js +1 -1
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-1.data.js +86 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -13,6 +13,44 @@ _Nothing yet._
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## 🏷️ [0.6.0-beta-e] - 2026-10-09
|
|
17
|
+
|
|
18
|
+
> [!NOTE]
|
|
19
|
+
> **Beta.** Published as a semver prerelease (`0.6.0-beta-e`) under the npm `beta` dist-tag, so `npm install` keeps serving the newest stable release, **`0.5.30`**. This section is everything on `dev` since the `v0.6.0-beta-d` tag, written from the code diff.
|
|
20
|
+
|
|
21
|
+
<details>
|
|
22
|
+
<summary><b>✨ Added</b></summary>
|
|
23
|
+
|
|
24
|
+
- **Control Rig graphs**: `animation_physics` `edit_control_rig` adds, wires, sets and removes rig units and adds or removes bones, nulls and controls (or imports a skeleton's bones), one edit or a batch, then compiles; `get_control_rig` reads the graph and hierarchy; `list_rig_units` finds units by name or category.
|
|
25
|
+
|
|
26
|
+
</details>
|
|
27
|
+
|
|
28
|
+
<details>
|
|
29
|
+
<summary><b>🛡️ Security</b></summary>
|
|
30
|
+
|
|
31
|
+
- **The proxy's tool-list cache moved out of the shared temp dir** to the user's cache folder (`%LOCALAPPDATA%`, `$XDG_CACHE_HOME` or `~/.cache`, under `unreal-mcp`), written owner-only, so another account cannot plant the tool list and instructions it serves.
|
|
32
|
+
- **`package-plugin.mjs` refuses an argument holding `"`, `%`, `!` or a line break** before it reaches `cmd.exe`, and runs it with delayed expansion off.
|
|
33
|
+
- **source-map-js 1.2.2** (development only) clears GHSA-68fv-2mgg-jv7q.
|
|
34
|
+
|
|
35
|
+
</details>
|
|
36
|
+
|
|
37
|
+
<details>
|
|
38
|
+
<summary><b>📊 Change Statistics</b></summary>
|
|
39
|
+
|
|
40
|
+
| Metric | Count |
|
|
41
|
+
|--------|-------|
|
|
42
|
+
| Diff range | `v0.6.0-beta-d..v0.6.0-beta-e` |
|
|
43
|
+
| Commits | 4, the version bump and this release entry included |
|
|
44
|
+
| Files changed | 36 (27 hand-written, not counting generated files or line-ending-only changes) |
|
|
45
|
+
| Insertions / deletions | 1,868 / 95 (hand-written: 800 / 33) |
|
|
46
|
+
| Capability records | 405 |
|
|
47
|
+
| Callable `{tool, action}` pairs | 1,518 |
|
|
48
|
+
| C++ domain directories | 55 |
|
|
49
|
+
|
|
50
|
+
</details>
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
16
54
|
## 🏷️ [0.6.0-beta-d] - 2026-10-09
|
|
17
55
|
|
|
18
56
|
> [!NOTE]
|
package/README.md
CHANGED
|
@@ -134,7 +134,7 @@ Build the plugin once on a machine with the engine and a compiler, then hand out
|
|
|
134
134
|
node scripts/package-plugin.mjs "C:/Program Files/Epic Games/UE_5.7"
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
This writes `build/McpAutomationBridge-v<version>-UE5.7-<Platform>.zip`, where `<version>` is the `package.json` version (currently `0.6.0-beta-
|
|
137
|
+
This writes `build/McpAutomationBridge-v<version>-UE5.7-<Platform>.zip`, where `<version>` is the `package.json` version (currently `0.6.0-beta-e`). Unzip it into `YourProject/Plugins/`. Binaries only work with the engine minor and platform they were built for: a 5.6 build won't load in 5.5, 5.7 or 5.8.
|
|
138
138
|
|
|
139
139
|
</details>
|
|
140
140
|
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
"edit_anim_graph",
|
|
13
13
|
"edit_animation",
|
|
14
14
|
"create_control_rig",
|
|
15
|
+
"edit_control_rig",
|
|
16
|
+
"get_control_rig",
|
|
17
|
+
"list_rig_units",
|
|
15
18
|
"setup_ik",
|
|
16
19
|
"edit_montage",
|
|
17
20
|
"play_montage",
|
|
@@ -82,6 +85,7 @@
|
|
|
82
85
|
"conditionVariable",
|
|
83
86
|
"connectToOutput",
|
|
84
87
|
"constraintName",
|
|
88
|
+
"controlType",
|
|
85
89
|
"createConstraints",
|
|
86
90
|
"createIfMissing",
|
|
87
91
|
"crossfadeDuration",
|
|
@@ -99,9 +103,11 @@
|
|
|
99
103
|
"forceRootLock",
|
|
100
104
|
"frame",
|
|
101
105
|
"frameRate",
|
|
106
|
+
"from",
|
|
102
107
|
"fromSection",
|
|
103
108
|
"fromState",
|
|
104
109
|
"geomType",
|
|
110
|
+
"global",
|
|
105
111
|
"gridDivisions",
|
|
106
112
|
"groupName",
|
|
107
113
|
"height",
|
|
@@ -114,6 +120,7 @@
|
|
|
114
120
|
"kind",
|
|
115
121
|
"layerSetup",
|
|
116
122
|
"length",
|
|
123
|
+
"limit",
|
|
117
124
|
"limits",
|
|
118
125
|
"linearDamping",
|
|
119
126
|
"location",
|
|
@@ -132,6 +139,7 @@
|
|
|
132
139
|
"morphTargets",
|
|
133
140
|
"name",
|
|
134
141
|
"newBoneName",
|
|
142
|
+
"node",
|
|
135
143
|
"nodeId",
|
|
136
144
|
"nodeName",
|
|
137
145
|
"notifyClass",
|
|
@@ -139,19 +147,23 @@
|
|
|
139
147
|
"numFrames",
|
|
140
148
|
"outputPath",
|
|
141
149
|
"overwrite",
|
|
150
|
+
"parent",
|
|
142
151
|
"parentBoneName",
|
|
143
152
|
"parentClass",
|
|
144
153
|
"path",
|
|
145
154
|
"physicsAssetName",
|
|
146
155
|
"physicsAssetPath",
|
|
156
|
+
"pin",
|
|
147
157
|
"pitch",
|
|
148
158
|
"playRate",
|
|
149
159
|
"poseNames",
|
|
160
|
+
"position",
|
|
150
161
|
"positionX",
|
|
151
162
|
"positionY",
|
|
152
163
|
"priorityOrder",
|
|
153
164
|
"profileName",
|
|
154
165
|
"propertyName",
|
|
166
|
+
"query",
|
|
155
167
|
"radius",
|
|
156
168
|
"ragdoll",
|
|
157
169
|
"rebuildBlendParameters",
|
|
@@ -189,6 +201,7 @@
|
|
|
189
201
|
"stateName",
|
|
190
202
|
"states",
|
|
191
203
|
"staticMeshPath",
|
|
204
|
+
"steps",
|
|
192
205
|
"suffix",
|
|
193
206
|
"targetBoneName",
|
|
194
207
|
"targetChain",
|
|
@@ -199,12 +212,14 @@
|
|
|
199
212
|
"targetWeightInterpolationSpeed",
|
|
200
213
|
"threshold",
|
|
201
214
|
"time",
|
|
215
|
+
"to",
|
|
202
216
|
"toSection",
|
|
203
217
|
"toState",
|
|
204
218
|
"trackIndex",
|
|
205
219
|
"transitions",
|
|
206
220
|
"transmission",
|
|
207
221
|
"treeName",
|
|
222
|
+
"unit",
|
|
208
223
|
"value",
|
|
209
224
|
"vehicleType",
|
|
210
225
|
"verticalAxisName",
|
|
@@ -455,6 +470,17 @@
|
|
|
455
470
|
"type": "string",
|
|
456
471
|
"description": "Name of the created physics constraint."
|
|
457
472
|
},
|
|
473
|
+
"controlType": {
|
|
474
|
+
"type": "string",
|
|
475
|
+
"enum": [
|
|
476
|
+
"transform",
|
|
477
|
+
"float",
|
|
478
|
+
"bool",
|
|
479
|
+
"position",
|
|
480
|
+
"rotator"
|
|
481
|
+
],
|
|
482
|
+
"description": "add_control: the value the control drives (default transform)."
|
|
483
|
+
},
|
|
458
484
|
"createConstraints": {
|
|
459
485
|
"type": "boolean",
|
|
460
486
|
"description": "Create joint constraints between bodies."
|
|
@@ -537,6 +563,15 @@
|
|
|
537
563
|
"set_axis_settings",
|
|
538
564
|
"set_interpolation_settings",
|
|
539
565
|
"rebuild",
|
|
566
|
+
"add_unit",
|
|
567
|
+
"connect",
|
|
568
|
+
"disconnect",
|
|
569
|
+
"set_pin",
|
|
570
|
+
"remove_node",
|
|
571
|
+
"import_bones",
|
|
572
|
+
"add_null",
|
|
573
|
+
"add_control",
|
|
574
|
+
"remove_element",
|
|
540
575
|
"auto",
|
|
541
576
|
"set",
|
|
542
577
|
"copy",
|
|
@@ -553,7 +588,7 @@
|
|
|
553
588
|
"set_deltas",
|
|
554
589
|
"import"
|
|
555
590
|
],
|
|
556
|
-
"description": "
|
|
591
|
+
"description": "The edit to make (each step of steps names its own)."
|
|
557
592
|
},
|
|
558
593
|
"element": {
|
|
559
594
|
"type": "string",
|
|
@@ -600,6 +635,10 @@
|
|
|
600
635
|
"type": "number",
|
|
601
636
|
"description": "Frames per second (default 30)."
|
|
602
637
|
},
|
|
638
|
+
"from": {
|
|
639
|
+
"type": "string",
|
|
640
|
+
"description": "connect, disconnect: the output pin, Node.Pin as get_control_rig lists it; execution runs from the event's execute pin to each unit's (ExecutePin in UE 5.8)."
|
|
641
|
+
},
|
|
603
642
|
"fromSection": {
|
|
604
643
|
"type": "string",
|
|
605
644
|
"description": "Source montage section."
|
|
@@ -612,6 +651,10 @@
|
|
|
612
651
|
"type": "string",
|
|
613
652
|
"description": "Body primitive: Sphyl, Box, Sphere, TaperedCapsule, MultiConvexHull or SingleConvexHull."
|
|
614
653
|
},
|
|
654
|
+
"global": {
|
|
655
|
+
"type": "boolean",
|
|
656
|
+
"description": "add_bone, add_null: location, rotation and scale are in rig space, not relative to the parent."
|
|
657
|
+
},
|
|
615
658
|
"gridDivisions": {
|
|
616
659
|
"type": "number",
|
|
617
660
|
"description": "Number of grid divisions on the axis."
|
|
@@ -699,6 +742,10 @@
|
|
|
699
742
|
"type": "number",
|
|
700
743
|
"description": "Capsule length between the end caps (default 20)."
|
|
701
744
|
},
|
|
745
|
+
"limit": {
|
|
746
|
+
"type": "number",
|
|
747
|
+
"description": "Most units to list (default 50, up to 500); matched counts them all."
|
|
748
|
+
},
|
|
702
749
|
"limits": {
|
|
703
750
|
"type": "object",
|
|
704
751
|
"additionalProperties": false,
|
|
@@ -735,12 +782,26 @@
|
|
|
735
782
|
"description": "Linear damping value."
|
|
736
783
|
},
|
|
737
784
|
"location": {
|
|
738
|
-
"
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
785
|
+
"oneOf": [
|
|
786
|
+
{
|
|
787
|
+
"type": "array",
|
|
788
|
+
"items": {
|
|
789
|
+
"type": "number"
|
|
790
|
+
},
|
|
791
|
+
"minItems": 3,
|
|
792
|
+
"maxItems": 3,
|
|
793
|
+
"description": "World or relative location as [x, y, z]."
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
"type": "array",
|
|
797
|
+
"items": {
|
|
798
|
+
"type": "number"
|
|
799
|
+
},
|
|
800
|
+
"minItems": 3,
|
|
801
|
+
"maxItems": 3,
|
|
802
|
+
"description": "add_bone, add_null, add_control: location [x, y, z] in cm (a control's offset), relative to the parent unless global."
|
|
803
|
+
}
|
|
804
|
+
],
|
|
744
805
|
"description": "World or relative location as [x, y, z]."
|
|
745
806
|
},
|
|
746
807
|
"lodIndex": {
|
|
@@ -806,6 +867,10 @@
|
|
|
806
867
|
"type": "string",
|
|
807
868
|
"description": "Replacement bone name."
|
|
808
869
|
},
|
|
870
|
+
"node": {
|
|
871
|
+
"type": "string",
|
|
872
|
+
"description": "One node's name: only that node, with every struct member pin by its full path."
|
|
873
|
+
},
|
|
809
874
|
"nodeId": {
|
|
810
875
|
"type": "string",
|
|
811
876
|
"description": "The node GUID; an alternative to nodeName."
|
|
@@ -834,6 +899,10 @@
|
|
|
834
899
|
"type": "boolean",
|
|
835
900
|
"description": "Overwrite an existing asset with the same name."
|
|
836
901
|
},
|
|
902
|
+
"parent": {
|
|
903
|
+
"type": "string",
|
|
904
|
+
"description": "add_bone, add_null, add_control: the parent element's name (a bone, null or control); omitted, the top of the hierarchy."
|
|
905
|
+
},
|
|
837
906
|
"parentBoneName": {
|
|
838
907
|
"type": "string",
|
|
839
908
|
"description": "Parent bone name."
|
|
@@ -854,6 +923,10 @@
|
|
|
854
923
|
"type": "string",
|
|
855
924
|
"description": "Canonical /Game PhysicsAsset path."
|
|
856
925
|
},
|
|
926
|
+
"pin": {
|
|
927
|
+
"type": "string",
|
|
928
|
+
"description": "set_pin: the pin, Node.Pin; a struct member has its own pin (SetTransform.Item.Name, SetTransform.Transform.Translation.X)."
|
|
929
|
+
},
|
|
857
930
|
"pitch": {
|
|
858
931
|
"type": "number",
|
|
859
932
|
"description": "Aim offset pitch in degrees."
|
|
@@ -869,6 +942,15 @@
|
|
|
869
942
|
},
|
|
870
943
|
"description": "Distinct names for the poses in frame order; frames without a name keep the engine default name."
|
|
871
944
|
},
|
|
945
|
+
"position": {
|
|
946
|
+
"type": "array",
|
|
947
|
+
"items": {
|
|
948
|
+
"type": "number"
|
|
949
|
+
},
|
|
950
|
+
"minItems": 2,
|
|
951
|
+
"maxItems": 2,
|
|
952
|
+
"description": "add_unit: graph position [x, y] (default right of the last node)."
|
|
953
|
+
},
|
|
872
954
|
"positionX": {
|
|
873
955
|
"type": "number",
|
|
874
956
|
"description": "Graph X position of the new node (default 0)."
|
|
@@ -889,6 +971,10 @@
|
|
|
889
971
|
"type": "string",
|
|
890
972
|
"description": "The property: a member of the node's settings struct (Alpha, PlayRate, bLoopAnimation, Sequence) or of the graph node (NodeComment), with dots for a nested one (Node.PlayRate). On an asset player the asset property (Sequence, BlendSpace) is written through the node's own setter and read back, and fails when the node did not take it; any other property is written by reflection and its stored value read back."
|
|
891
973
|
},
|
|
974
|
+
"query": {
|
|
975
|
+
"type": "string",
|
|
976
|
+
"description": "Words to match in the unit's name, display name, category or keywords (spaces ignored), e.g. two bone, aim, set transform."
|
|
977
|
+
},
|
|
892
978
|
"radius": {
|
|
893
979
|
"type": "number",
|
|
894
980
|
"description": "Sphere or capsule radius (default 10)."
|
|
@@ -968,6 +1054,15 @@
|
|
|
968
1054
|
"minItems": 3,
|
|
969
1055
|
"maxItems": 3,
|
|
970
1056
|
"description": "Rotation as [pitch, yaw, roll] in degrees."
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"type": "array",
|
|
1060
|
+
"items": {
|
|
1061
|
+
"type": "number"
|
|
1062
|
+
},
|
|
1063
|
+
"minItems": 3,
|
|
1064
|
+
"maxItems": 3,
|
|
1065
|
+
"description": "add_bone, add_null, add_control: rotation [pitch, yaw, roll] in degrees."
|
|
971
1066
|
}
|
|
972
1067
|
],
|
|
973
1068
|
"description": "Box or capsule rotation relative to the bone as [pitch, yaw, roll]."
|
|
@@ -996,6 +1091,15 @@
|
|
|
996
1091
|
"minItems": 3,
|
|
997
1092
|
"maxItems": 3,
|
|
998
1093
|
"description": "Bone scale as [x, y, z] (default [1, 1, 1])."
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
"type": "array",
|
|
1097
|
+
"items": {
|
|
1098
|
+
"type": "number"
|
|
1099
|
+
},
|
|
1100
|
+
"minItems": 3,
|
|
1101
|
+
"maxItems": 3,
|
|
1102
|
+
"description": "add_bone, add_null, add_control: scale [x, y, z] (default 1)."
|
|
999
1103
|
}
|
|
1000
1104
|
],
|
|
1001
1105
|
"description": "Bone scale as [x, y, z] (default [1, 1, 1])."
|
|
@@ -1107,6 +1211,15 @@
|
|
|
1107
1211
|
"type": "string",
|
|
1108
1212
|
"description": "StaticMesh to skin, e.g. a coat downloaded as a rigid mesh."
|
|
1109
1213
|
},
|
|
1214
|
+
"steps": {
|
|
1215
|
+
"type": "array",
|
|
1216
|
+
"items": {
|
|
1217
|
+
"type": "object",
|
|
1218
|
+
"additionalProperties": true,
|
|
1219
|
+
"x-unreal-reflection-boundary": true
|
|
1220
|
+
},
|
|
1221
|
+
"description": "Several edits in order, each an object with edit and its own fields as above; the first that fails stops the rest, and those before it stay (failedStep names it)."
|
|
1222
|
+
},
|
|
1110
1223
|
"suffix": {
|
|
1111
1224
|
"type": "string",
|
|
1112
1225
|
"description": "Suffix appended to each retargeted asset name."
|
|
@@ -1147,6 +1260,10 @@
|
|
|
1147
1260
|
"type": "number",
|
|
1148
1261
|
"description": "Time in seconds."
|
|
1149
1262
|
},
|
|
1263
|
+
"to": {
|
|
1264
|
+
"type": "string",
|
|
1265
|
+
"description": "connect, disconnect: the input pin, Node.Pin."
|
|
1266
|
+
},
|
|
1150
1267
|
"toSection": {
|
|
1151
1268
|
"type": "string",
|
|
1152
1269
|
"description": "Target montage section."
|
|
@@ -1202,6 +1319,10 @@
|
|
|
1202
1319
|
"type": "string",
|
|
1203
1320
|
"description": "Comment/name for the blend node (alias of name)."
|
|
1204
1321
|
},
|
|
1322
|
+
"unit": {
|
|
1323
|
+
"type": "string",
|
|
1324
|
+
"description": "add_unit: the unit, as an object path (/Script/ControlRig.RigUnit_SetTransform), its struct name with or without RigUnit_ (SetTransform), or its display name."
|
|
1325
|
+
},
|
|
1205
1326
|
"value": {
|
|
1206
1327
|
"oneOf": [
|
|
1207
1328
|
{
|
|
@@ -1209,6 +1330,14 @@
|
|
|
1209
1330
|
},
|
|
1210
1331
|
{
|
|
1211
1332
|
"description": "The value: a number, boolean or string, an {x,y,z} or {r,g,b,a} object for a struct, or for an asset property the asset path (/Game/Anims/A_Idle)."
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
"type": [
|
|
1336
|
+
"string",
|
|
1337
|
+
"number",
|
|
1338
|
+
"boolean"
|
|
1339
|
+
],
|
|
1340
|
+
"description": "set_pin: the value as text (Bone, foot_l), a number, or true/false."
|
|
1212
1341
|
}
|
|
1213
1342
|
],
|
|
1214
1343
|
"description": "Property value (any type)."
|
|
@@ -1295,6 +1424,9 @@
|
|
|
1295
1424
|
"edit_anim_graph",
|
|
1296
1425
|
"edit_animation",
|
|
1297
1426
|
"create_control_rig",
|
|
1427
|
+
"edit_control_rig",
|
|
1428
|
+
"get_control_rig",
|
|
1429
|
+
"list_rig_units",
|
|
1298
1430
|
"setup_ik",
|
|
1299
1431
|
"edit_montage",
|
|
1300
1432
|
"play_montage",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { request } from 'node:http';
|
|
2
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
4
|
-
import { join } from 'node:path';
|
|
2
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
5
|
import { createInterface } from 'node:readline';
|
|
6
6
|
import { CapabilityTokenProvider } from '../automation/capability-token-provider.js';
|
|
7
7
|
import { PACKAGE } from '../constants.js';
|
|
@@ -16,7 +16,7 @@ const PLACEHOLDER_TOOL = {
|
|
|
16
16
|
export function startNativeProxy(options = {}) {
|
|
17
17
|
const upstream = options.upstream ?? process.env.UNREAL_MCP_URL ?? 'http://127.0.0.1:3000/mcp';
|
|
18
18
|
const cacheFile = options.cacheFile ?? process.env.UNREAL_MCP_PROXY_CACHE
|
|
19
|
-
?? join(
|
|
19
|
+
?? join(process.env.LOCALAPPDATA ?? process.env.XDG_CACHE_HOME ?? join(homedir(), '.cache'), 'unreal-mcp', `proxy-${new URL(upstream).port || '80'}.json`);
|
|
20
20
|
const output = options.output ?? process.stdout;
|
|
21
21
|
const log = new Logger('NativeProxy');
|
|
22
22
|
const tokenProvider = new CapabilityTokenProvider(undefined, log);
|
|
@@ -39,7 +39,8 @@ export function startNativeProxy(options = {}) {
|
|
|
39
39
|
const remember = (patch) => {
|
|
40
40
|
cache = { ...cache, ...patch };
|
|
41
41
|
try {
|
|
42
|
-
|
|
42
|
+
mkdirSync(dirname(cacheFile), { recursive: true, mode: 0o700 });
|
|
43
|
+
writeFileSync(cacheFile, JSON.stringify(cache), { mode: 0o600 });
|
|
43
44
|
}
|
|
44
45
|
catch (error) {
|
|
45
46
|
log.warn(`cache not written: ${String(error)}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CapabilityRecord } from '../model.js';
|
|
2
|
-
export declare const CANONICAL_CAPABILITY_RECORD_COUNT =
|
|
3
|
-
export declare const CATALOG_REVISION = "
|
|
2
|
+
export declare const CANONICAL_CAPABILITY_RECORD_COUNT = 405;
|
|
3
|
+
export declare const CATALOG_REVISION = "6a9b00e40ef5b820";
|
|
4
4
|
export declare const CANONICAL_CAPABILITY_RECORDS: readonly CapabilityRecord[];
|
|
5
5
|
export type { CapabilityRecord };
|
|
6
6
|
//# sourceMappingURL=canonical-registry.generated.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import registry from './canonical-registry.generated.json' with { type: 'json' };
|
|
2
2
|
import { parseCapabilityCatalog } from '../parser.js';
|
|
3
|
-
export const CANONICAL_CAPABILITY_RECORD_COUNT =
|
|
4
|
-
export const CATALOG_REVISION = "
|
|
3
|
+
export const CANONICAL_CAPABILITY_RECORD_COUNT = 405;
|
|
4
|
+
export const CATALOG_REVISION = "6a9b00e40ef5b820";
|
|
5
5
|
export const CANONICAL_CAPABILITY_RECORDS = parseCapabilityCatalog(registry.records);
|
|
6
6
|
//# sourceMappingURL=canonical-registry.generated.js.map
|