pandora-cli-skills 1.1.126 → 1.1.127

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.
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "suite": "core",
4
- "generatedAt": "2026-03-23T22:14:50.413Z",
4
+ "generatedAt": "2026-03-26T18:57:06.996Z",
5
5
  "package": {
6
6
  "name": "pandora-cli-skills",
7
- "version": "1.1.126"
7
+ "version": "1.1.127"
8
8
  },
9
9
  "assets": {
10
10
  "reportPath": "benchmarks/latest/core-report.json",
11
11
  "lockPath": "benchmarks/locks/core.lock.json",
12
12
  "historyPath": "benchmarks/latest/core-history.json",
13
13
  "docsHistoryPath": "docs/benchmarks/history.json",
14
- "reportSha256": "f04963a7641cff964dd97d61e3f5b128791e5dd2fabc095051c846e40eec24e6",
15
- "lockSha256": "7e7b0a47150026c0ddacb7d30128815b85cade3eee675ac8b13d7608f77d3ef8"
14
+ "reportSha256": "cda5a55e07192182c5f638e41896c719a6ef3ec0a8db51eeef986d0aaf799ce9",
15
+ "lockSha256": "c2b0f1b3f68656cc2032c92764e20d792d8d9813cfaccdf7b26e3ad482681b5e"
16
16
  },
17
17
  "latest": {
18
18
  "summary": {
@@ -144,26 +144,26 @@
144
144
  ]
145
145
  },
146
146
  "runtime": {
147
- "packageVersion": "1.1.126"
147
+ "packageVersion": "1.1.127"
148
148
  },
149
149
  "contractLock": {
150
- "capabilitiesLocalHash": "0fd3651073cc02f0ed6f5c6d3c84a7b8d4e64f51fa3d6d32bd70422e8c61003e",
151
- "capabilitiesRemoteTemplateHash": "ba6f8cf27ad2fdcac99ec5affa73274dbe356d8aa117f0883a096647e4351146",
150
+ "capabilitiesLocalHash": "32f428bf34cbc8a920f79476a8b28a2c47a1a573ab5b921edcb34fcdc0ec5890",
151
+ "capabilitiesRemoteTemplateHash": "08c384198f61f89d6facc5e4c1753eff6f3f3def8c873af39ddc8207a7bd19d9",
152
152
  "commandDescriptorVersion": "1.4.3",
153
- "documentationContentHash": "5ba1cffa92ef5c9542834befa04c9d59fce395f4063597a86261a20cf90ec1ec",
154
- "documentationRegistryHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
153
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
154
+ "documentationRegistryHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
155
155
  "generatedArtifactHashes": {
156
156
  "generatedCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
157
- "generatedContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
158
- "generatedManifest": "644cc5776039ef89ce08e05b85192893181af35c5cd511335caf7b14ffa2c8ff",
157
+ "generatedContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
158
+ "generatedManifest": "1a0ef801a81d8061c2c57ab3d429d6e21dc6e089bc4434a217b973656ee40c06",
159
159
  "generatedMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c",
160
160
  "pyCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
161
- "pyContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
162
- "pyManifest": "2e1ce7a4edec7b28bc54f26ce95a1e879f8e78131bf1283c949106988a7a9fa8",
161
+ "pyContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
162
+ "pyManifest": "931edc03c872866bcab0515c1ebc2912ff2feaa8a864bb7e1bfc6a6dfe798c14",
163
163
  "pyMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c",
164
164
  "tsCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
165
- "tsContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
166
- "tsManifest": "1907f6400f4fb21adebb32225a7ddd92b4b6cacdeaf3093bc52780d7d99541ee",
165
+ "tsContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
166
+ "tsManifest": "9ed6159229cc1e8751fee40b5a8a748e61fbe86f4b5a63bc9c9409bcd21493fa",
167
167
  "tsMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c"
168
168
  },
169
169
  "generatedManifestCommandDescriptorVersion": "1.4.3",
@@ -172,40 +172,69 @@
172
172
  "canonicalHash": "cce2ede8f658d43e0807f7f194e28fc356085e00fc70d99d27ecbd674be14a9f",
173
173
  "commandDigestHash": "ff5ffd264b768cb059973405a2bbac264e790e8c583ce066668263259cf9d565",
174
174
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
175
- "documentationHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
175
+ "documentationHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
176
176
  "fullDescriptorHash": "a90cc06c3d9ab9068f87e2b1005847e685b7f86952cba5b2af9d2e38b8f963bb",
177
177
  "namespaceHash": "cd39afc4f4e8b76473a4768c07d979c44e0421973786c54e12bb6d7888f5952a",
178
178
  "policyProfilesHash": "9fb054a4f29be73c2ebf33f643bc17d904b2872dd8e7d564a690db828071a7ce",
179
179
  "principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
180
180
  "routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
181
181
  "topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
182
- "trustDistributionHash": "7d11cc5631509813194446ae32e47a386935f3f4791e37e170a523443495fb40"
182
+ "trustDistributionHash": "ac51fceb7cec36e23b75e82a5ce9ab4905cb637603d65876dcbe4bca52d205f5"
183
183
  },
