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.
Files changed (30) hide show
  1. package/benchmarks/latest/core-bundle.json +60 -31
  2. package/benchmarks/latest/core-history.json +32 -3
  3. package/benchmarks/latest/core-report.json +27 -27
  4. package/benchmarks/locks/core.lock.json +25 -25
  5. package/cli/lib/agent_contract_registry.cjs +52 -6
  6. package/cli/lib/arb_command_service.cjs +0 -1
  7. package/cli/lib/markets_create_command_service.cjs +24 -8
  8. package/cli/lib/mcp_http_gateway_service.cjs +22 -3
  9. package/cli/lib/mcp_protocol_service.cjs +439 -7
  10. package/cli/lib/mcp_server_service.cjs +14 -5
  11. package/cli/lib/mirror_command_service.cjs +5 -1
  12. package/cli/lib/mirror_handlers/deploy.cjs +14 -6
  13. package/cli/lib/mirror_handlers/go.cjs +11 -1
  14. package/cli/lib/mirror_handlers/panic.cjs +1 -0
  15. package/cli/lib/mirror_handlers/sync.cjs +8 -0
  16. package/cli/lib/schema_command_service.cjs +4 -0
  17. package/docs/benchmarks/history.json +32 -3
  18. package/package.json +1 -1
  19. package/sdk/generated/command-descriptors.json +71 -11
  20. package/sdk/generated/contract-registry.json +382 -80
  21. package/sdk/generated/manifest.json +9 -9
  22. package/sdk/generated/mcp-tool-definitions.json +188 -32
  23. package/sdk/python/pandora_agent/generated/command-descriptors.json +71 -11
  24. package/sdk/python/pandora_agent/generated/contract-registry.json +381 -79
  25. package/sdk/python/pandora_agent/generated/manifest.json +7 -7
  26. package/sdk/python/pandora_agent/generated/mcp-tool-definitions.json +188 -32
  27. package/sdk/typescript/generated/command-descriptors.json +71 -11
  28. package/sdk/typescript/generated/contract-registry.json +381 -79
  29. package/sdk/typescript/generated/manifest.json +7 -7
  30. 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-10T21:38:15.676Z",
4
+ "generatedAt": "2026-03-11T16:16:10.699Z",
5
5
  "package": {
6
6
  "name": "pandora-cli-skills",
7
- "version": "1.1.94"
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": "d80f65d94e7e402067fb9421d676089dfaafdf02c9230b0c363f6fe4c67ca836",
15
- "lockSha256": "5bf331587c8ec8fdb7cc0fc1628c37144cd8f99f1a5cd6c5f9dd644467066c1b"
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.94"
147
+ "packageVersion": "1.1.96"
148
148
  },
149
149
  "contractLock": {
150
- "capabilitiesLocalHash": "d3175fe7e0dee9b49b40421781bee5f54a622cacbe8d92715676c538baeb889a",
151
- "capabilitiesRemoteTemplateHash": "f89903c50127ea66cd09b2f26f7c85eaedb8d11bc2e48d85c7cf12d169fc0d73",
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": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
157
- "generatedContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
158
- "generatedManifest": "40d2f631c86f0fa892d0455315ea0ca7cc92dd9e06ab0f0a27a401d2acf6af3e",
159
- "generatedMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b",
160
- "pyCommandDescriptors": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
161
- "pyContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
162
- "pyManifest": "eaab6f64a678efb4568ad2977f96d65a15cf62285a38674d5206028cac0e2943",
163
- "pyMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b",
164
- "tsCommandDescriptors": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
165
- "tsContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
166
- "tsManifest": "bdf46436e3eb11eab31cf1f75f6e423670949ff3c45751a704018d26aa60b8d3",
167
- "tsMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b"
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": "9cec45f18012a88251934c8befae6d0831f71e3ac121ac7573fdab1bf7ffe768",
174
- "descriptorHash": "f554e5ecd337d3d06e6847e9c1e28895675c22b2b52024fb526b247fd488530f",
173
+ "commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
174
+ "descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
175
175
  "documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
176
- "fullDescriptorHash": "068f4fdbf03d2b43cb213600a700a0ca4b5fd3cce6786f8e30bc952a55acb5e0",
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": "70d16826a7d5eb18a063c613646e68716d2e1a8677cc9f29f85792174376651b"
182
+ "trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
183
183
  },
184
184
  "generatedManifestVersion": "1.0.0",
