pandora-cli-skills 1.1.129 → 1.1.130
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/benchmarks/latest/core-bundle.json +48 -19
- package/benchmarks/latest/core-history.json +32 -3
- package/benchmarks/latest/core-report.json +15 -15
- package/benchmarks/locks/core.lock.json +13 -13
- package/cli/lib/mirror_handlers/hedge.cjs +55 -2
- package/cli/lib/mirror_hedge/status.cjs +199 -3
- package/cli/lib/mirror_hedge_service.cjs +197 -28
- package/cli/lib/mirror_hedge_state_store.cjs +1 -0
- package/cli/lib/mirror_state_store.cjs +2 -0
- package/cli/lib/mirror_sync_service.cjs +4 -13
- package/docs/benchmarks/history.json +32 -3
- package/package.json +1 -1
- package/sdk/generated/contract-registry.json +16 -16
- package/sdk/generated/manifest.json +6 -6
- package/sdk/python/pandora_agent/generated/manifest.json +4 -4
- package/sdk/typescript/generated/manifest.json +4 -4
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"suite": "core",
|
|
4
|
-
"generatedAt": "2026-04-
|
|
4
|
+
"generatedAt": "2026-04-06T21:49:08.476Z",
|
|
5
5
|
"package": {
|
|
6
6
|
"name": "pandora-cli-skills",
|
|
7
|
-
"version": "1.1.
|
|
7
|
+
"version": "1.1.130"
|
|
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": "
|
|
15
|
-
"lockSha256": "
|
|
14
|
+
"reportSha256": "2e3c414a7935e15d62791ccf837573237eca1904b478725c93cfe6d08b609469",
|
|
15
|
+
"lockSha256": "66b0d4e052a69bc225e43c40e1d8c5eacab4b8d425dd5e4a57f787ffd7b921e8"
|
|
16
16
|
},
|
|
17
17
|
"latest": {
|
|
18
18
|
"summary": {
|
|
@@ -144,26 +144,26 @@
|
|
|
144
144
|
]
|
|
145
145
|
},
|
|
146
146
|
"runtime": {
|
|
147
|
-
"packageVersion": "1.1.
|
|
147
|
+
"packageVersion": "1.1.130"
|
|
148
148
|
},
|
|
149
149
|
"contractLock": {
|
|
150
|
-
"capabilitiesLocalHash": "
|
|
151
|
-
"capabilitiesRemoteTemplateHash": "
|
|
150
|
+
"capabilitiesLocalHash": "6102d7d83bddc9560b71c0b473964c09f44fcdf7e53330eeae74a0cc747de42b",
|
|
151
|
+
"capabilitiesRemoteTemplateHash": "dd1c11aa54c4c24d970136c0ad9b63de3e8358dae4dd81c1a682282fdfb6ff40",
|
|
152
152
|
"commandDescriptorVersion": "1.4.3",
|
|
153
153
|
"documentationContentHash": "cb130209bc40f5bdb9fccbd55ad07b6ec1fefbc95ab0d11fe6d50ef8eb6fa566",
|
|
154
154
|
"documentationRegistryHash": "eebe2a201c559e44b45d1a780713f6b302f56726a03a4a57538fcf6762530826",
|
|
155
155
|
"generatedArtifactHashes": {
|
|
156
156
|
"generatedCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
157
|
-
"generatedContractRegistry": "
|
|
158
|
-
"generatedManifest": "
|
|
157
|
+
"generatedContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
158
|
+
"generatedManifest": "466a2de3df182401299a291dadc04f9407426e91f764f960bc4cca53c423326d",
|
|
159
159
|
"generatedMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6",
|
|
160
160
|
"pyCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
161
|
-
"pyContractRegistry": "
|
|
162
|
-
"pyManifest": "
|
|
161
|
+
"pyContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
162
|
+
"pyManifest": "9888c6133300d09cee59846d65daa58d74fff2c05d3bc0043c9aaf71bd57722d",
|
|
163
163
|
"pyMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6",
|
|
164
164
|
"tsCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
165
|
-
"tsContractRegistry": "
|
|
166
|
-
"tsManifest": "
|
|
165
|
+
"tsContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
166
|
+
"tsManifest": "af391f43d5f126e11fa4999a1251e56178f3136f3e1abf0617daa348e0879ce4",
|
|
167
167
|
"tsMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6"
|
|
168
168
|
},
|
|
169
169
|
"generatedManifestCommandDescriptorVersion": "1.4.3",
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
180
180
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
181
181
|
"topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
|
|
182
|
-
"trustDistributionHash": "
|
|
182
|
+
"trustDistributionHash": "c46b02e1d58f85458978cbf40bbae951c64e82a0dd4f4dfa73fde6de94b1aa32"
|
|
183
183
|
},
|
|
184
184
|
"generatedManifestVersion": "1.0.0",
|
|
185
185
|
"registryDigest": {
|
|
@@ -193,19 +193,48 @@
|
|
|
193
193
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
194
194
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
195
195
|
"topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
|
|
196
|
-
"trustDistributionHash": "
|
|
196
|
+
"trustDistributionHash": "c46b02e1d58f85458978cbf40bbae951c64e82a0dd4f4dfa73fde6de94b1aa32"
|
|
197
197
|
},
|
|
198
|
-
"schemaHash": "
|
|
198
|
+
"schemaHash": "497fd61bc7fb511b18987a6f30c194f1d4b08efdcf63d91798ff6b183727e797"
|
|
199
199
|
},
|
|
200
200
|
"contractLockMatchesExpected": true
|
|
201
201
|
},
|
|
202
202
|
"history": {
|
|
203
203
|
"schemaVersion": "1.0.0",
|
|
204
204
|
"suite": "core",
|
|
205
|
-
"generatedAt": "2026-04-
|
|
206
|
-
"latestVersion": "1.1.
|
|
207
|
-
"latestGeneratedAt": "2026-04-
|
|
205
|
+
"generatedAt": "2026-04-06T21:49:08.476Z",
|
|
206
|
+
"latestVersion": "1.1.130",
|
|
207
|
+
"latestGeneratedAt": "2026-04-06T21:49:08.476Z",
|
|
208
208
|
"entries": [
|
|
209
|
+
{
|
|
210
|
+
"schemaVersion": "1.0.0",
|
|
211
|
+
"suite": "core",
|
|
212
|
+
"packageName": "pandora-cli-skills",
|
|
213
|
+
"version": "1.1.130",
|
|
214
|
+
"packageVersion": "1.1.130",
|
|
215
|
+
"generatedAt": "2026-04-06T21:49:08.476Z",
|
|
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": "664970d781e477a11a683bc265cbd7fc8b0cf9576b50da49ab301b773e38b47d",
|
|
233
|
+
"documentationContentHash": "cb130209bc40f5bdb9fccbd55ad07b6ec1fefbc95ab0d11fe6d50ef8eb6fa566",
|
|
234
|
+
"reportSha256": "2e3c414a7935e15d62791ccf837573237eca1904b478725c93cfe6d08b609469",
|
|
235
|
+
"lockSha256": "66b0d4e052a69bc225e43c40e1d8c5eacab4b8d425dd5e4a57f787ffd7b921e8",
|
|
236
|
+
"lockSchemaVersion": "1.0.0"
|
|
237
|
+
},
|
|
209
238
|
{
|
|
210
239
|
"schemaVersion": "1.0.0",
|
|
211
240
|
"suite": "core",
|
|
@@ -1,10 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"suite": "core",
|
|
4
|
-
"generatedAt": "2026-04-
|
|
5
|
-
"latestVersion": "1.1.
|
|
6
|
-
"latestGeneratedAt": "2026-04-
|
|
4
|
+
"generatedAt": "2026-04-06T21:49:08.476Z",
|
|
5
|
+
"latestVersion": "1.1.130",
|
|
6
|
+
"latestGeneratedAt": "2026-04-06T21:49:08.476Z",
|
|
7
7
|
"entries": [
|
|
8
|
+
{
|
|
9
|
+
"schemaVersion": "1.0.0",
|
|
10
|
+
"suite": "core",
|
|
11
|
+
"packageName": "pandora-cli-skills",
|
|
12
|
+
"version": "1.1.130",
|
|
13
|
+
"packageVersion": "1.1.130",
|
|
14
|
+
"generatedAt": "2026-04-06T21:49:08.476Z",
|
|
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": "664970d781e477a11a683bc265cbd7fc8b0cf9576b50da49ab301b773e38b47d",
|
|
32
|
+
"documentationContentHash": "cb130209bc40f5bdb9fccbd55ad07b6ec1fefbc95ab0d11fe6d50ef8eb6fa566",
|
|
33
|
+
"reportSha256": "2e3c414a7935e15d62791ccf837573237eca1904b478725c93cfe6d08b609469",
|
|
34
|
+
"lockSha256": "66b0d4e052a69bc225e43c40e1d8c5eacab4b8d425dd5e4a57f787ffd7b921e8",
|
|
35
|
+
"lockSchemaVersion": "1.0.0"
|
|
36
|
+
},
|
|
8
37
|
{
|
|
9
38
|
"schemaVersion": "1.0.0",
|
|
10
39
|
"suite": "core",
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"contractLock": {
|
|
3
|
-
"capabilitiesLocalHash": "
|
|
4
|
-
"capabilitiesRemoteTemplateHash": "
|
|
3
|
+
"capabilitiesLocalHash": "6102d7d83bddc9560b71c0b473964c09f44fcdf7e53330eeae74a0cc747de42b",
|
|
4
|
+
"capabilitiesRemoteTemplateHash": "dd1c11aa54c4c24d970136c0ad9b63de3e8358dae4dd81c1a682282fdfb6ff40",
|
|
5
5
|
"commandDescriptorVersion": "1.4.3",
|
|
6
6
|
"documentationContentHash": "cb130209bc40f5bdb9fccbd55ad07b6ec1fefbc95ab0d11fe6d50ef8eb6fa566",
|
|
7
7
|
"documentationRegistryHash": "eebe2a201c559e44b45d1a780713f6b302f56726a03a4a57538fcf6762530826",
|
|
8
8
|
"generatedArtifactHashes": {
|
|
9
9
|
"generatedCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
10
|
-
"generatedContractRegistry": "
|
|
11
|
-
"generatedManifest": "
|
|
10
|
+
"generatedContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
11
|
+
"generatedManifest": "466a2de3df182401299a291dadc04f9407426e91f764f960bc4cca53c423326d",
|
|
12
12
|
"generatedMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6",
|
|
13
13
|
"pyCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
14
|
-
"pyContractRegistry": "
|
|
15
|
-
"pyManifest": "
|
|
14
|
+
"pyContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
15
|
+
"pyManifest": "9888c6133300d09cee59846d65daa58d74fff2c05d3bc0043c9aaf71bd57722d",
|
|
16
16
|
"pyMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6",
|
|
17
17
|
"tsCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
18
|
-
"tsContractRegistry": "
|
|
19
|
-
"tsManifest": "
|
|
18
|
+
"tsContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
19
|
+
"tsManifest": "af391f43d5f126e11fa4999a1251e56178f3136f3e1abf0617daa348e0879ce4",
|
|
20
20
|
"tsMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6"
|
|
21
21
|
},
|
|
22
22
|
"generatedManifestCommandDescriptorVersion": "1.4.3",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
33
33
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
34
34
|
"topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
|
|
35
|
-
"trustDistributionHash": "
|
|
35
|
+
"trustDistributionHash": "c46b02e1d58f85458978cbf40bbae951c64e82a0dd4f4dfa73fde6de94b1aa32"
|
|
36
36
|
},
|
|
37
37
|
"generatedManifestVersion": "1.0.0",
|
|
38
38
|
"registryDigest": {
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
47
47
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
48
48
|
"topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
|
|
49
|
-
"trustDistributionHash": "
|
|
49
|
+
"trustDistributionHash": "c46b02e1d58f85458978cbf40bbae951c64e82a0dd4f4dfa73fde6de94b1aa32"
|
|
50
50
|
},
|
|
51
|
-
"schemaHash": "
|
|
51
|
+
"schemaHash": "497fd61bc7fb511b18987a6f30c194f1d4b08efdcf63d91798ff6b183727e797"
|
|
52
52
|
},
|
|
53
53
|
"contractLockMatchesExpected": true,
|
|
54
54
|
"contractLockMismatches": [],
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
]
|
|
285
285
|
},
|
|
286
286
|
"publication": {
|
|
287
|
-
"contractLockHash": "
|
|
287
|
+
"contractLockHash": "bf15545a2fbb6e5ac3dc549a9f47506fb28e6b837685288624aa393d75b55eff",
|
|
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": "
|
|
297
|
-
"suiteLockHash": "
|
|
296
|
+
"scorecardHash": "69018c1758c3c0600041992241f73ac0ef256c3e60be5703a9b8e5bf453b20a6",
|
|
297
|
+
"suiteLockHash": "66b0d4e052a69bc225e43c40e1d8c5eacab4b8d425dd5e4a57f787ffd7b921e8",
|
|
298
298
|
"suiteLockPath": "benchmarks/locks/core.lock.json"
|
|
299
299
|
},
|
|
300
300
|
"runtime": {
|
|
301
|
-
"packageVersion": "1.1.
|
|
301
|
+
"packageVersion": "1.1.130"
|
|
302
302
|
},
|
|
303
303
|
"scenarios": [
|
|
304
304
|
{
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"contractLock": {
|
|
3
|
-
"capabilitiesLocalHash": "
|
|
4
|
-
"capabilitiesRemoteTemplateHash": "
|
|
3
|
+
"capabilitiesLocalHash": "6102d7d83bddc9560b71c0b473964c09f44fcdf7e53330eeae74a0cc747de42b",
|
|
4
|
+
"capabilitiesRemoteTemplateHash": "dd1c11aa54c4c24d970136c0ad9b63de3e8358dae4dd81c1a682282fdfb6ff40",
|
|
5
5
|
"commandDescriptorVersion": "1.4.3",
|
|
6
6
|
"documentationContentHash": "cb130209bc40f5bdb9fccbd55ad07b6ec1fefbc95ab0d11fe6d50ef8eb6fa566",
|
|
7
7
|
"documentationRegistryHash": "eebe2a201c559e44b45d1a780713f6b302f56726a03a4a57538fcf6762530826",
|
|
8
8
|
"generatedArtifactHashes": {
|
|
9
9
|
"generatedCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
10
|
-
"generatedContractRegistry": "
|
|
11
|
-
"generatedManifest": "
|
|
10
|
+
"generatedContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
11
|
+
"generatedManifest": "466a2de3df182401299a291dadc04f9407426e91f764f960bc4cca53c423326d",
|
|
12
12
|
"generatedMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6",
|
|
13
13
|
"pyCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
14
|
-
"pyContractRegistry": "
|
|
15
|
-
"pyManifest": "
|
|
14
|
+
"pyContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
15
|
+
"pyManifest": "9888c6133300d09cee59846d65daa58d74fff2c05d3bc0043c9aaf71bd57722d",
|
|
16
16
|
"pyMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6",
|
|
17
17
|
"tsCommandDescriptors": "60ab2ae91d950b5639093413fb1806d979f024203ffad0b686705a94d5b06e07",
|
|
18
|
-
"tsContractRegistry": "
|
|
19
|
-
"tsManifest": "
|
|
18
|
+
"tsContractRegistry": "5914ebf699a5247e85573951e2190e157df7773c9dd0755e862346dc1fdeeeee",
|
|
19
|
+
"tsManifest": "af391f43d5f126e11fa4999a1251e56178f3136f3e1abf0617daa348e0879ce4",
|
|
20
20
|
"tsMcpToolDefinitions": "6dc62098f1c71b3816d75115ab5e31734484d9bc19ecff0bce32e7ab50fc00d6"
|
|
21
21
|
},
|
|
22
22
|
"generatedManifestCommandDescriptorVersion": "1.4.3",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
33
33
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
34
34
|
"topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
|
|
35
|
-
"trustDistributionHash": "
|
|
35
|
+
"trustDistributionHash": "c46b02e1d58f85458978cbf40bbae951c64e82a0dd4f4dfa73fde6de94b1aa32"
|
|
36
36
|
},
|
|
37
37
|
"generatedManifestVersion": "1.0.0",
|
|
38
38
|
"registryDigest": {
|
|
@@ -46,16 +46,16 @@
|
|
|
46
46
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
47
47
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
48
48
|
"topLevelHash": "04e58344eaec2c14dfa336b13eff952a584c7c5355d90775c3bc8336ab0752ee",
|
|
49
|
-
"trustDistributionHash": "
|
|
49
|
+
"trustDistributionHash": "c46b02e1d58f85458978cbf40bbae951c64e82a0dd4f4dfa73fde6de94b1aa32"
|
|
50
50
|
},
|
|
51
|
-
"schemaHash": "
|
|
51
|
+
"schemaHash": "497fd61bc7fb511b18987a6f30c194f1d4b08efdcf63d91798ff6b183727e797"
|
|
52
52
|
},
|
|
53
53
|
"publication": {
|
|
54
|
-
"contractLockHash": "
|
|
54
|
+
"contractLockHash": "bf15545a2fbb6e5ac3dc549a9f47506fb28e6b837685288624aa393d75b55eff",
|
|
55
55
|
"deterministic": true,
|
|
56
56
|
"grade": "release-grade",
|
|
57
57
|
"kind": "benchmark-contract-lock",
|
|
58
|
-
"lockDocumentHash": "
|
|
58
|
+
"lockDocumentHash": "e0961902c98f8d01cf7940f878b5dcccfcc88e3579bbcdd084a0c26770aa5c68",
|
|
59
59
|
"suiteLockPath": "benchmarks/locks/core.lock.json"
|
|
60
60
|
},
|
|
61
61
|
"schemaVersion": "1.0.0",
|
|
@@ -11,12 +11,55 @@ function renderKeyValueRows(title, rows) {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
function buildMirrorHedgeDiagnostics(data = {}) {
|
|
15
|
+
const diagnostics = [];
|
|
16
|
+
const seen = new Set();
|
|
17
|
+
const warnings = Array.isArray(data.warnings) ? data.warnings : [];
|
|
18
|
+
|
|
19
|
+
function push(message) {
|
|
20
|
+
const text = String(message || '').trim();
|
|
21
|
+
if (!text || seen.has(text)) return;
|
|
22
|
+
seen.add(text);
|
|
23
|
+
diagnostics.push(text);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (Array.isArray(data.diagnostics)) {
|
|
27
|
+
for (const diagnostic of data.diagnostics) {
|
|
28
|
+
push(diagnostic);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
for (const warning of warnings) {
|
|
33
|
+
const code = String(warning && warning.code ? warning.code : '').trim();
|
|
34
|
+
if (!code.startsWith('BUG-006')) continue;
|
|
35
|
+
const message = warning && warning.message ? warning.message : JSON.stringify(warning);
|
|
36
|
+
push(`[${code}] ${message}`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const summary = data.summary || {};
|
|
40
|
+
if (!warnings.some((warning) => warning && warning.code === 'BUG-006_QUEUE_PRUNE')
|
|
41
|
+
&& Number(summary.deferredHedgeRecoveredCount || 0) > 0) {
|
|
42
|
+
push(`[BUG-006_QUEUE_PRUNE] Deferred sell queue auto-pruned ${summary.deferredHedgeRecoveredCount} stale ${summary.deferredHedgeRecoveredCount === 1 ? 'entry' : 'entries'} after sell exposure cleared.${summary.deferredHedgeLastRecoveryAt ? ` Last recovery at ${summary.deferredHedgeLastRecoveryAt}.` : ''}`);
|
|
43
|
+
}
|
|
44
|
+
if (!warnings.some((warning) => warning && warning.code === 'BUG-006_QUEUE_INVALIDATION')
|
|
45
|
+
&& Number(summary.deferredHedgeInvalidCount || 0) > 0) {
|
|
46
|
+
push(`[BUG-006_QUEUE_INVALIDATION] Deferred hedge queue still contains ${summary.deferredHedgeInvalidCount} invalid or non-executable ${summary.deferredHedgeInvalidCount === 1 ? 'entry' : 'entries'}.`);
|
|
47
|
+
}
|
|
48
|
+
if (!warnings.some((warning) => warning && warning.code === 'BUG-006_SELL_BLOCKED_BUY_PHASE')
|
|
49
|
+
&& summary.queueStatusMessage) {
|
|
50
|
+
push(`[BUG-006_SELL_BLOCKED_BUY_PHASE] ${summary.queueStatusMessage}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return diagnostics;
|
|
54
|
+
}
|
|
55
|
+
|
|
14
56
|
function renderMirrorHedgeTable(data) {
|
|
15
57
|
const selector = data.selector || {};
|
|
16
58
|
const plan = data.plan || {};
|
|
17
59
|
const bundle = data.bundle || {};
|
|
18
60
|
const daemon = data.daemon || {};
|
|
19
61
|
const runtime = data.runtime || {};
|
|
62
|
+
const diagnostics = buildMirrorHedgeDiagnostics(data);
|
|
20
63
|
|
|
21
64
|
renderKeyValueRows('Mirror Hedge', [
|
|
22
65
|
['mode', data.mode || ''],
|
|
@@ -32,7 +75,7 @@ function renderMirrorHedgeTable(data) {
|
|
|
32
75
|
['planSummary', plan.summary || plan.actionSummary || plan.rebalanceSummary || ''],
|
|
33
76
|
['bundleSummary', bundle.summary || bundle.route || ''],
|
|
34
77
|
['runtimeStatus', runtime.status || ''],
|
|
35
|
-
['diagnostics',
|
|
78
|
+
['diagnostics', diagnostics.join(' | ')],
|
|
36
79
|
]);
|
|
37
80
|
}
|
|
38
81
|
|
|
@@ -42,6 +85,7 @@ function renderMirrorHedgeDaemonTable(data) {
|
|
|
42
85
|
const runtime = data.runtime || {};
|
|
43
86
|
const summary = data.summary || {};
|
|
44
87
|
const readiness = data.readiness || {};
|
|
88
|
+
const diagnostics = buildMirrorHedgeDiagnostics(data);
|
|
45
89
|
renderKeyValueRows('Mirror Hedge Daemon', [
|
|
46
90
|
['mode', data.mode || ''],
|
|
47
91
|
['stateFile', data.stateFile || ''],
|
|
@@ -68,6 +112,15 @@ function renderMirrorHedgeDaemonTable(data) {
|
|
|
68
112
|
['pendingOverlayUsdc', summary.pendingOverlayUsdc ?? ''],
|
|
69
113
|
['deferredHedgeCount', summary.deferredHedgeCount ?? ''],
|
|
70
114
|
['deferredHedgeUsdc', summary.deferredHedgeUsdc ?? ''],
|
|
115
|
+
['deferredHedgeOldestAgeMs', summary.deferredHedgeOldestAgeMs ?? ''],
|
|
116
|
+
['deferredHedgeInvalidCount', summary.deferredHedgeInvalidCount ?? ''],
|
|
117
|
+
['deferredHedgeRecoveredCount', summary.deferredHedgeRecoveredCount ?? ''],
|
|
118
|
+
['deferredHedgeLastBlockedReasonCode', summary.deferredHedgeLastBlockedReasonCode || ''],
|
|
119
|
+
['deferredHedgeLastBlockedReason', summary.deferredHedgeLastBlockedReason || ''],
|
|
120
|
+
['deferredHedgeLastFailureCode', summary.deferredHedgeLastFailureCode || ''],
|
|
121
|
+
['deferredHedgeLastFailureMessage', summary.deferredHedgeLastFailureMessage || ''],
|
|
122
|
+
['deferredHedgeLastRecoveryAt', summary.deferredHedgeLastRecoveryAt || ''],
|
|
123
|
+
['queueStatusMessage', summary.queueStatusMessage || ''],
|
|
71
124
|
['targetYesShares', summary.targetYesShares ?? ''],
|
|
72
125
|
['targetNoShares', summary.targetNoShares ?? ''],
|
|
73
126
|
['currentYesShares', summary.currentYesShares ?? ''],
|
|
@@ -100,7 +153,7 @@ function renderMirrorHedgeDaemonTable(data) {
|
|
|
100
153
|
['stoppedReason', runtime.stoppedReason || ''],
|
|
101
154
|
['exitCode', runtime.exitCode === null || runtime.exitCode === undefined ? '' : runtime.exitCode],
|
|
102
155
|
['exitAt', runtime.exitAt || ''],
|
|
103
|
-
['diagnostics',
|
|
156
|
+
['diagnostics', diagnostics.join(' | ')],
|
|
104
157
|
]);
|
|
105
158
|
if (Array.isArray(data.warnings) && data.warnings.length) {
|
|
106
159
|
console.log('warnings:');
|