184
184
  "generatedManifestVersion": "1.0.0",
185
185
  "registryDigest": {
186
186
  "canonicalHash": "cce2ede8f658d43e0807f7f194e28fc356085e00fc70d99d27ecbd674be14a9f",
187
187
  "commandDigestHash": "ff5ffd264b768cb059973405a2bbac264e790e8c583ce066668263259cf9d565",
188
188
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
189
- "documentationHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
189
+ "documentationHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
190
190
  "fullDescriptorHash": "a90cc06c3d9ab9068f87e2b1005847e685b7f86952cba5b2af9d2e38b8f963bb",
191
191
  "namespaceHash": "cd39afc4f4e8b76473a4768c07d979c44e0421973786c54e12bb6d7888f5952a",
192
192
  "policyProfilesHash": "9fb054a4f29be73c2ebf33f643bc17d904b2872dd8e7d564a690db828071a7ce",
193
193
  "principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
194
194
  "routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
195
195
  "topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
196
- "trustDistributionHash": "7d11cc5631509813194446ae32e47a386935f3f4791e37e170a523443495fb40"
196
+ "trustDistributionHash": "ac51fceb7cec36e23b75e82a5ce9ab4905cb637603d65876dcbe4bca52d205f5"
197
197
  },
198
- "schemaHash": "8287befafa805bb7bdcfcd03216a502d866e2a44ff168e754376b2888d04d55b"
198
+ "schemaHash": "f6f0625753d70d83f8b6d48271b59db16d01078bb040ac897016d09e3cb7e96c"
199
199
  },
200
200
  "contractLockMatchesExpected": true
201
201
  },