185
185
  "registryDigest": {
186
186
  "canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
187
- "commandDigestHash": "9cec45f18012a88251934c8befae6d0831f71e3ac121ac7573fdab1bf7ffe768",
188
- "descriptorHash": "f554e5ecd337d3d06e6847e9c1e28895675c22b2b52024fb526b247fd488530f",
187
+ "commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
188
+ "descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
189
189
  "documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
190
- "fullDescriptorHash": "068f4fdbf03d2b43cb213600a700a0ca4b5fd3cce6786f8e30bc952a55acb5e0",
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": "70d16826a7d5eb18a063c613646e68716d2e1a8677cc9f29f85792174376651b"
196
+ "trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
197
197
  },
198
- "schemaHash": "53b4ab2938a719250a5b2ad2d50cb29663d6caf64b0dfb609a3309a158ccbac1"
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-10T21:38:15.676Z",
206
- "latestVersion": "1.1.94",
207
- "latestGeneratedAt": "2026-03-10T21:38:15.676Z",
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-10T21:38:15.676Z",
5
- "latestVersion": "1.1.94",
6
- "latestGeneratedAt": "2026-03-10T21:38:15.676Z",
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": "d3175fe7e0dee9b49b40421781bee5f54a622cacbe8d92715676c538baeb889a",
4
- "capabilitiesRemoteTemplateHash": "f89903c50127ea66cd09b2f26f7c85eaedb8d11bc2e48d85c7cf12d169fc0d73",
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": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
10
- "generatedContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
11
- "generatedManifest": "40d2f631c86f0fa892d0455315ea0ca7cc92dd9e06ab0f0a27a401d2acf6af3e",
12
- "generatedMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b",
13
- "pyCommandDescriptors": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
14
- "pyContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
15
- "pyManifest": "eaab6f64a678efb4568ad2977f96d65a15cf62285a38674d5206028cac0e2943",
16
- "pyMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b",
17
- "tsCommandDescriptors": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
18
- "tsContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
19
- "tsManifest": "bdf46436e3eb11eab31cf1f75f6e423670949ff3c45751a704018d26aa60b8d3",
20
- "tsMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b"
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": "9cec45f18012a88251934c8befae6d0831f71e3ac121ac7573fdab1bf7ffe768",
27
- "descriptorHash": "f554e5ecd337d3d06e6847e9c1e28895675c22b2b52024fb526b247fd488530f",
26
+ "commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
27
+ "descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
28
28
  "documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
29
- "fullDescriptorHash": "068f4fdbf03d2b43cb213600a700a0ca4b5fd3cce6786f8e30bc952a55acb5e0",
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": "70d16826a7d5eb18a063c613646e68716d2e1a8677cc9f29f85792174376651b"
35
+ "trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
36
36
  },
37
37
  "generatedManifestVersion": "1.0.0",
38
38
  "registryDigest": {
39
39
  "canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
40
- "commandDigestHash": "9cec45f18012a88251934c8befae6d0831f71e3ac121ac7573fdab1bf7ffe768",
41
- "descriptorHash": "f554e5ecd337d3d06e6847e9c1e28895675c22b2b52024fb526b247fd488530f",
40
+ "commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
41
+ "descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
42
42
  "documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
43
- "fullDescriptorHash": "068f4fdbf03d2b43cb213600a700a0ca4b5fd3cce6786f8e30bc952a55acb5e0",
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": "70d16826a7d5eb18a063c613646e68716d2e1a8677cc9f29f85792174376651b"
49
+ "trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
50
50
  },
51
- "schemaHash": "53b4ab2938a719250a5b2ad2d50cb29663d6caf64b0dfb609a3309a158ccbac1"
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": "b29c6795568abaaaa1300f0f532af5b38945dc8ec65317ee4d89d42f6c87641e",
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": "86e2db32136a1f90f017fdb3789cbfec9cc9ae1f30452f94ae4298ae58dea13a",
297
- "suiteLockHash": "5bf331587c8ec8fdb7cc0fc1628c37144cd8f99f1a5cd6c5f9dd644467066c1b",
296
+ "scorecardHash": "44d421af67acdf2eb9ac6643619e703feb8286e18094284d07064dc436b6deed",
297
+ "suiteLockHash": "2654e044664482a96e94b9ed579077a998e61a2469748b3fb2cedb1c1b345989",
298
298
  "suiteLockPath": "benchmarks/locks/core.lock.json"
299
299
  },
300
300
  "runtime": {
301
- "packageVersion": "1.1.94"
301
+ "packageVersion": "1.1.96"
302
302
  },
