pandora-cli-skills 1.1.94 → 1.1.96
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 +60 -31
- package/benchmarks/latest/core-history.json +32 -3
- package/benchmarks/latest/core-report.json +27 -27
- package/benchmarks/locks/core.lock.json +25 -25
- package/cli/lib/agent_contract_registry.cjs +52 -6
- package/cli/lib/arb_command_service.cjs +0 -1
- package/cli/lib/markets_create_command_service.cjs +24 -8
- package/cli/lib/mcp_http_gateway_service.cjs +22 -3
- package/cli/lib/mcp_protocol_service.cjs +439 -7
- package/cli/lib/mcp_server_service.cjs +14 -5
- package/cli/lib/mirror_command_service.cjs +5 -1
- package/cli/lib/mirror_handlers/deploy.cjs +14 -6
- package/cli/lib/mirror_handlers/go.cjs +11 -1
- package/cli/lib/mirror_handlers/panic.cjs +1 -0
- package/cli/lib/mirror_handlers/sync.cjs +8 -0
- package/cli/lib/schema_command_service.cjs +4 -0
- package/docs/benchmarks/history.json +32 -3
- package/package.json +1 -1
- package/sdk/generated/command-descriptors.json +71 -11
- package/sdk/generated/contract-registry.json +382 -80
- package/sdk/generated/manifest.json +9 -9
- package/sdk/generated/mcp-tool-definitions.json +188 -32
- package/sdk/python/pandora_agent/generated/command-descriptors.json +71 -11
- package/sdk/python/pandora_agent/generated/contract-registry.json +381 -79
- package/sdk/python/pandora_agent/generated/manifest.json +7 -7
- package/sdk/python/pandora_agent/generated/mcp-tool-definitions.json +188 -32
- package/sdk/typescript/generated/command-descriptors.json +71 -11
- package/sdk/typescript/generated/contract-registry.json +381 -79
- package/sdk/typescript/generated/manifest.json +7 -7
- package/sdk/typescript/generated/mcp-tool-definitions.json +188 -32
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
3
|
"suite": "core",
|
|
4
|
-
"generatedAt": "2026-03-
|
|
4
|
+
"generatedAt": "2026-03-11T16:16:10.699Z",
|
|
5
5
|
"package": {
|
|
6
6
|
"name": "pandora-cli-skills",
|
|
7
|
-
"version": "1.1.
|
|
7
|
+
"version": "1.1.96"
|
|
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": "f166f4404809b5f38b3172aad25a5c437fbf4bbc9b0cb95cf7f31235743a502c",
|
|
15
|
+
"lockSha256": "2654e044664482a96e94b9ed579077a998e61a2469748b3fb2cedb1c1b345989"
|
|
16
16
|
},
|
|
17
17
|
"latest": {
|
|
18
18
|
"summary": {
|
|
@@ -144,68 +144,97 @@
|
|
|
144
144
|
]
|
|
145
145
|
},
|
|
146
146
|
"runtime": {
|
|
147
|
-
"packageVersion": "1.1.
|
|
147
|
+
"packageVersion": "1.1.96"
|
|
148
148
|
},
|
|
149
149
|
"contractLock": {
|
|
150
|
-
"capabilitiesLocalHash": "
|
|
151
|
-
"capabilitiesRemoteTemplateHash": "
|
|
150
|
+
"capabilitiesLocalHash": "f32cfc6086146518a32b09865d658e4ab8d78c183fa1c8c75a34d25f56522847",
|
|
151
|
+
"capabilitiesRemoteTemplateHash": "b7281a9d3f89bb71f10ca88a6d1c5daa8de5d7f0af2ea01e6aa9d83f50d26308",
|
|
152
152
|
"commandDescriptorVersion": "1.4.3",
|
|
153
153
|
"documentationContentHash": "04ea57e91bca7b6bc5ceffba7efbec85766258004ed0e2d4b1cb111614c9fa44",
|
|
154
154
|
"documentationRegistryHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
155
155
|
"generatedArtifactHashes": {
|
|
156
|
-
"generatedCommandDescriptors": "
|
|
157
|
-
"generatedContractRegistry": "
|
|
158
|
-
"generatedManifest": "
|
|
159
|
-
"generatedMcpToolDefinitions": "
|
|
160
|
-
"pyCommandDescriptors": "
|
|
161
|
-
"pyContractRegistry": "
|
|
162
|
-
"pyManifest": "
|
|
163
|
-
"pyMcpToolDefinitions": "
|
|
164
|
-
"tsCommandDescriptors": "
|
|
165
|
-
"tsContractRegistry": "
|
|
166
|
-
"tsManifest": "
|
|
167
|
-
"tsMcpToolDefinitions": "
|
|
156
|
+
"generatedCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
157
|
+
"generatedContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
158
|
+
"generatedManifest": "5892bb7986c83172f681d0a67401a8add6fb7c25c22517b0f1921611e7f1ebbc",
|
|
159
|
+
"generatedMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714",
|
|
160
|
+
"pyCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
161
|
+
"pyContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
162
|
+
"pyManifest": "6043216fef4b4e14831d5e833a50e70d8b6af45eb664d0408dd843edcb9d8423",
|
|
163
|
+
"pyMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714",
|
|
164
|
+
"tsCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
165
|
+
"tsContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
166
|
+
"tsManifest": "37d74603bf2edfda0f3fed6fd9692738f48c15b60b8307b5621f65dce8049edd",
|
|
167
|
+
"tsMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714"
|
|
168
168
|
},
|
|
169
169
|
"generatedManifestCommandDescriptorVersion": "1.4.3",
|
|
170
170
|
"generatedManifestPackageVersion": "0.1.0-alpha.12",
|
|
171
171
|
"generatedManifestRegistryDigest": {
|
|
172
172
|
"canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
|
|
173
|
-
"commandDigestHash": "
|
|
174
|
-
"descriptorHash": "
|
|
173
|
+
"commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
|
|
174
|
+
"descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
175
175
|
"documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
176
|
-
"fullDescriptorHash": "
|
|
176
|
+
"fullDescriptorHash": "fea7dc2db724bb771dc7384fea07a15aaff2b3e76e2bee01276d2b3028ed4227",
|
|
177
177
|
"namespaceHash": "d7c4138d54769239bb561f9eb6de2c09d7e644b4bea878564b4cf10220eac4aa",
|
|
178
178
|
"policyProfilesHash": "f4013cc2b8fb7e2687c9b69d392196a7f35ea8b792777e3f15e0e1af5fdf8657",
|
|
179
179
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
180
180
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
181
181
|
"topLevelHash": "a18c159ccd1f83038658262fc79fabd8bfbcf79c024822e52a298ec6f4eaf8ae",
|
|
182
|
-
"trustDistributionHash": "
|
|
182
|
+
"trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
|
|
183
183
|
},
|
|
184
184
|
"generatedManifestVersion": "1.0.0",
|
|
185
185
|
"registryDigest": {
|
|
186
186
|
"canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
|
|
187
|
-
"commandDigestHash": "
|
|
188
|
-
"descriptorHash": "
|
|
187
|
+
"commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
|
|
188
|
+
"descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
189
189
|
"documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
190
|
-
"fullDescriptorHash": "
|
|
190
|
+
"fullDescriptorHash": "fea7dc2db724bb771dc7384fea07a15aaff2b3e76e2bee01276d2b3028ed4227",
|
|
191
191
|
"namespaceHash": "d7c4138d54769239bb561f9eb6de2c09d7e644b4bea878564b4cf10220eac4aa",
|
|
192
192
|
"policyProfilesHash": "f4013cc2b8fb7e2687c9b69d392196a7f35ea8b792777e3f15e0e1af5fdf8657",
|
|
193
193
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
194
194
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
195
195
|
"topLevelHash": "a18c159ccd1f83038658262fc79fabd8bfbcf79c024822e52a298ec6f4eaf8ae",
|
|
196
|
-
"trustDistributionHash": "
|
|
196
|
+
"trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
|
|
197
197
|
},
|
|
198
|
-
"schemaHash": "
|
|
198
|
+
"schemaHash": "210dba32d1a22d48c7c42cf43c8580dbce3f873a77d51569306181e274553e7e"
|
|
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-
|
|
206
|
-
"latestVersion": "1.1.
|
|
207
|
-
"latestGeneratedAt": "2026-03-
|
|
205
|
+
"generatedAt": "2026-03-11T16:16:10.699Z",
|
|
206
|
+
"latestVersion": "1.1.96",
|
|
207
|
+
"latestGeneratedAt": "2026-03-11T16:16:10.699Z",
|
|
208
208
|
"entries": [
|
|
209
|
+
{
|
|
210
|
+
"schemaVersion": "1.0.0",
|
|
211
|
+
"suite": "core",
|
|
212
|
+
"packageName": "pandora-cli-skills",
|
|
213
|
+
"version": "1.1.96",
|
|
214
|
+
"packageVersion": "1.1.96",
|
|
215
|
+
"generatedAt": "2026-03-11T16:16:10.699Z",
|
|
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": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
233
|
+
"documentationContentHash": "04ea57e91bca7b6bc5ceffba7efbec85766258004ed0e2d4b1cb111614c9fa44",
|
|
234
|
+
"reportSha256": "f166f4404809b5f38b3172aad25a5c437fbf4bbc9b0cb95cf7f31235743a502c",
|
|
235
|
+
"lockSha256": "2654e044664482a96e94b9ed579077a998e61a2469748b3fb2cedb1c1b345989",
|
|
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-03-
|
|
5
|
-
"latestVersion": "1.1.
|
|
6
|
-
"latestGeneratedAt": "2026-03-
|
|
4
|
+
"generatedAt": "2026-03-11T16:16:10.699Z",
|
|
5
|
+
"latestVersion": "1.1.96",
|
|
6
|
+
"latestGeneratedAt": "2026-03-11T16:16:10.699Z",
|
|
7
7
|
"entries": [
|
|
8
|
+
{
|
|
9
|
+
"schemaVersion": "1.0.0",
|
|
10
|
+
"suite": "core",
|
|
11
|
+
"packageName": "pandora-cli-skills",
|
|
12
|
+
"version": "1.1.96",
|
|
13
|
+
"packageVersion": "1.1.96",
|
|
14
|
+
"generatedAt": "2026-03-11T16:16:10.699Z",
|
|
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": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
32
|
+
"documentationContentHash": "04ea57e91bca7b6bc5ceffba7efbec85766258004ed0e2d4b1cb111614c9fa44",
|
|
33
|
+
"reportSha256": "f166f4404809b5f38b3172aad25a5c437fbf4bbc9b0cb95cf7f31235743a502c",
|
|
34
|
+
"lockSha256": "2654e044664482a96e94b9ed579077a998e61a2469748b3fb2cedb1c1b345989",
|
|
35
|
+
"lockSchemaVersion": "1.0.0"
|
|
36
|
+
},
|
|
8
37
|
{
|
|
9
38
|
"schemaVersion": "1.0.0",
|
|
10
39
|
"suite": "core",
|
|
@@ -1,54 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"contractLock": {
|
|
3
|
-
"capabilitiesLocalHash": "
|
|
4
|
-
"capabilitiesRemoteTemplateHash": "
|
|
3
|
+
"capabilitiesLocalHash": "f32cfc6086146518a32b09865d658e4ab8d78c183fa1c8c75a34d25f56522847",
|
|
4
|
+
"capabilitiesRemoteTemplateHash": "b7281a9d3f89bb71f10ca88a6d1c5daa8de5d7f0af2ea01e6aa9d83f50d26308",
|
|
5
5
|
"commandDescriptorVersion": "1.4.3",
|
|
6
6
|
"documentationContentHash": "04ea57e91bca7b6bc5ceffba7efbec85766258004ed0e2d4b1cb111614c9fa44",
|
|
7
7
|
"documentationRegistryHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
8
8
|
"generatedArtifactHashes": {
|
|
9
|
-
"generatedCommandDescriptors": "
|
|
10
|
-
"generatedContractRegistry": "
|
|
11
|
-
"generatedManifest": "
|
|
12
|
-
"generatedMcpToolDefinitions": "
|
|
13
|
-
"pyCommandDescriptors": "
|
|
14
|
-
"pyContractRegistry": "
|
|
15
|
-
"pyManifest": "
|
|
16
|
-
"pyMcpToolDefinitions": "
|
|
17
|
-
"tsCommandDescriptors": "
|
|
18
|
-
"tsContractRegistry": "
|
|
19
|
-
"tsManifest": "
|
|
20
|
-
"tsMcpToolDefinitions": "
|
|
9
|
+
"generatedCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
10
|
+
"generatedContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
11
|
+
"generatedManifest": "5892bb7986c83172f681d0a67401a8add6fb7c25c22517b0f1921611e7f1ebbc",
|
|
12
|
+
"generatedMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714",
|
|
13
|
+
"pyCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
14
|
+
"pyContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
15
|
+
"pyManifest": "6043216fef4b4e14831d5e833a50e70d8b6af45eb664d0408dd843edcb9d8423",
|
|
16
|
+
"pyMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714",
|
|
17
|
+
"tsCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
18
|
+
"tsContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
19
|
+
"tsManifest": "37d74603bf2edfda0f3fed6fd9692738f48c15b60b8307b5621f65dce8049edd",
|
|
20
|
+
"tsMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714"
|
|
21
21
|
},
|
|
22
22
|
"generatedManifestCommandDescriptorVersion": "1.4.3",
|
|
23
23
|
"generatedManifestPackageVersion": "0.1.0-alpha.12",
|
|
24
24
|
"generatedManifestRegistryDigest": {
|
|
25
25
|
"canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
|
|
26
|
-
"commandDigestHash": "
|
|
27
|
-
"descriptorHash": "
|
|
26
|
+
"commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
|
|
27
|
+
"descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
28
28
|
"documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
29
|
-
"fullDescriptorHash": "
|
|
29
|
+
"fullDescriptorHash": "fea7dc2db724bb771dc7384fea07a15aaff2b3e76e2bee01276d2b3028ed4227",
|
|
30
30
|
"namespaceHash": "d7c4138d54769239bb561f9eb6de2c09d7e644b4bea878564b4cf10220eac4aa",
|
|
31
31
|
"policyProfilesHash": "f4013cc2b8fb7e2687c9b69d392196a7f35ea8b792777e3f15e0e1af5fdf8657",
|
|
32
32
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
33
33
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
34
34
|
"topLevelHash": "a18c159ccd1f83038658262fc79fabd8bfbcf79c024822e52a298ec6f4eaf8ae",
|
|
35
|
-
"trustDistributionHash": "
|
|
35
|
+
"trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
|
|
36
36
|
},
|
|
37
37
|
"generatedManifestVersion": "1.0.0",
|
|
38
38
|
"registryDigest": {
|
|
39
39
|
"canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
|
|
40
|
-
"commandDigestHash": "
|
|
41
|
-
"descriptorHash": "
|
|
40
|
+
"commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
|
|
41
|
+
"descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
42
42
|
"documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
43
|
-
"fullDescriptorHash": "
|
|
43
|
+
"fullDescriptorHash": "fea7dc2db724bb771dc7384fea07a15aaff2b3e76e2bee01276d2b3028ed4227",
|
|
44
44
|
"namespaceHash": "d7c4138d54769239bb561f9eb6de2c09d7e644b4bea878564b4cf10220eac4aa",
|
|
45
45
|
"policyProfilesHash": "f4013cc2b8fb7e2687c9b69d392196a7f35ea8b792777e3f15e0e1af5fdf8657",
|
|
46
46
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
47
47
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
48
48
|
"topLevelHash": "a18c159ccd1f83038658262fc79fabd8bfbcf79c024822e52a298ec6f4eaf8ae",
|
|
49
|
-
"trustDistributionHash": "
|
|
49
|
+
"trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
|
|
50
50
|
},
|
|
51
|
-
"schemaHash": "
|
|
51
|
+
"schemaHash": "210dba32d1a22d48c7c42cf43c8580dbce3f873a77d51569306181e274553e7e"
|
|
52
52
|
},
|
|
53
53
|
"contractLockMatchesExpected": true,
|
|
54
54
|
"contractLockMismatches": [],
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
]
|
|
285
285
|
},
|
|
286
286
|
"publication": {
|
|
287
|
-
"contractLockHash": "
|
|
287
|
+
"contractLockHash": "1a36d6b1fe50e92450dca25e93336d12dd59f40c83116107ac85db580cbe9ca7",
|
|
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": "44d421af67acdf2eb9ac6643619e703feb8286e18094284d07064dc436b6deed",
|
|
297
|
+
"suiteLockHash": "2654e044664482a96e94b9ed579077a998e61a2469748b3fb2cedb1c1b345989",
|
|
298
298
|
"suiteLockPath": "benchmarks/locks/core.lock.json"
|
|
299
299
|
},
|
|
300
300
|
"runtime": {
|
|
301
|
-
"packageVersion": "1.1.
|
|
301
|
+
"packageVersion": "1.1.96"
|
|
302
302
|
},
|
|
303
303
|
"scenarios": [
|
|
304
304
|
{
|
|
@@ -1,61 +1,61 @@
|
|
|
1
1
|
{
|
|
2
2
|
"contractLock": {
|
|
3
|
-
"capabilitiesLocalHash": "
|
|
4
|
-
"capabilitiesRemoteTemplateHash": "
|
|
3
|
+
"capabilitiesLocalHash": "f32cfc6086146518a32b09865d658e4ab8d78c183fa1c8c75a34d25f56522847",
|
|
4
|
+
"capabilitiesRemoteTemplateHash": "b7281a9d3f89bb71f10ca88a6d1c5daa8de5d7f0af2ea01e6aa9d83f50d26308",
|
|
5
5
|
"commandDescriptorVersion": "1.4.3",
|
|
6
6
|
"documentationContentHash": "04ea57e91bca7b6bc5ceffba7efbec85766258004ed0e2d4b1cb111614c9fa44",
|
|
7
7
|
"documentationRegistryHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
8
8
|
"generatedArtifactHashes": {
|
|
9
|
-
"generatedCommandDescriptors": "
|
|
10
|
-
"generatedContractRegistry": "
|
|
11
|
-
"generatedManifest": "
|
|
12
|
-
"generatedMcpToolDefinitions": "
|
|
13
|
-
"pyCommandDescriptors": "
|
|
14
|
-
"pyContractRegistry": "
|
|
15
|
-
"pyManifest": "
|
|
16
|
-
"pyMcpToolDefinitions": "
|
|
17
|
-
"tsCommandDescriptors": "
|
|
18
|
-
"tsContractRegistry": "
|
|
19
|
-
"tsManifest": "
|
|
20
|
-
"tsMcpToolDefinitions": "
|
|
9
|
+
"generatedCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
10
|
+
"generatedContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
11
|
+
"generatedManifest": "5892bb7986c83172f681d0a67401a8add6fb7c25c22517b0f1921611e7f1ebbc",
|
|
12
|
+
"generatedMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714",
|
|
13
|
+
"pyCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
14
|
+
"pyContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
15
|
+
"pyManifest": "6043216fef4b4e14831d5e833a50e70d8b6af45eb664d0408dd843edcb9d8423",
|
|
16
|
+
"pyMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714",
|
|
17
|
+
"tsCommandDescriptors": "5707271c45296033d908c3f818d5888454a1b12cd0ba16eb74ca013b71f11323",
|
|
18
|
+
"tsContractRegistry": "a5bec8bce5959dcd7e180c42e2d2f552e5b0ad335daa6ebc8bb77b682abbdd38",
|
|
19
|
+
"tsManifest": "37d74603bf2edfda0f3fed6fd9692738f48c15b60b8307b5621f65dce8049edd",
|
|
20
|
+
"tsMcpToolDefinitions": "6861ca32d964c31cfdcd503b282a18b6ec71e98e37b2c37705be3492473eb714"
|
|
21
21
|
},
|
|
22
22
|
"generatedManifestCommandDescriptorVersion": "1.4.3",
|
|
23
23
|
"generatedManifestPackageVersion": "0.1.0-alpha.12",
|
|
24
24
|
"generatedManifestRegistryDigest": {
|
|
25
25
|
"canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
|
|
26
|
-
"commandDigestHash": "
|
|
27
|
-
"descriptorHash": "
|
|
26
|
+
"commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
|
|
27
|
+
"descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
28
28
|
"documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
29
|
-
"fullDescriptorHash": "
|
|
29
|
+
"fullDescriptorHash": "fea7dc2db724bb771dc7384fea07a15aaff2b3e76e2bee01276d2b3028ed4227",
|
|
30
30
|
"namespaceHash": "d7c4138d54769239bb561f9eb6de2c09d7e644b4bea878564b4cf10220eac4aa",
|
|
31
31
|
"policyProfilesHash": "f4013cc2b8fb7e2687c9b69d392196a7f35ea8b792777e3f15e0e1af5fdf8657",
|
|
32
32
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
33
33
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
34
34
|
"topLevelHash": "a18c159ccd1f83038658262fc79fabd8bfbcf79c024822e52a298ec6f4eaf8ae",
|
|
35
|
-
"trustDistributionHash": "
|
|
35
|
+
"trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
|
|
36
36
|
},
|
|
37
37
|
"generatedManifestVersion": "1.0.0",
|
|
38
38
|
"registryDigest": {
|
|
39
39
|
"canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
|
|
40
|
-
"commandDigestHash": "
|
|
41
|
-
"descriptorHash": "
|
|
40
|
+
"commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
|
|
41
|
+
"descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
|
|
42
42
|
"documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
|
|
43
|
-
"fullDescriptorHash": "
|
|
43
|
+
"fullDescriptorHash": "fea7dc2db724bb771dc7384fea07a15aaff2b3e76e2bee01276d2b3028ed4227",
|
|
44
44
|
"namespaceHash": "d7c4138d54769239bb561f9eb6de2c09d7e644b4bea878564b4cf10220eac4aa",
|
|
45
45
|
"policyProfilesHash": "f4013cc2b8fb7e2687c9b69d392196a7f35ea8b792777e3f15e0e1af5fdf8657",
|
|
46
46
|
"principalTemplatesHash": "525835bb3c4710fa326e662e8a961e74de1798f4fb1bccb2a00be557ed037740",
|
|
47
47
|
"routedTopLevelHash": "02e98ac94f1eadbeded065bef652f8a917f108a8a08726ad7163503cc1b3384d",
|
|
48
48
|
"topLevelHash": "a18c159ccd1f83038658262fc79fabd8bfbcf79c024822e52a298ec6f4eaf8ae",
|
|
49
|
-
"trustDistributionHash": "
|
|
49
|
+
"trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
|
|
50
50
|
},
|
|
51
|
-
"schemaHash": "
|
|
51
|
+
"schemaHash": "210dba32d1a22d48c7c42cf43c8580dbce3f873a77d51569306181e274553e7e"
|
|
52
52
|
},
|
|
53
53
|
"publication": {
|
|
54
|
-
"contractLockHash": "
|
|
54
|
+
"contractLockHash": "1a36d6b1fe50e92450dca25e93336d12dd59f40c83116107ac85db580cbe9ca7",
|
|
55
55
|
"deterministic": true,
|
|
56
56
|
"grade": "release-grade",
|
|
57
57
|
"kind": "benchmark-contract-lock",
|
|
58
|
-
"lockDocumentHash": "
|
|
58
|
+
"lockDocumentHash": "73b0ad7ed798c7c691abcf2c93c130903d834c6f80f03665e1a2470aa4a2a088",
|
|
59
59
|
"suiteLockPath": "benchmarks/locks/core.lock.json"
|
|
60
60
|
},
|
|
61
61
|
"schemaVersion": "1.0.0",
|
|
@@ -1009,6 +1009,8 @@ const commandContracts = [
|
|
|
1009
1009
|
notes: [
|
|
1010
1010
|
'Use markets.create.plan to normalize a launch payload into a JSON-safe agent contract.',
|
|
1011
1011
|
'Legacy launch remains script-native; use markets.create.run for the canonical agent/MCP creation surface.',
|
|
1012
|
+
'Validation tickets are bound to the exact final payload. Any change to question, rules, sources, target timestamp, liquidity, market type, fee/curve params, or distribution requires a fresh ticket.',
|
|
1013
|
+
'If distribution flags are omitted, markets.create seeds a balanced 50/50 pool. Set explicit percentage flags for directional markets.',
|
|
1012
1014
|
],
|
|
1013
1015
|
},
|
|
1014
1016
|
mcp: {
|
|
@@ -1033,6 +1035,8 @@ const commandContracts = [
|
|
|
1033
1035
|
notes: [
|
|
1034
1036
|
'Use agent.market.autocomplete when the question, rules, or target timestamp still need refinement before creation.',
|
|
1035
1037
|
'markets.create.plan is the canonical JSON-safe planning surface; legacy launch remains script-native.',
|
|
1038
|
+
'The emitted validation ticket is bound to the exact final payload. Any change to question, rules, sources, target timestamp, liquidity, market type, fee/curve params, or distribution requires a fresh validation pass.',
|
|
1039
|
+
'If distribution flags are omitted, markets.create seeds a balanced 50/50 pool. Set explicit percentage flags for directional markets.',
|
|
1036
1040
|
],
|
|
1037
1041
|
},
|
|
1038
1042
|
mcp: {
|
|
@@ -1083,6 +1087,8 @@ const commandContracts = [
|
|
|
1083
1087
|
notes: [
|
|
1084
1088
|
'Run agent.market.validate on the exact final market payload before execute mode.',
|
|
1085
1089
|
'Legacy launch remains script-native; markets.create.run is the canonical agent/MCP market creation surface.',
|
|
1090
|
+
'Validation tickets are bound to the exact final payload. Any change to question, rules, sources, target timestamp, liquidity, market type, fee/curve params, or distribution requires a fresh ticket.',
|
|
1091
|
+
'If distribution flags are omitted, markets.create seeds a balanced 50/50 pool. Set explicit percentage flags for directional markets.',
|
|
1086
1092
|
],
|
|
1087
1093
|
},
|
|
1088
1094
|
mcp: {
|
|
@@ -2970,7 +2976,7 @@ const commandContracts = [
|
|
|
2970
2976
|
name: 'mirror.deploy',
|
|
2971
2977
|
summary: 'Deploy a mirror market from selector or plan in dry-run or execute mode.',
|
|
2972
2978
|
usage:
|
|
2973
|
-
'pandora [--output table|json] mirror deploy --plan-file <path>|--polymarket-market-id <id>|--polymarket-slug <slug> --dry-run|--execute [--liquidity-usdc <n>] [--fee-tier <500-50000>] [--max-imbalance <n>] [--arbiter <address>] [--category <id|name>] [--chain-id <id>] [--rpc-url <url>] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--oracle <address>] [--factory <address>] [--usdc <address>] [--distribution-yes <parts>] [--distribution-no <parts>] [--sources <url...>] [--validation-ticket <ticket>] [--target-timestamp <unix|iso>] [--manifest-file <path>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--min-close-lead-seconds <n>]',
|
|
2979
|
+
'pandora [--output table|json] mirror deploy --plan-file <path>|--polymarket-market-id <id>|--polymarket-slug <slug> --dry-run|--execute [--liquidity-usdc <n>] [--fee-tier <500-50000>] [--max-imbalance <n>] [--arbiter <address>] [--category <id|name>] [--chain-id <id>] [--rpc-url <url>] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--oracle <address>] [--factory <address>] [--usdc <address>] [--distribution-yes <parts>] [--distribution-no <parts>] [--distribution-yes-pct <pct>] [--distribution-no-pct <pct>] [--sources <url...>] [--validation-ticket <ticket>] [--target-timestamp <unix|iso>] [--manifest-file <path>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--min-close-lead-seconds <n>]',
|
|
2974
2980
|
emits: ['mirror.deploy', 'mirror.deploy.help'],
|
|
2975
2981
|
dataSchema: '#/definitions/MirrorDeployPayload',
|
|
2976
2982
|
mcpExposed: true,
|
|
@@ -2981,12 +2987,13 @@ const commandContracts = [
|
|
|
2981
2987
|
notes: [
|
|
2982
2988
|
'Mirror deploy dry-run returns the exact Pandora deployment payload and required validation ticket.',
|
|
2983
2989
|
'Mirror deploy never auto-copies Polymarket URLs into sources; pass independent public resolution URLs with --sources.',
|
|
2984
|
-
'Run agent.market.validate on that final payload before rerunning mirror.deploy with execute mode, then pass --validation-ticket locally or agentPreflight in MCP.',
|
|
2990
|
+
'Run agent.market.validate on that exact final payload before rerunning mirror.deploy with execute mode, then pass --validation-ticket locally or agentPreflight in MCP.',
|
|
2991
|
+
'Validation tickets are bound to the exact final deploy payload. Any change to question, rules, sources, target timestamp, liquidity, fee params, or distribution requires a fresh validation pass.',
|
|
2985
2992
|
],
|
|
2986
2993
|
},
|
|
2987
2994
|
mcp: {
|
|
2988
2995
|
command: ['mirror', 'deploy'],
|
|
2989
|
-
description: 'Dry-run or execute mirror deployment.',
|
|
2996
|
+
description: 'Dry-run or execute mirror deployment. Execute mode expects a validation ticket for the exact final deploy payload.',
|
|
2990
2997
|
inputSchema: buildInputSchema({
|
|
2991
2998
|
includeIntent: true,
|
|
2992
2999
|
flagProperties: {
|
|
@@ -3010,6 +3017,8 @@ const commandContracts = [
|
|
|
3010
3017
|
usdc: stringSchema('USDC token address.'),
|
|
3011
3018
|
'distribution-yes': numberSchema('Initial YES distribution parts.', { minimum: 0 }),
|
|
3012
3019
|
'distribution-no': numberSchema('Initial NO distribution parts.', { minimum: 0 }),
|
|
3020
|
+
'distribution-yes-pct': numberSchema('Initial YES distribution percent.', { minimum: 0, maximum: 100 }),
|
|
3021
|
+
'distribution-no-pct': numberSchema('Initial NO distribution percent.', { minimum: 0, maximum: 100 }),
|
|
3013
3022
|
sources: flexibleArraySchema(stringSchema(), 'Source URL list.'),
|
|
3014
3023
|
'validation-ticket': stringSchema('Ticket returned by agent.market.validate for the exact final payload (CLI execute mode).'),
|
|
3015
3024
|
'target-timestamp': buildTargetTimestampSchema('Explicit target timestamp override.'),
|
|
@@ -3289,6 +3298,7 @@ const commandContracts = [
|
|
|
3289
3298
|
'Mirror go inherits the exact market payload from its deploy stage; use the returned validation ticket from paper/dry-run output.',
|
|
3290
3299
|
'When mirror go will execute a fresh deploy, provide independent public --sources and a matching validation ticket.',
|
|
3291
3300
|
'Run agent.market.validate on that exact payload before rerunning mirror.go with execute or execute-live.',
|
|
3301
|
+
'Validation tickets are bound to the exact final deploy payload. Any change to question, rules, sources, target timestamp, liquidity, fee params, or distribution requires a fresh validation pass.',
|
|
3292
3302
|
'Private-routing flags affect only the Ethereum Pandora rebalance leg. They do not make the Polygon hedge leg atomic.',
|
|
3293
3303
|
],
|
|
3294
3304
|
},
|
|
@@ -3392,6 +3402,15 @@ const commandContracts = [
|
|
|
3392
3402
|
emits: ['mirror.sync.once', 'mirror.sync.help'],
|
|
3393
3403
|
dataSchema: '#/definitions/MirrorStatusPayload',
|
|
3394
3404
|
mcpExposed: true,
|
|
3405
|
+
agentWorkflow: {
|
|
3406
|
+
requiredTools: [],
|
|
3407
|
+
recommendedTools: ['mirror.panic'],
|
|
3408
|
+
executeRequiresValidation: false,
|
|
3409
|
+
notes: [
|
|
3410
|
+
'The default mirror stop file is ~/.pandora/mirror/STOP. Its presence intentionally blocks local mirror sync starts and ticks until cleared.',
|
|
3411
|
+
'Use mirror.panic clear mode after incident review, or remove the stop file manually only if you know the emergency lock is stale.',
|
|
3412
|
+
],
|
|
3413
|
+
},
|
|
3395
3414
|
mcp: {
|
|
3396
3415
|
command: ['mirror', 'sync', 'once'],
|
|
3397
3416
|
description: 'Execute one mirror sync tick. Rebalance-route flags affect only the Ethereum Pandora leg. Snapshot/action payloads expose reserveSource and rebalance sizing provenance.',
|
|
@@ -3466,6 +3485,15 @@ const commandContracts = [
|
|
|
3466
3485
|
emits: ['mirror.sync.run', 'mirror.sync.help'],
|
|
3467
3486
|
dataSchema: '#/definitions/MirrorStatusPayload',
|
|
3468
3487
|
mcpExposed: true,
|
|
3488
|
+
agentWorkflow: {
|
|
3489
|
+
requiredTools: [],
|
|
3490
|
+
recommendedTools: ['mirror.panic'],
|
|
3491
|
+
executeRequiresValidation: false,
|
|
3492
|
+
notes: [
|
|
3493
|
+
'The default mirror stop file is ~/.pandora/mirror/STOP. Its presence intentionally blocks local mirror sync starts and ticks until cleared.',
|
|
3494
|
+
'Use mirror.panic clear mode after incident review, or remove the stop file manually only if you know the emergency lock is stale.',
|
|
3495
|
+
],
|
|
3496
|
+
},
|
|
3469
3497
|
mcp: {
|
|
3470
3498
|
command: ['mirror', 'sync', 'run'],
|
|
3471
3499
|
description: 'Continuous mirror sync loop. Rebalance-route flags affect only the Ethereum Pandora leg. Snapshot/action payloads expose reserveSource and rebalance sizing provenance. Long-running execution remains blocked in MCP v1, and live mutation requires intent.execute with execute or execute-live.',
|
|
@@ -3536,7 +3564,7 @@ const commandContracts = [
|
|
|
3536
3564
|
executeFlags: ['--execute-live', '--execute'],
|
|
3537
3565
|
},
|
|
3538
3566
|
}),
|
|
3539
|
-
|
|
3567
|
+
commandContract({
|
|
3540
3568
|
name: 'mirror.sync.start',
|
|
3541
3569
|
summary: 'Start detached mirror sync daemon for separate Pandora rebalance and Polymarket hedge legs. Rebalance-route flags affect only the Ethereum Pandora leg; cross-venue settlement is not atomic.',
|
|
3542
3570
|
usage:
|
|
@@ -3544,6 +3572,15 @@ const commandContracts = [
|
|
|
3544
3572
|
emits: ['mirror.sync.start', 'mirror.sync.help'],
|
|
3545
3573
|
dataSchema: '#/definitions/MirrorStatusPayload',
|
|
3546
3574
|
mcpExposed: true,
|
|
3575
|
+
agentWorkflow: {
|
|
3576
|
+
requiredTools: [],
|
|
3577
|
+
recommendedTools: ['mirror.panic'],
|
|
3578
|
+
executeRequiresValidation: false,
|
|
3579
|
+
notes: [
|
|
3580
|
+
'The default mirror stop file is ~/.pandora/mirror/STOP. Its presence intentionally blocks local mirror sync starts and ticks until cleared.',
|
|
3581
|
+
'Use mirror.panic clear mode after incident review, or remove the stop file manually only if you know the emergency lock is stale.',
|
|
3582
|
+
],
|
|
3583
|
+
},
|
|
3547
3584
|
mcp: {
|
|
3548
3585
|
command: ['mirror', 'sync', 'start'],
|
|
3549
3586
|
description: 'Start detached mirror sync daemon. Rebalance-route flags affect only the Ethereum Pandora leg. Snapshot/action payloads expose reserveSource and rebalance sizing provenance. Detached execution remains blocked in MCP v1, and live mutation requires intent.execute with execute or execute-live.',
|
|
@@ -3709,15 +3746,24 @@ const commandContracts = [
|
|
|
3709
3746
|
}),
|
|
3710
3747
|
commandContract({
|
|
3711
3748
|
name: 'mirror.panic',
|
|
3712
|
-
summary: 'Engage or clear the global risk panic lock while writing mirror stop
|
|
3749
|
+
summary: 'Engage or clear the global risk panic lock while writing the default ~/.pandora/mirror/STOP stop file and attempting daemon stop for the selected mirror scope.',
|
|
3713
3750
|
usage:
|
|
3714
3751
|
'pandora [--output table|json] mirror panic --pid-file <path>|--strategy-hash <hash>|--market-address <address>|--all [--risk-file <path>] [--reason <text>] [--actor <id>] [--clear]',
|
|
3715
3752
|
emits: ['mirror.panic', 'mirror.panic.help'],
|
|
3716
3753
|
dataSchema: GENERIC_DATA_SCHEMA_REF,
|
|
3717
3754
|
mcpExposed: true,
|
|
3755
|
+
agentWorkflow: {
|
|
3756
|
+
requiredTools: [],
|
|
3757
|
+
recommendedTools: ['mirror.health'],
|
|
3758
|
+
executeRequiresValidation: false,
|
|
3759
|
+
notes: [
|
|
3760
|
+
'Engage mode writes the default ~/.pandora/mirror/STOP stop file, which intentionally blocks local mirror daemons until cleared.',
|
|
3761
|
+
'Use clear mode after incident review to remove the default stop file and release local mirror automation.',
|
|
3762
|
+
],
|
|
3763
|
+
},
|
|
3718
3764
|
mcp: {
|
|
3719
3765
|
command: ['mirror', 'panic'],
|
|
3720
|
-
description: 'Engage or clear global risk panic while applying mirror stop-file and daemon-stop emergency flow for the selected scope.',
|
|
3766
|
+
description: 'Engage or clear global risk panic while applying the default ~/.pandora/mirror/STOP stop-file and daemon-stop emergency flow for the selected scope.',
|
|
3721
3767
|
inputSchema: buildInputSchema({
|
|
3722
3768
|
includeIntent: true,
|
|
3723
3769
|
flagProperties: {
|
|
@@ -36,15 +36,21 @@ function buildRuntimeDefaults(options = {}) {
|
|
|
36
36
|
function buildCreateHelp(commandHelpPayload) {
|
|
37
37
|
const usage =
|
|
38
38
|
'pandora [--output table|json] markets create plan|run --question <text> --rules <text> --sources <url...> --target-timestamp <unix-seconds> [--market-type amm|parimutuel]';
|
|
39
|
+
const notes = [
|
|
40
|
+
'markets create is the canonical JSON/MCP-safe standalone Pandora market creation surface.',
|
|
41
|
+
'Use `markets create plan` to normalize the market template and required validation ticket before execution.',
|
|
42
|
+
'Use `markets create run` for dry-run or execute. Execute mode requires prior `agent market validate` attestation.',
|
|
43
|
+
'Validation tickets are bound to the exact final payload: question, rules, sources, target timestamp, liquidity, market type, fee/curve params, and distribution. Any change requires a fresh ticket.',
|
|
44
|
+
'If you omit distribution flags, markets create seeds a balanced 50/50 pool. Set `--distribution-yes-pct` and `--distribution-no-pct` explicitly for directional markets.',
|
|
45
|
+
'Legacy `launch` remains script-native; `markets create` is the canonical agent-facing replacement.',
|
|
46
|
+
];
|
|
39
47
|
return {
|
|
40
48
|
command: 'markets.create.help',
|
|
41
|
-
payload: commandHelpPayload(usage,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
]),
|
|
47
|
-
table: `Usage: ${usage}`,
|
|
49
|
+
payload: commandHelpPayload(usage, notes),
|
|
50
|
+
table: {
|
|
51
|
+
usage,
|
|
52
|
+
notes,
|
|
53
|
+
},
|
|
48
54
|
};
|
|
49
55
|
}
|
|
50
56
|
|
|
@@ -77,6 +83,8 @@ function buildCreatePlanPayload(normalizedArgs, options, resolvedRuntime, requir
|
|
|
77
83
|
normalizedArgs.marketType === 'parimutuel'
|
|
78
84
|
? 'Pari-mutuel creation uses curveFlattener/curveOffset instead of AMM feeTier/maxImbalance.'
|
|
79
85
|
: 'AMM creation uses feeTier/maxImbalance instead of pari-mutuel curve parameters.',
|
|
86
|
+
'Validation tickets are bound to the exact final payload. Changing question, rules, sources, targetTimestamp, liquidity, fee/curve params, or distribution requires a fresh validation pass.',
|
|
87
|
+
'If you omit distribution flags, markets create seeds a balanced 50/50 pool. Set explicit distribution percentages for directional markets.',
|
|
80
88
|
'Legacy launch remains available for script-native flows, but markets create is the canonical JSON/MCP-safe path.',
|
|
81
89
|
],
|
|
82
90
|
};
|
|
@@ -145,7 +153,15 @@ function createRunMarketsCreateCommand(deps) {
|
|
|
145
153
|
emitSuccess(context.outputMode, help.command, help.payload);
|
|
146
154
|
} else {
|
|
147
155
|
// eslint-disable-next-line no-console
|
|
148
|
-
console.log(help.table);
|
|
156
|
+
console.log(`Usage: ${help.table.usage}`);
|
|
157
|
+
// eslint-disable-next-line no-console
|
|
158
|
+
console.log('');
|
|
159
|
+
// eslint-disable-next-line no-console
|
|
160
|
+
console.log('Notes:');
|
|
161
|
+
for (const note of help.table.notes) {
|
|
162
|
+
// eslint-disable-next-line no-console
|
|
163
|
+
console.log(`- ${note}`);
|
|
164
|
+
}
|
|
149
165
|
}
|
|
150
166
|
return;
|
|
151
167
|
}
|