202
202
  "history": {
203
203
  "schemaVersion": "1.0.0",
204
204
  "suite": "core",
205
- "generatedAt": "2026-03-23T22:14:50.413Z",
206
- "latestVersion": "1.1.126",
207
- "latestGeneratedAt": "2026-03-23T22:14:50.413Z",
205
+ "generatedAt": "2026-03-26T18:57:06.996Z",
206
+ "latestVersion": "1.1.127",
207
+ "latestGeneratedAt": "2026-03-26T18:57:06.996Z",
208
208
  "entries": [
209
+ {
210
+ "schemaVersion": "1.0.0",
211
+ "suite": "core",
212
+ "packageName": "pandora-cli-skills",
213
+ "version": "1.1.127",
214
+ "packageVersion": "1.1.127",
215
+ "generatedAt": "2026-03-26T18:57:06.996Z",
216
+ "summary": {
217
+ "weightedScore": 100,
218
+ "overallPass": true,
219
+ "scenarioCount": 19,
220
+ "passedCount": 19,
221
+ "failedCount": 0,
222
+ "failedParityGroupCount": 0
223
+ },
224
+ "weightedScore": 100,
225
+ "overallPass": true,
226
+ "scenarioCount": 19,
227
+ "passedCount": 19,
228
+ "failedCount": 0,
229
+ "failedParityGroupCount": 0,
230
+ "contractLockMatchesExpected": true,
231
+ "parityFailedGroups": [],
232
+ "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
233
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
234
+ "reportSha256": "cda5a55e07192182c5f638e41896c719a6ef3ec0a8db51eeef986d0aaf799ce9",
235
+ "lockSha256": "c2b0f1b3f68656cc2032c92764e20d792d8d9813cfaccdf7b26e3ad482681b5e",
236
+ "lockSchemaVersion": "1.0.0"
237
+ },
209
238
  {
210
239
  "schemaVersion": "1.0.0",
211
240
  "suite": "core",
@@ -230,9 +259,9 @@
230
259
  "contractLockMatchesExpected": true,
231
260
  "parityFailedGroups": [],
232
261
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
233
- "documentationContentHash": "5ba1cffa92ef5c9542834befa04c9d59fce395f4063597a86261a20cf90ec1ec",
234
- "reportSha256": "f04963a7641cff964dd97d61e3f5b128791e5dd2fabc095051c846e40eec24e6",
235
- "lockSha256": "7e7b0a47150026c0ddacb7d30128815b85cade3eee675ac8b13d7608f77d3ef8",
262
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
263
+ "reportSha256": "81ffcec070160974ac2535ecc0d76044049a3eefa6001f8821aeeadfe822be9f",
264
+ "lockSha256": "88ad75b4d5664d3ce6d377c1a155ff334b38d064a070aa8b9d55ec0bfeff36bd",
236
265
  "lockSchemaVersion": "1.0.0"
237
266
  },
238
267
  {
@@ -1,10 +1,39 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "suite": "core",
4
- "generatedAt": "2026-03-23T22:14:50.413Z",
5
- "latestVersion": "1.1.126",
6
- "latestGeneratedAt": "2026-03-23T22:14:50.413Z",
4
+ "generatedAt": "2026-03-26T18:57:06.996Z",
5
+ "latestVersion": "1.1.127",
6
+ "latestGeneratedAt": "2026-03-26T18:57:06.996Z",
7
7
  "entries": [
8
+ {
9
+ "schemaVersion": "1.0.0",
10
+ "suite": "core",
11
+ "packageName": "pandora-cli-skills",
12
+ "version": "1.1.127",
13
+ "packageVersion": "1.1.127",
14
+ "generatedAt": "2026-03-26T18:57:06.996Z",
15
+ "summary": {
16
+ "weightedScore": 100,
17
+ "overallPass": true,
18
+ "scenarioCount": 19,
19
+ "passedCount": 19,
20
+ "failedCount": 0,
21
+ "failedParityGroupCount": 0
22
+ },
23
+ "weightedScore": 100,
24
+ "overallPass": true,
25
+ "scenarioCount": 19,
26
+ "passedCount": 19,
27
+ "failedCount": 0,
28
+ "failedParityGroupCount": 0,
29
+ "contractLockMatchesExpected": true,
30
+ "parityFailedGroups": [],
31
+ "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
32
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
33
+ "reportSha256": "cda5a55e07192182c5f638e41896c719a6ef3ec0a8db51eeef986d0aaf799ce9",
34
+ "lockSha256": "c2b0f1b3f68656cc2032c92764e20d792d8d9813cfaccdf7b26e3ad482681b5e",
35
+ "lockSchemaVersion": "1.0.0"
36
+ },
8
37
  {
9
38
  "schemaVersion": "1.0.0",
10
39
  "suite": "core",
@@ -29,9 +58,9 @@
29
58
  "contractLockMatchesExpected": true,
30
59
  "parityFailedGroups": [],
31
60
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
32
- "documentationContentHash": "5ba1cffa92ef5c9542834befa04c9d59fce395f4063597a86261a20cf90ec1ec",
33
- "reportSha256": "f04963a7641cff964dd97d61e3f5b128791e5dd2fabc095051c846e40eec24e6",
34
- "lockSha256": "7e7b0a47150026c0ddacb7d30128815b85cade3eee675ac8b13d7608f77d3ef8",
61
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
62
+ "reportSha256": "81ffcec070160974ac2535ecc0d76044049a3eefa6001f8821aeeadfe822be9f",
63
+ "lockSha256": "88ad75b4d5664d3ce6d377c1a155ff334b38d064a070aa8b9d55ec0bfeff36bd",
35
64
  "lockSchemaVersion": "1.0.0"
36
65
  },
37
66
  {
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "contractLock": {
3
- "capabilitiesLocalHash": "0fd3651073cc02f0ed6f5c6d3c84a7b8d4e64f51fa3d6d32bd70422e8c61003e",
4
- "capabilitiesRemoteTemplateHash": "ba6f8cf27ad2fdcac99ec5affa73274dbe356d8aa117f0883a096647e4351146",
3
+ "capabilitiesLocalHash": "32f428bf34cbc8a920f79476a8b28a2c47a1a573ab5b921edcb34fcdc0ec5890",
4
+ "capabilitiesRemoteTemplateHash": "08c384198f61f89d6facc5e4c1753eff6f3f3def8c873af39ddc8207a7bd19d9",
5
5
  "commandDescriptorVersion": "1.4.3",
6
- "documentationContentHash": "5ba1cffa92ef5c9542834befa04c9d59fce395f4063597a86261a20cf90ec1ec",
7
- "documentationRegistryHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
6
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
7
+ "documentationRegistryHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
8
8
  "generatedArtifactHashes": {
9
9
  "generatedCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
10
- "generatedContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
11
- "generatedManifest": "644cc5776039ef89ce08e05b85192893181af35c5cd511335caf7b14ffa2c8ff",
10
+ "generatedContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
11
+ "generatedManifest": "1a0ef801a81d8061c2c57ab3d429d6e21dc6e089bc4434a217b973656ee40c06",
12
12
  "generatedMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c",
13
13
  "pyCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
14
- "pyContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
15
- "pyManifest": "2e1ce7a4edec7b28bc54f26ce95a1e879f8e78131bf1283c949106988a7a9fa8",
14
+ "pyContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
15
+ "pyManifest": "931edc03c872866bcab0515c1ebc2912ff2feaa8a864bb7e1bfc6a6dfe798c14",
16
16
  "pyMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c",
17
17
  "tsCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
18
- "tsContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
19
- "tsManifest": "1907f6400f4fb21adebb32225a7ddd92b4b6cacdeaf3093bc52780d7d99541ee",
18
+ "tsContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
19
+ "tsManifest": "9ed6159229cc1e8751fee40b5a8a748e61fbe86f4b5a63bc9c9409bcd21493fa",
20
20
  "tsMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c"
21
21
  },
22
22
  "generatedManifestCommandDescriptorVersion": "1.4.3",
@@ -25,30 +25,30 @@
25
25
  "canonicalHash": "cce2ede8f658d43e0807f7f194e28fc356085e00fc70d99d27ecbd674be14a9f",
26
26
  "commandDigestHash": "ff5ffd264b768cb059973405a2bbac264e790e8c583ce066668263259cf9d565",
27
27
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
28
- "documentationHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
28
+ "documentationHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
29
29
  "fullDescriptorHash": "a90cc06c3d9ab9068f87e2b1005847e685b7f86952cba5b2af9d2e38b8f963bb",
30
30
  "namespaceHash": "cd39afc4f4e8b76473a4768c07d979c44e0421973786c54e12bb6d7888f5952a",
31
31
  "policyProfilesHash": "9fb054a4f29be73c2ebf33f643bc17d904b2872dd8e7d564a690db828071a7ce",
32
32
  "principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
33
33
  "routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
34
34
  "topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
35
- "trustDistributionHash": "7d11cc5631509813194446ae32e47a386935f3f4791e37e170a523443495fb40"
35
+ "trustDistributionHash": "ac51fceb7cec36e23b75e82a5ce9ab4905cb637603d65876dcbe4bca52d205f5"
36
36
  },
37
37
  "generatedManifestVersion": "1.0.0",
38
38
  "registryDigest": {
39
39
  "canonicalHash": "cce2ede8f658d43e0807f7f194e28fc356085e00fc70d99d27ecbd674be14a9f",
40
40
  "commandDigestHash": "ff5ffd264b768cb059973405a2bbac264e790e8c583ce066668263259cf9d565",
41
41
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
42
- "documentationHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
42
+ "documentationHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
43
43
  "fullDescriptorHash": "a90cc06c3d9ab9068f87e2b1005847e685b7f86952cba5b2af9d2e38b8f963bb",
44
44
  "namespaceHash": "cd39afc4f4e8b76473a4768c07d979c44e0421973786c54e12bb6d7888f5952a",
45
45
  "policyProfilesHash": "9fb054a4f29be73c2ebf33f643bc17d904b2872dd8e7d564a690db828071a7ce",
46
46
  "principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
47
47
  "routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
48
48
  "topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
49
- "trustDistributionHash": "7d11cc5631509813194446ae32e47a386935f3f4791e37e170a523443495fb40"
49
+ "trustDistributionHash": "ac51fceb7cec36e23b75e82a5ce9ab4905cb637603d65876dcbe4bca52d205f5"
50
50
  },
51
- "schemaHash": "8287befafa805bb7bdcfcd03216a502d866e2a44ff168e754376b2888d04d55b"
51
+ "schemaHash": "f6f0625753d70d83f8b6d48271b59db16d01078bb040ac897016d09e3cb7e96c"
52
52
  },
53
53
  "contractLockMatchesExpected": true,
54
54
  "contractLockMismatches": [],
@@ -284,7 +284,7 @@
284
284
  ]
285
285
  },
286
286
  "publication": {
287
- "contractLockHash": "f51fd9acf935a53f5c85aa221740da780ef4492e2e2b3a1a3763e11407eaf97c",
287
+ "contractLockHash": "76103e40e4f81ef21857ab41704c62fcca9435d3d23b94788ebcab52e0130965",
288
288
  "contractLockStatus": "locked",
289
289
  "deterministic": true,
290
290
  "expectedScenarioCount": 19,
@@ -293,12 +293,12 @@
293
293
  "minimumWeightedScore": 95,
294
294
  "releaseGatePass": true,
295
295
  "reportPath": "benchmarks/latest/core-report.json",
296
- "scorecardHash": "8c616d21f5f61e7ed25880b2372a360fdb89564d3278563a9740d8d75beb984a",
297
- "suiteLockHash": "7e7b0a47150026c0ddacb7d30128815b85cade3eee675ac8b13d7608f77d3ef8",
296
+ "scorecardHash": "b820bd609cf7275f469a2eb839ab13e1a1056433f1cd9ce53825404279881e66",
297
+ "suiteLockHash": "c2b0f1b3f68656cc2032c92764e20d792d8d9813cfaccdf7b26e3ad482681b5e",
298
298
  "suiteLockPath": "benchmarks/locks/core.lock.json"
299
299
  },
300
300
  "runtime": {
301
- "packageVersion": "1.1.126"
301
+ "packageVersion": "1.1.127"
302
302
  },
303
303
  "scenarios": [
304
304
  {
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "contractLock": {
3
- "capabilitiesLocalHash": "0fd3651073cc02f0ed6f5c6d3c84a7b8d4e64f51fa3d6d32bd70422e8c61003e",
4
- "capabilitiesRemoteTemplateHash": "ba6f8cf27ad2fdcac99ec5affa73274dbe356d8aa117f0883a096647e4351146",
3
+ "capabilitiesLocalHash": "32f428bf34cbc8a920f79476a8b28a2c47a1a573ab5b921edcb34fcdc0ec5890",
4
+ "capabilitiesRemoteTemplateHash": "08c384198f61f89d6facc5e4c1753eff6f3f3def8c873af39ddc8207a7bd19d9",
5
5
  "commandDescriptorVersion": "1.4.3",
6
- "documentationContentHash": "5ba1cffa92ef5c9542834befa04c9d59fce395f4063597a86261a20cf90ec1ec",
7
- "documentationRegistryHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
6
+ "documentationContentHash": "74fc7863c3b3f684149f2feb518c9b0c9f9d7ef113c09dd8ba1872f690ab7f95",
7
+ "documentationRegistryHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
8
8
  "generatedArtifactHashes": {
9
9
  "generatedCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
10
- "generatedContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
11
- "generatedManifest": "644cc5776039ef89ce08e05b85192893181af35c5cd511335caf7b14ffa2c8ff",
10
+ "generatedContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
11
+ "generatedManifest": "1a0ef801a81d8061c2c57ab3d429d6e21dc6e089bc4434a217b973656ee40c06",
12
12
  "generatedMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c",
13
13
  "pyCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
14
- "pyContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
15
- "pyManifest": "2e1ce7a4edec7b28bc54f26ce95a1e879f8e78131bf1283c949106988a7a9fa8",
14
+ "pyContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
15
+ "pyManifest": "931edc03c872866bcab0515c1ebc2912ff2feaa8a864bb7e1bfc6a6dfe798c14",
16
16
  "pyMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c",
17
17
  "tsCommandDescriptors": "5f415b7528d7e5b6086a96032d4d29d58e90ca082704f6bb4b25afd8f89c3fae",
18
- "tsContractRegistry": "1476fe3675229479a5a8a583f4486ef04d9409d4cc659514a2f08e8743ba001a",
19
- "tsManifest": "1907f6400f4fb21adebb32225a7ddd92b4b6cacdeaf3093bc52780d7d99541ee",
18
+ "tsContractRegistry": "fe360f90f12aab6bbc845b1e5e1b82721f12701dcb3ed055ba4a4cda2c4d9a83",
19
+ "tsManifest": "9ed6159229cc1e8751fee40b5a8a748e61fbe86f4b5a63bc9c9409bcd21493fa",
20
20
  "tsMcpToolDefinitions": "b37ce9423e4672326a42038dd2a99d04e9e5c9077d7613b9b516b4655cd1f16c"
21
21
  },
22
22
  "generatedManifestCommandDescriptorVersion": "1.4.3",
@@ -25,37 +25,37 @@
25
25
  "canonicalHash": "cce2ede8f658d43e0807f7f194e28fc356085e00fc70d99d27ecbd674be14a9f",
26
26
  "commandDigestHash": "ff5ffd264b768cb059973405a2bbac264e790e8c583ce066668263259cf9d565",
27
27
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
28
- "documentationHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
28
+ "documentationHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
29
29
  "fullDescriptorHash": "a90cc06c3d9ab9068f87e2b1005847e685b7f86952cba5b2af9d2e38b8f963bb",
30
30
  "namespaceHash": "cd39afc4f4e8b76473a4768c07d979c44e0421973786c54e12bb6d7888f5952a",
31
31
  "policyProfilesHash": "9fb054a4f29be73c2ebf33f643bc17d904b2872dd8e7d564a690db828071a7ce",
32
32
  "principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
33
33
  "routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
34
34
  "topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
35
- "trustDistributionHash": "7d11cc5631509813194446ae32e47a386935f3f4791e37e170a523443495fb40"
35
+ "trustDistributionHash": "ac51fceb7cec36e23b75e82a5ce9ab4905cb637603d65876dcbe4bca52d205f5"
36
36
  },
37
37
  "generatedManifestVersion": "1.0.0",
38
38
  "registryDigest": {
39
39
  "canonicalHash": "cce2ede8f658d43e0807f7f194e28fc356085e00fc70d99d27ecbd674be14a9f",
40
40
  "commandDigestHash": "ff5ffd264b768cb059973405a2bbac264e790e8c583ce066668263259cf9d565",
41
41
  "descriptorHash": "0ce356cf2e77ac1228df9de4a89d5b4bcba73fb5b43a83cf59d34b92bc561d46",
42
- "documentationHash": "98bda73a533c52da94e8db3a076f054757ac23b9adcbb1bd4aebde8029ea7c7c",
42
+ "documentationHash": "2bca31729c9c580125bd25764291699b63532afaa67d9380c72d1dda637944b7",
43
43
  "fullDescriptorHash": "a90cc06c3d9ab9068f87e2b1005847e685b7f86952cba5b2af9d2e38b8f963bb",
44
44
  "namespaceHash": "cd39afc4f4e8b76473a4768c07d979c44e0421973786c54e12bb6d7888f5952a",
45
45
  "policyProfilesHash": "9fb054a4f29be73c2ebf33f643bc17d904b2872dd8e7d564a690db828071a7ce",
46
46
  "principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
47
47
  "routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
48
48
  "topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
49
- "trustDistributionHash": "7d11cc5631509813194446ae32e47a386935f3f4791e37e170a523443495fb40"
49
+ "trustDistributionHash": "ac51fceb7cec36e23b75e82a5ce9ab4905cb637603d65876dcbe4bca52d205f5"
50
50
  },
51
- "schemaHash": "8287befafa805bb7bdcfcd03216a502d866e2a44ff168e754376b2888d04d55b"
51
+ "schemaHash": "f6f0625753d70d83f8b6d48271b59db16d01078bb040ac897016d09e3cb7e96c"
52
52
  },
53
53
  "publication": {
54
- "contractLockHash": "f51fd9acf935a53f5c85aa221740da780ef4492e2e2b3a1a3763e11407eaf97c",
54
+ "contractLockHash": "76103e40e4f81ef21857ab41704c62fcca9435d3d23b94788ebcab52e0130965",
55
55
  "deterministic": true,
56
56
  "grade": "release-grade",
57
57
  "kind": "benchmark-contract-lock",
58
- "lockDocumentHash": "5b4be1d5c42477dac5ee00f74e556c42eea648525db61aee19b73378bfa7dfcf",
58
+ "lockDocumentHash": "c82893c6327deaed382b2e6bdfb8baf284b72e153e5c001459bc39234340b1e0",
59
59
  "suiteLockPath": "benchmarks/locks/core.lock.json"
60
60
  },
61
61
  "schemaVersion": "1.0.0",
@@ -80,6 +80,11 @@ function renderMirrorHedgeDaemonTable(data) {
80
80
  ['netTargetShares', summary.netTargetShares ?? ''],
81
81
  ['availableHedgeFeeBudgetUsdc', summary.availableHedgeFeeBudgetUsdc ?? ''],
82
82
  ['belowThresholdPendingUsdc', summary.belowThresholdPendingUsdc ?? ''],
83
+ ['sellRetryAttemptedCount', summary.sellRetryAttemptedCount ?? ''],
84
+ ['sellRetryBlockedCount', summary.sellRetryBlockedCount ?? ''],
85
+ ['sellRetryFailedCount', summary.sellRetryFailedCount ?? ''],
86
+ ['sellRetryRecoveredCount', summary.sellRetryRecoveredCount ?? ''],
87
+ ['warningCount', summary.warningCount ?? ''],
83
88
  ['skippedVolumeUsdc', summary.skippedVolumeUsdc ?? ''],
84
89
  ['lastSuccessfulHedgeAt', summary.lastSuccessfulHedgeAt || ''],
85
90
  ['lastErrorCode', summary.lastErrorCode || ''],
@@ -89,6 +94,13 @@ function renderMirrorHedgeDaemonTable(data) {
89
94
  ['exitAt', runtime.exitAt || ''],
90
95
  ['diagnostics', Array.isArray(data.diagnostics) ? data.diagnostics.join(' | ') : ''],
91
96
  ]);
97
+ if (Array.isArray(data.warnings) && data.warnings.length) {
98
+ console.log('warnings:');
99
+ for (const warning of data.warnings) {
100
+ const code = warning && warning.code ? `[${warning.code}] ` : '';
101
+ console.log(`- ${code}${warning && warning.message ? warning.message : JSON.stringify(warning)}`);
102
+ }
103
+ }
92
104
  }
93
105
 
94
106
  function helpPayload(emitSuccess, commandHelpPayload, context, kind, usage, notes) {
@@ -7,6 +7,7 @@ const {
7
7
  ensureManagedInventorySnapshotShape,
8
8
  ensureMarketPairIdentityShape,
9
9
  ensurePendingMempoolOverlayShape,
10
+ ensureRetryTelemetryShape,
10
11
  ensureSkippedVolumeCountersShape,
11
12
  ensureTargetHedgeInventoryShape,
12
13
  ensureOutcomeShape,
@@ -70,6 +71,31 @@ function summarizeReasons(collection) {
70
71
  }, {});
71
72
  }
72
73
 
74
+ function buildOperatorWarnings(params = {}) {
75
+ const targetInventory = ensureTargetHedgeInventoryShape(params.targetHedgeInventory);
76
+ const inventory = params.managedPolymarketInventorySnapshot
77
+ ? ensureManagedInventorySnapshotShape(params.managedPolymarketInventorySnapshot)
78
+ : null;
79
+ const warnings = [];
80
+ const currentYesShares = inventory && Number.isFinite(Number(inventory.yesShares)) ? Number(inventory.yesShares) : 0;
81
+ const currentNoShares = inventory && Number.isFinite(Number(inventory.noShares)) ? Number(inventory.noShares) : 0;
82
+ if (
83
+ currentYesShares > 0
84
+ && currentNoShares > 0
85
+ && (
86
+ (targetInventory.yesShares > 0 && targetInventory.noShares === 0)
87
+ || (targetInventory.noShares > 0 && targetInventory.yesShares === 0)
88
+ )
89
+ ) {
90
+ warnings.push({
91
+ code: 'BOTH_SIDE_INVENTORY_LOCKUP',
92
+ severity: 'warning',
93
+ message: `Observed Polymarket inventory still holds both YES (${currentYesShares}) and NO (${currentNoShares}) while the hedge target is single-sided (${targetInventory.netSide || 'flat'}).`,
94
+ });
95
+ }
96
+ return warnings;
97
+ }
98
+
73
99
  function mergeCounters(base = {}, patch = {}) {
74
100
  const next = ensureSkippedVolumeCountersShape(base);
75
101
  const candidate = ensureSkippedVolumeCountersShape(patch);
@@ -160,6 +186,9 @@ function planHedgeRuntime(options = {}) {
160
186
  state.skippedVolumeCounters,
161
187
  pickArray(options.skippedVolumeCounters, {}),
162
188
  );
189
+ const retryTelemetry = ensureRetryTelemetryShape(
190
+ pickArray(options.retryTelemetry, state.retryTelemetry),
191
+ );
163
192
  const stateKey = buildStateKey({
164
193
  marketPairIdentity,
165
194
  whitelistFingerprint,
@@ -207,6 +236,13 @@ function planHedgeRuntime(options = {}) {
207
236
  if (pendingMempoolOverlays.length) recommendedActions.push('review-pending-mempool-overlays');
208
237
  if (deferredHedgeQueue.length) recommendedActions.push('drain-deferred-hedge-queue');
209
238
  if (skippedVolumeCounters.totalUsdc > 0) recommendedActions.push('inspect-skipped-volume-counters');
239
+ const warnings = buildOperatorWarnings({
240
+ targetHedgeInventory,
241
+ managedPolymarketInventorySnapshot,
242
+ });
243
+ if (warnings.some((warning) => warning.code === 'BOTH_SIDE_INVENTORY_LOCKUP')) {
244
+ recommendedActions.push('inspect-both-side-inventory-lockup');
245
+ }
210
246
 
211
247
  const summary = {
212
248
  marketPairId: marketPairIdentity.marketPairId,
@@ -238,8 +274,13 @@ function planHedgeRuntime(options = {}) {
238
274
  belowThresholdPendingUsdc: toFiniteNumberOrNull(
239
275
  pickArray(options.belowThresholdPendingUsdc, state.belowThresholdPendingUsdc),
240
276
  ) || 0,
277
+ sellRetryAttemptedCount: retryTelemetry.sellAttemptedCount,
278
+ sellRetryBlockedCount: retryTelemetry.sellBlockedCount,
279
+ sellRetryFailedCount: retryTelemetry.sellFailedCount,
280
+ sellRetryRecoveredCount: retryTelemetry.sellRecoveredCount,
241
281
  skippedVolumeUsdc: skippedVolumeCounters.totalUsdc,
242
282
  skippedVolumeCount: skippedVolumeCounters.count,
283
+ warningCount: warnings.length,
243
284
  ready: readyMissing.length === 0,
244
285
  readyMissing,
245
286
  };
@@ -258,7 +299,9 @@ function planHedgeRuntime(options = {}) {
258
299
  managedPolymarketInventorySnapshot,
259
300
  targetHedgeInventory,
260
301
  skippedVolumeCounters,
302
+ retryTelemetry,
261
303
  summary,
304
+ warnings,
262
305
  recommendedActions,
263
306
  lastSuccessfulHedge: state.lastSuccessfulHedge ? cloneJson(state.lastSuccessfulHedge) : null,
264
307
  lastError: state.lastError ? cloneJson(state.lastError) : null,
@@ -324,10 +367,7 @@ function applyHedgeObservation(state, observation = {}, now = new Date()) {
324
367
  updatedAt: entry && entry.updatedAt ? entry.updatedAt : timestamp,
325
368
  }))
326
369
  .filter((entry) => Boolean(entry.txHash || entry.cursor || entry.transactionHash));
327
- target.pendingMempoolOverlays = nextEntries.reduce(
328
- (collection, entry) => upsertByKey(collection, 'txHash', entry),
329
- asArray(target.pendingMempoolOverlays),
330
- );
370
+ target.pendingMempoolOverlays = nextEntries;
331
371
  }
332
372
 
333
373
  if (Array.isArray(observation.deferredHedgeQueue)) {
@@ -337,10 +377,7 @@ function applyHedgeObservation(state, observation = {}, now = new Date()) {
337
377
  updatedAt: entry && entry.updatedAt ? entry.updatedAt : timestamp,
338
378
  }))
339
379
  .filter((entry) => Boolean(entry.id));
340
- target.deferredHedgeQueue = nextEntries.reduce(
341
- (collection, entry) => upsertByKey(collection, 'id', entry),
342
- asArray(target.deferredHedgeQueue),
343
- );
380
+ target.deferredHedgeQueue = nextEntries;
344
381
  }
345
382
 
346
383
  if (observation.managedPolymarketInventorySnapshot !== undefined) {
@@ -367,6 +404,12 @@ function applyHedgeObservation(state, observation = {}, now = new Date()) {
367
404
  target.skippedVolumeCounters = mergeCounters(target.skippedVolumeCounters, observation.skippedVolumeCounters);
368
405
  }
369
406
 
407
+ if (observation.retryTelemetry !== undefined) {
408
+ target.retryTelemetry = observation.retryTelemetry
409
+ ? ensureRetryTelemetryShape(observation.retryTelemetry)
410
+ : ensureRetryTelemetryShape({});
411
+ }
412
+
370
413
  if (observation.lastSuccessfulHedge !== undefined) {
371
414
  target.lastSuccessfulHedge = observation.lastSuccessfulHedge
372
415
  ? {
@@ -2,6 +2,7 @@ const { round } = require('../shared/utils.cjs');
2
2
  const {
3
3
  ensureMarketPairIdentityShape,
4
4
  ensureManagedInventorySnapshotShape,
5
+ ensureRetryTelemetryShape,
5
6
  ensureSkippedVolumeCountersShape,
6
7
  ensureTargetHedgeInventoryShape,
7
8
  } = require('../mirror_hedge_state_store.cjs');
@@ -44,6 +45,7 @@ function buildBundleFacingHedgePayload(params = {}) {
44
45
  const targetInventory = params.targetHedgeInventory !== undefined
45
46
  ? ensureTargetHedgeInventoryShape(params.targetHedgeInventory)
46
47
  : ensureTargetHedgeInventoryShape(state.targetHedgeInventory);
48
+ const retryTelemetry = ensureRetryTelemetryShape(params.retryTelemetry || state.retryTelemetry || {});
47
49
  const skippedVolumeCounters = ensureSkippedVolumeCountersShape(params.skippedVolumeCounters || state.skippedVolumeCounters || {});
48
50
  const confirmedExposureLedger = Array.isArray(params.confirmedExposureLedger || state.confirmedExposureLedger)
49
51
  ? params.confirmedExposureLedger || state.confirmedExposureLedger
@@ -85,7 +87,12 @@ function buildBundleFacingHedgePayload(params = {}) {
85
87
  netTargetShares: targetInventory.netShares || 0,
86
88
  availableHedgeFeeBudgetUsdc: Number(state.availableHedgeFeeBudgetUsdc || 0),
87
89
  belowThresholdPendingUsdc: Number(state.belowThresholdPendingUsdc || 0),
90
+ sellRetryAttemptedCount: retryTelemetry.sellAttemptedCount || 0,
91
+ sellRetryBlockedCount: retryTelemetry.sellBlockedCount || 0,
92
+ sellRetryFailedCount: retryTelemetry.sellFailedCount || 0,
93
+ sellRetryRecoveredCount: retryTelemetry.sellRecoveredCount || 0,
88
94
  skippedVolumeUsdc: skippedVolumeCounters.totalUsdc || 0,
95
+ warningCount: plan && Array.isArray(plan.warnings) ? plan.warnings.length : 0,
89
96
  lastProcessedBlockNumber: state.lastProcessedBlockNumber || null,
90
97
  lastProcessedLogIndex: state.lastProcessedLogIndex || null,
91
98
  lastSuccessfulHedgeAt: state.lastSuccessfulHedge && state.lastSuccessfulHedge.executedAt ? state.lastSuccessfulHedge.executedAt : null,
@@ -108,6 +115,7 @@ function buildBundleFacingHedgePayload(params = {}) {
108
115
  deferredHedgeQueue,
109
116
  managedPolymarketInventorySnapshot: inventory,
110
117
  targetHedgeInventory: targetInventory,
118
+ retryTelemetry,
111
119
  skippedVolumeCounters,
112
120
  lastProcessedBlockCursor: state.lastProcessedBlockCursor || null,
113
121
  lastProcessedLogCursor: state.lastProcessedLogCursor || null,
@@ -152,6 +160,7 @@ function buildHedgeStatusPayload(params = {}) {
152
160
  missing: plan && plan.summary && Array.isArray(plan.summary.readyMissing) ? plan.summary.readyMissing : [],
153
161
  recommendedActions: plan && Array.isArray(plan.recommendedActions) ? plan.recommendedActions : [],
154
162
  },
163
+ warnings: plan && Array.isArray(plan.warnings) ? plan.warnings : [],
155
164
  lastSuccessfulHedge: state.lastSuccessfulHedge || null,
156
165
  lastError: state.lastError || null,
157
166
  lastAlert: state.lastAlert || null,
@@ -195,6 +204,11 @@ function renderHedgeStatusTable(payload) {
195
204
  ['netTargetShares', summary.netTargetShares],
196
205
  ['availableHedgeFeeBudgetUsdc', summary.availableHedgeFeeBudgetUsdc],
197
206
  ['belowThresholdPendingUsdc', summary.belowThresholdPendingUsdc],
207
+ ['sellRetryAttemptedCount', summary.sellRetryAttemptedCount],
208
+ ['sellRetryBlockedCount', summary.sellRetryBlockedCount],
209
+ ['sellRetryFailedCount', summary.sellRetryFailedCount],
210
+ ['sellRetryRecoveredCount', summary.sellRetryRecoveredCount],
211
+ ['warningCount', summary.warningCount],
198
212
  ['lastProcessedBlockNumber', summary.lastProcessedBlockNumber],
199
213
  ['lastProcessedLogIndex', summary.lastProcessedLogIndex],
200
214
  ['lastSuccessfulHedgeAt', summary.lastSuccessfulHedgeAt || ''],
@@ -214,6 +228,13 @@ function renderHedgeStatusTable(payload) {
214
228
  console.log(`- ${action}`);
215
229
  }
216
230
  }
231
+ if (Array.isArray(payload.warnings) && payload.warnings.length) {
232
+ console.log('warnings:');
233
+ for (const warning of payload.warnings) {
234
+ const code = warning && warning.code ? `[${warning.code}] ` : '';
235
+ console.log(`- ${code}${warning && warning.message ? warning.message : JSON.stringify(warning)}`);
236
+ }
237
+ }
217
238
  }
218
239
 
219
240
  module.exports = {