303
303
  "scenarios": [
304
304
  {
@@ -1,61 +1,61 @@
1
1
  {
2
2
  "contractLock": {
3
- "capabilitiesLocalHash": "d3175fe7e0dee9b49b40421781bee5f54a622cacbe8d92715676c538baeb889a",
4
- "capabilitiesRemoteTemplateHash": "f89903c50127ea66cd09b2f26f7c85eaedb8d11bc2e48d85c7cf12d169fc0d73",
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": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
10
- "generatedContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
11
- "generatedManifest": "40d2f631c86f0fa892d0455315ea0ca7cc92dd9e06ab0f0a27a401d2acf6af3e",
12
- "generatedMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b",
13
- "pyCommandDescriptors": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
14
- "pyContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
15
- "pyManifest": "eaab6f64a678efb4568ad2977f96d65a15cf62285a38674d5206028cac0e2943",
16
- "pyMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b",
17
- "tsCommandDescriptors": "72980892a9c96c167f7ad11d82bd4a88ff92eaa0bbfa56fdfdafbd738435b47f",
18
- "tsContractRegistry": "063015426426a7b5f5d5a618428bf4e1072cd233032fd597fc3c289a3b3bd3ae",
19
- "tsManifest": "bdf46436e3eb11eab31cf1f75f6e423670949ff3c45751a704018d26aa60b8d3",
20
- "tsMcpToolDefinitions": "80fe9e9bceefa5b79449f22bfad878f23f3fddbed9a8092b6d8bc8ba8dbc273b"
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": "9cec45f18012a88251934c8befae6d0831f71e3ac121ac7573fdab1bf7ffe768",
27
- "descriptorHash": "f554e5ecd337d3d06e6847e9c1e28895675c22b2b52024fb526b247fd488530f",
26
+ "commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
27
+ "descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
28
28
  "documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
29
- "fullDescriptorHash": "068f4fdbf03d2b43cb213600a700a0ca4b5fd3cce6786f8e30bc952a55acb5e0",
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": "70d16826a7d5eb18a063c613646e68716d2e1a8677cc9f29f85792174376651b"
35
+ "trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
36
36
  },
37
37
  "generatedManifestVersion": "1.0.0",
38
38
  "registryDigest": {
39
39
  "canonicalHash": "f0a183669ee134dcb771badc5a2b7cab53e9ef46af78e5a424ed384a6457d9ae",
40
- "commandDigestHash": "9cec45f18012a88251934c8befae6d0831f71e3ac121ac7573fdab1bf7ffe768",
41
- "descriptorHash": "f554e5ecd337d3d06e6847e9c1e28895675c22b2b52024fb526b247fd488530f",
40
+ "commandDigestHash": "1856636c6b4769113a869092c96f16f4063a122687a50c9659d418a44b315df7",
41
+ "descriptorHash": "fe1c08f83d984cf55dc3224d82d03831fba23edf4769c319d9647837a0a98617",
42
42
  "documentationHash": "f0e708b171edbc6f5bcd53962d7d4d0d5a6ea1b6f95af4e89f4e8f7943d3fb87",
43
- "fullDescriptorHash": "068f4fdbf03d2b43cb213600a700a0ca4b5fd3cce6786f8e30bc952a55acb5e0",
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": "70d16826a7d5eb18a063c613646e68716d2e1a8677cc9f29f85792174376651b"
49
+ "trustDistributionHash": "86bbe519585159bde81b650ea18ac49b9a0e1ed2bef5d33073adb4c4cb3df53f"
50
50
  },
51
- "schemaHash": "53b4ab2938a719250a5b2ad2d50cb29663d6caf64b0dfb609a3309a158ccbac1"
51
+ "schemaHash": "210dba32d1a22d48c7c42cf43c8580dbce3f873a77d51569306181e274553e7e"
52
52
  },
53
53
  "publication": {
54
- "contractLockHash": "b29c6795568abaaaa1300f0f532af5b38945dc8ec65317ee4d89d42f6c87641e",
54
+ "contractLockHash": "1a36d6b1fe50e92450dca25e93336d12dd59f40c83116107ac85db580cbe9ca7",
55
55
  "deterministic": true,
56
56
  "grade": "release-grade",
57
57
  "kind": "benchmark-contract-lock",
58
- "lockDocumentHash": "f9734ec2e08bd04b21f529b9020d4bad5f7665060234e9582d1faa24d4b85366",
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
- commandContract({
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 files and attempting daemon stop for the selected mirror scope.',
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: {
@@ -14,7 +14,6 @@ const ARB_MARKET_FIELDS = [
14
14
  'pollAddress',
15
15
  'marketCloseTimestamp',
16
16
  'yesChance',
17
- 'yesPct',
18
17
  'reserveYes',
19
18
  'reserveNo',
20
19
  'totalVolume',
@@ -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
- 'markets create is the canonical JSON/MCP-safe standalone Pandora market creation surface.',
43
- 'Use `markets create plan` to normalize the market template and required validation ticket before execution.',
44
- 'Use `markets create run` for dry-run or execute. Execute mode requires prior `agent market validate` attestation.',
45
- 'Legacy `launch` remains script-native; `markets create` is the canonical agent-facing replacement.',
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
  }