@thisispandora/agent-sdk 0.1.0-alpha.3 → 0.1.0-alpha.5

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.
@@ -3532,7 +3532,7 @@
3532
3532
  "summary": "Mirror command family help and routing entrypoint.",
3533
3533
  "supportsRemote": false,
3534
3534
  "supportsWebhook": false,
3535
- "usage": "pandora [--output table|json] mirror browse|plan|deploy|verify|lp-explain|hedge-calc|calc|simulate|go|sync|dashboard|status|health|panic|drift|hedge-check|pnl|audit|close ..."
3535
+ "usage": "pandora [--output table|json] mirror browse|plan|deploy|verify|lp-explain|hedge-calc|calc|simulate|go|sync|dashboard|status|health|panic|drift|hedge-check|pnl|audit|replay|trace|logs|close ..."
3536
3536
  },
3537
3537
  "mirror.audit": {
3538
3538
  "agentWorkflow": null,
@@ -3543,7 +3543,7 @@
3543
3543
  "audit"
3544
3544
  ],
3545
3545
  "canonicalTool": "mirror.audit",
3546
- "canonicalUsage": "pandora [--output table|json] mirror audit --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--with-live] [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]",
3546
+ "canonicalUsage": "pandora [--output table|json] mirror audit --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--reconciled] [--with-live] [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]",
3547
3547
  "controlInputNames": [],
3548
3548
  "dataSchema": "#/definitions/MirrorAuditPayload",
3549
3549
  "emits": [
@@ -4125,6 +4125,10 @@
4125
4125
  "description": "Polymarket slug.",
4126
4126
  "type": "string"
4127
4127
  },
4128
+ "reconciled": {
4129
+ "description": "Attach the normalized reconciled ledger beside the append-only operational audit payload.",
4130
+ "type": "boolean"
4131
+ },
4128
4132
  "state-file": {
4129
4133
  "description": "State file path.",
4130
4134
  "type": "string"
@@ -4172,10 +4176,10 @@
4172
4176
  "riskLevel": "low",
4173
4177
  "safeEquivalent": null,
4174
4178
  "safeFlags": [],
4175
- "summary": "Read the mirror audit ledger with optional live context, preferring the append-only audit log when available.",
4179
+ "summary": "Read the canonical mirror audit ledger surface. `--reconciled` adds a normalized cross-venue ledger with provenance and export-ready rows beside the append-only operational audit log.",
4176
4180
  "supportsRemote": true,
4177
4181
  "supportsWebhook": false,
4178
- "usage": "pandora [--output table|json] mirror audit --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--with-live] [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]"
4182
+ "usage": "pandora [--output table|json] mirror audit --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--reconciled] [--with-live] [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]"
4179
4183
  },
4180
4184
  "mirror.browse": {
4181
4185
  "agentWorkflow": null,
@@ -7254,7 +7258,8 @@
7254
7258
  "notes": [
7255
7259
  "Mirror go inherits the exact market payload from its deploy stage; use the returned validation ticket from paper/dry-run output.",
7256
7260
  "When mirror go will execute a fresh deploy, provide independent public --sources and a matching validation ticket.",
7257
- "Run agent.market.validate on that exact payload before rerunning mirror.go with execute or execute-live."
7261
+ "Run agent.market.validate on that exact payload before rerunning mirror.go with execute or execute-live.",
7262
+ "Private-routing flags affect only the Ethereum Pandora rebalance leg. They do not make the Polygon hedge leg atomic."
7258
7263
  ],
7259
7264
  "recommendedTools": [
7260
7265
  "agent.market.autocomplete"
@@ -7270,7 +7275,7 @@
7270
7275
  "go"
7271
7276
  ],
7272
7277
  "canonicalTool": "mirror.go",
7273
- "canonicalUsage": "pandora [--output table|json] mirror go --polymarket-market-id <id>|--polymarket-slug <slug> [--liquidity-usdc <n>] [--fee-tier <500-50000>] [--max-imbalance <n>] [--arbiter <address>] [--category <id|name>] [--paper|--dry-run|--execute-live|--execute] [--auto-sync] [--sync-once] [--sync-interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--strict-close-time-delta] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--oracle <address>] [--factory <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>] [--trust-deploy] [--skip-gate] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--with-rules] [--include-similarity] [--min-close-lead-seconds <n>] [--dotenv-path <path>]",
7278
+ "canonicalUsage": "pandora [--output table|json] mirror go --polymarket-market-id <id>|--polymarket-slug <slug> [--liquidity-usdc <n>] [--fee-tier <500-50000>] [--max-imbalance <n>] [--arbiter <address>] [--category <id|name>] [--paper|--dry-run|--execute-live|--execute] [--auto-sync] [--sync-once] [--sync-interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--strict-close-time-delta] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--oracle <address>] [--factory <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>] [--trust-deploy] [--skip-gate] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--with-rules] [--include-similarity] [--min-close-lead-seconds <n>] [--dotenv-path <path>]",
7274
7279
  "controlInputNames": [
7275
7280
  "agentPreflight"
7276
7281
  ],
@@ -7995,6 +8000,19 @@
7995
8000
  "minimum": 500,
7996
8001
  "type": "integer"
7997
8002
  },
8003
+ "flashbots-auth-key": {
8004
+ "description": "Optional Flashbots auth key or signer reference for the Ethereum Pandora rebalance leg.",
8005
+ "type": "string"
8006
+ },
8007
+ "flashbots-relay-url": {
8008
+ "description": "Optional Flashbots/private relay URL for the Ethereum Pandora rebalance leg.",
8009
+ "type": "string"
8010
+ },
8011
+ "flashbots-target-block-offset": {
8012
+ "description": "Optional target block offset for Flashbots/private bundle submission.",
8013
+ "minimum": 1,
8014
+ "type": "integer"
8015
+ },
7998
8016
  "funder": {
7999
8017
  "description": "Polymarket proxy/safe address.",
8000
8018
  "type": "string"
@@ -8133,6 +8151,22 @@
8133
8151
  "incremental"
8134
8152
  ]
8135
8153
  },
8154
+ "rebalance-route": {
8155
+ "description": "Pandora-leg execution route. public preserves ordinary mempool submission; auto chooses a private route when supported; flashbots-private requests single-tx private relay submission; flashbots-bundle requests Flashbots bundle semantics for approval+trade paths. This affects only the Ethereum Pandora leg.",
8156
+ "enum": [
8157
+ "public",
8158
+ "auto",
8159
+ "flashbots-private",
8160
+ "flashbots-bundle"
8161
+ ]
8162
+ },
8163
+ "rebalance-route-fallback": {
8164
+ "description": "Fallback policy when the requested Pandora-leg private route is unsupported or rejected. fail stops the run; public degrades to ordinary public submission. This does not change Polygon hedge semantics.",
8165
+ "enum": [
8166
+ "fail",
8167
+ "public"
8168
+ ]
8169
+ },
8136
8170
  "rpc-url": {
8137
8171
  "description": "RPC URL.",
8138
8172
  "type": "string"
@@ -8241,10 +8275,10 @@
8241
8275
  "--paper",
8242
8276
  "--dry-run"
8243
8277
  ],
8244
- "summary": "Run mirror deploy, verify, and optional sync workflow; any sync leg remains separate Pandora rebalance and Polymarket hedge legs, not atomic.",
8278
+ "summary": "Run mirror deploy, verify, and optional sync workflow. Rebalance-route flags apply only to the Ethereum Pandora leg; any sync leg still remains separate Pandora rebalance and Polymarket hedge legs, not atomic.",
8245
8279
  "supportsRemote": true,
8246
8280
  "supportsWebhook": false,
8247
- "usage": "pandora [--output table|json] mirror go --polymarket-market-id <id>|--polymarket-slug <slug> [--liquidity-usdc <n>] [--fee-tier <500-50000>] [--max-imbalance <n>] [--arbiter <address>] [--category <id|name>] [--paper|--dry-run|--execute-live|--execute] [--auto-sync] [--sync-once] [--sync-interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--strict-close-time-delta] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--oracle <address>] [--factory <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>] [--trust-deploy] [--skip-gate] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--with-rules] [--include-similarity] [--min-close-lead-seconds <n>] [--dotenv-path <path>]"
8281
+ "usage": "pandora [--output table|json] mirror go --polymarket-market-id <id>|--polymarket-slug <slug> [--liquidity-usdc <n>] [--fee-tier <500-50000>] [--max-imbalance <n>] [--arbiter <address>] [--category <id|name>] [--paper|--dry-run|--execute-live|--execute] [--auto-sync] [--sync-once] [--sync-interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--strict-close-time-delta] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--oracle <address>] [--factory <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>] [--trust-deploy] [--skip-gate] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--with-rules] [--include-similarity] [--min-close-lead-seconds <n>] [--dotenv-path <path>]"
8248
8282
  },
8249
8283
  "mirror.health": {
8250
8284
  "agentWorkflow": null,
@@ -9785,7 +9819,7 @@
9785
9819
  "pnl"
9786
9820
  ],
9787
9821
  "canonicalTool": "mirror.pnl",
9788
- "canonicalUsage": "pandora [--output table|json] mirror pnl --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]",
9822
+ "canonicalUsage": "pandora [--output table|json] mirror pnl --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--reconciled] [--include-legacy-approx] [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]",
9789
9823
  "controlInputNames": [],
9790
9824
  "dataSchema": "#/definitions/MirrorPnlPayload",
9791
9825
  "emits": [
@@ -10327,6 +10361,10 @@
10327
10361
  "minimum": 0,
10328
10362
  "type": "number"
10329
10363
  },
10364
+ "include-legacy-approx": {
10365
+ "description": "Keep approximate scenario fields visible while requesting reconciled accounting.",
10366
+ "type": "boolean"
10367
+ },
10330
10368
  "indexer-url": {
10331
10369
  "description": "Indexer base URL.",
10332
10370
  "type": "string"
@@ -10367,6 +10405,10 @@
10367
10405
  "description": "Polymarket slug.",
10368
10406
  "type": "string"
10369
10407
  },
10408
+ "reconciled": {
10409
+ "description": "Attach the normalized reconciled accounting payload beside the approximate scenario surface.",
10410
+ "type": "boolean"
10411
+ },
10370
10412
  "state-file": {
10371
10413
  "description": "State file path.",
10372
10414
  "type": "string"
@@ -10410,10 +10452,10 @@
10410
10452
  "riskLevel": "low",
10411
10453
  "safeEquivalent": null,
10412
10454
  "safeFlags": [],
10413
- "summary": "Read the dedicated cross-venue scenario P&L surface for a mirror pair via persisted state or selector-first lookup.",
10455
+ "summary": "Read the canonical mirror P&L surface for a pair. It remains the dedicated cross-venue scenario P&L surface; `--reconciled` adds normalized realized/unrealized accounting, provenance, and export-ready ledger rows beside the legacy approximate fields.",
10414
10456
  "supportsRemote": true,
10415
10457
  "supportsWebhook": false,
10416
- "usage": "pandora [--output table|json] mirror pnl --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]"
10458
+ "usage": "pandora [--output table|json] mirror pnl --state-file <path>|--strategy-hash <hash>|(--pandora-market-address <address>|--market-address <address>) (--polymarket-market-id <id>|--polymarket-slug <slug>) [--reconciled] [--include-legacy-approx] [--trust-deploy] [--manifest-file <path>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--indexer-url <url>] [--timeout-ms <ms>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>]"
10417
10459
  },
10418
10460
  "mirror.replay": {
10419
10461
  "agentWorkflow": null,
@@ -11810,7 +11852,7 @@
11810
11852
  "riskLevel": "low",
11811
11853
  "safeEquivalent": null,
11812
11854
  "safeFlags": [],
11813
- "summary": "Mirror sync runtime command family for separate Pandora rebalance and Polymarket hedge legs; cross-venue settlement is not atomic.",
11855
+ "summary": "Mirror sync runtime command family for separate Pandora rebalance and Polymarket hedge legs. Rebalance-route flags affect only the Ethereum Pandora leg; cross-venue settlement is not atomic.",
11814
11856
  "supportsRemote": false,
11815
11857
  "supportsWebhook": false,
11816
11858
  "usage": "pandora [--output table|json] mirror sync once|run|start|stop|status ..."
@@ -11825,7 +11867,7 @@
11825
11867
  "once"
11826
11868
  ],
11827
11869
  "canonicalTool": "mirror.sync.once",
11828
- "canonicalUsage": "pandora [--output table|json] mirror sync once --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]",
11870
+ "canonicalUsage": "pandora [--output table|json] mirror sync once --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]",
11829
11871
  "controlInputNames": [],
11830
11872
  "dataSchema": "#/definitions/MirrorStatusPayload",
11831
11873
  "emits": [
@@ -13173,6 +13215,19 @@
13173
13215
  "description": "Execute live sync actions.",
13174
13216
  "type": "boolean"
13175
13217
  },
13218
+ "flashbots-auth-key": {
13219
+ "description": "Optional Flashbots auth key or signer reference for the Ethereum Pandora rebalance leg.",
13220
+ "type": "string"
13221
+ },
13222
+ "flashbots-relay-url": {
13223
+ "description": "Optional Flashbots/private relay URL for the Ethereum Pandora rebalance leg.",
13224
+ "type": "string"
13225
+ },
13226
+ "flashbots-target-block-offset": {
13227
+ "description": "Optional target block offset for Flashbots/private bundle submission.",
13228
+ "minimum": 1,
13229
+ "type": "integer"
13230
+ },
13176
13231
  "funder": {
13177
13232
  "description": "Polymarket proxy/safe address.",
13178
13233
  "type": "string"
@@ -13310,6 +13365,22 @@
13310
13365
  "incremental"
13311
13366
  ]
13312
13367
  },
13368
+ "rebalance-route": {
13369
+ "description": "Pandora-leg execution route. public preserves ordinary mempool submission; auto chooses a private route when supported; flashbots-private requests single-tx private relay submission; flashbots-bundle requests Flashbots bundle semantics for approval+trade paths. This affects only the Ethereum Pandora leg.",
13370
+ "enum": [
13371
+ "public",
13372
+ "auto",
13373
+ "flashbots-private",
13374
+ "flashbots-bundle"
13375
+ ]
13376
+ },
13377
+ "rebalance-route-fallback": {
13378
+ "description": "Fallback policy when the requested Pandora-leg private route is unsupported or rejected. fail stops the run; public degrades to ordinary public submission. This does not change Polygon hedge semantics.",
13379
+ "enum": [
13380
+ "fail",
13381
+ "public"
13382
+ ]
13383
+ },
13313
13384
  "rpc-url": {
13314
13385
  "description": "RPC URL.",
13315
13386
  "type": "string"
@@ -13396,10 +13467,10 @@
13396
13467
  "--paper",
13397
13468
  "--dry-run"
13398
13469
  ],
13399
- "summary": "Execute one mirror sync tick with separate Pandora rebalance and Polymarket hedge legs; cross-venue settlement is not atomic.",
13470
+ "summary": "Execute one mirror sync tick with separate Pandora rebalance and Polymarket hedge legs. Rebalance-route flags affect only the Ethereum Pandora leg; cross-venue settlement is not atomic.",
13400
13471
  "supportsRemote": true,
13401
13472
  "supportsWebhook": true,
13402
- "usage": "pandora [--output table|json] mirror sync once --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]"
13473
+ "usage": "pandora [--output table|json] mirror sync once --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]"
13403
13474
  },
13404
13475
  "mirror.sync.run": {
13405
13476
  "agentWorkflow": null,
@@ -13411,7 +13482,7 @@
13411
13482
  "run"
13412
13483
  ],
13413
13484
  "canonicalTool": "mirror.sync.run",
13414
- "canonicalUsage": "pandora [--output table|json] mirror sync run --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--daemon] [--stream|--no-stream] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]",
13485
+ "canonicalUsage": "pandora [--output table|json] mirror sync run --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--daemon] [--stream|--no-stream] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]",
13415
13486
  "controlInputNames": [],
13416
13487
  "dataSchema": "#/definitions/MirrorStatusPayload",
13417
13488
  "emits": [
@@ -14763,6 +14834,19 @@
14763
14834
  "description": "Execute live sync actions.",
14764
14835
  "type": "boolean"
14765
14836
  },
14837
+ "flashbots-auth-key": {
14838
+ "description": "Optional Flashbots auth key or signer reference for the Ethereum Pandora rebalance leg.",
14839
+ "type": "string"
14840
+ },
14841
+ "flashbots-relay-url": {
14842
+ "description": "Optional Flashbots/private relay URL for the Ethereum Pandora rebalance leg.",
14843
+ "type": "string"
14844
+ },
14845
+ "flashbots-target-block-offset": {
14846
+ "description": "Optional target block offset for Flashbots/private bundle submission.",
14847
+ "minimum": 1,
14848
+ "type": "integer"
14849
+ },
14766
14850
  "funder": {
14767
14851
  "description": "Polymarket proxy/safe address.",
14768
14852
  "type": "string"
@@ -14904,6 +14988,22 @@
14904
14988
  "incremental"
14905
14989
  ]
14906
14990
  },
14991
+ "rebalance-route": {
14992
+ "description": "Pandora-leg execution route. public preserves ordinary mempool submission; auto chooses a private route when supported; flashbots-private requests single-tx private relay submission; flashbots-bundle requests Flashbots bundle semantics for approval+trade paths. This affects only the Ethereum Pandora leg.",
14993
+ "enum": [
14994
+ "public",
14995
+ "auto",
14996
+ "flashbots-private",
14997
+ "flashbots-bundle"
14998
+ ]
14999
+ },
15000
+ "rebalance-route-fallback": {
15001
+ "description": "Fallback policy when the requested Pandora-leg private route is unsupported or rejected. fail stops the run; public degrades to ordinary public submission. This does not change Polygon hedge semantics.",
15002
+ "enum": [
15003
+ "fail",
15004
+ "public"
15005
+ ]
15006
+ },
14907
15007
  "rpc-url": {
14908
15008
  "description": "RPC URL.",
14909
15009
  "type": "string"
@@ -14995,10 +15095,10 @@
14995
15095
  "--paper",
14996
15096
  "--dry-run"
14997
15097
  ],
14998
- "summary": "Run continuous mirror sync loop with separate Pandora rebalance and Polymarket hedge legs; cross-venue settlement is not atomic.",
15098
+ "summary": "Run continuous mirror sync loop with separate Pandora rebalance and Polymarket hedge legs. Rebalance-route flags affect only the Ethereum Pandora leg; cross-venue settlement is not atomic.",
14999
15099
  "supportsRemote": true,
15000
15100
  "supportsWebhook": true,
15001
- "usage": "pandora [--output table|json] mirror sync run --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--daemon] [--stream|--no-stream] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]"
15101
+ "usage": "pandora [--output table|json] mirror sync run --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--daemon] [--stream|--no-stream] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]"
15002
15102
  },
15003
15103
  "mirror.sync.start": {
15004
15104
  "agentWorkflow": null,
@@ -15010,7 +15110,7 @@
15010
15110
  "start"
15011
15111
  ],
15012
15112
  "canonicalTool": "mirror.sync.start",
15013
- "canonicalUsage": "pandora [--output table|json] mirror sync start --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]",
15113
+ "canonicalUsage": "pandora [--output table|json] mirror sync start --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]",
15014
15114
  "controlInputNames": [],
15015
15115
  "dataSchema": "#/definitions/MirrorStatusPayload",
15016
15116
  "emits": [
@@ -16358,6 +16458,19 @@
16358
16458
  "description": "Execute live sync actions.",
16359
16459
  "type": "boolean"
16360
16460
  },
16461
+ "flashbots-auth-key": {
16462
+ "description": "Optional Flashbots auth key or signer reference for the Ethereum Pandora rebalance leg.",
16463
+ "type": "string"
16464
+ },
16465
+ "flashbots-relay-url": {
16466
+ "description": "Optional Flashbots/private relay URL for the Ethereum Pandora rebalance leg.",
16467
+ "type": "string"
16468
+ },
16469
+ "flashbots-target-block-offset": {
16470
+ "description": "Optional target block offset for Flashbots/private bundle submission.",
16471
+ "minimum": 1,
16472
+ "type": "integer"
16473
+ },
16361
16474
  "funder": {
16362
16475
  "description": "Polymarket proxy/safe address.",
16363
16476
  "type": "string"
@@ -16495,6 +16608,22 @@
16495
16608
  "incremental"
16496
16609
  ]
16497
16610
  },
16611
+ "rebalance-route": {
16612
+ "description": "Pandora-leg execution route. public preserves ordinary mempool submission; auto chooses a private route when supported; flashbots-private requests single-tx private relay submission; flashbots-bundle requests Flashbots bundle semantics for approval+trade paths. This affects only the Ethereum Pandora leg.",
16613
+ "enum": [
16614
+ "public",
16615
+ "auto",
16616
+ "flashbots-private",
16617
+ "flashbots-bundle"
16618
+ ]
16619
+ },
16620
+ "rebalance-route-fallback": {
16621
+ "description": "Fallback policy when the requested Pandora-leg private route is unsupported or rejected. fail stops the run; public degrades to ordinary public submission. This does not change Polygon hedge semantics.",
16622
+ "enum": [
16623
+ "fail",
16624
+ "public"
16625
+ ]
16626
+ },
16498
16627
  "rpc-url": {
16499
16628
  "description": "RPC URL.",
16500
16629
  "type": "string"
@@ -16582,10 +16711,10 @@
16582
16711
  "--paper",
16583
16712
  "--dry-run"
16584
16713
  ],
16585
- "summary": "Start detached mirror sync daemon for separate Pandora rebalance and Polymarket hedge legs; cross-venue settlement is not atomic.",
16714
+ "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.",
16586
16715
  "supportsRemote": true,
16587
16716
  "supportsWebhook": true,
16588
- "usage": "pandora [--output table|json] mirror sync start --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]"
16717
+ "usage": "pandora [--output table|json] mirror sync start --pandora-market-address <address>|--market-address <address> --polymarket-market-id <id>|--polymarket-slug <slug> [--paper|--dry-run|--execute-live|--execute] [--private-key <hex>|--profile-id <id>|--profile-file <path>] [--funder <address>] [--usdc <address>] [--trust-deploy] [--manifest-file <path>] [--skip-gate] [--strict-close-time-delta] [--interval-ms <ms>] [--drift-trigger-bps <n>] [--hedge-trigger-usdc <n>] [--hedge-ratio <n>] [--no-hedge] [--rebalance-mode atomic|incremental] [--price-source on-chain|indexer] [--rebalance-route public|auto|flashbots-private|flashbots-bundle] [--rebalance-route-fallback fail|public] [--flashbots-relay-url <url>] [--flashbots-auth-key <key>] [--flashbots-target-block-offset <n>] [--max-rebalance-usdc <n>] [--max-hedge-usdc <n>] [--max-open-exposure-usdc <amount>] [--max-trades-per-day <n>] [--cooldown-ms <ms>] [--depth-slippage-bps <n>] [--min-time-to-close-sec <n>] [--iterations <n>] [--state-file <path>] [--kill-switch-file <path>] [--chain-id <id>] [--rpc-url <url>] [--polymarket-rpc-url <url>] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-gamma-mock-url <url>] [--polymarket-mock-url <url>] [--webhook-url <url>] [--telegram-bot-token <token>] [--telegram-chat-id <id>] [--discord-webhook-url <url>]"
16589
16718
  },
16590
16719
  "mirror.sync.status": {
16591
16720
  "agentWorkflow": null,
@@ -17061,6 +17190,163 @@
17061
17190
  "supportsWebhook": false,
17062
17191
  "usage": "pandora [--output table|json] mirror sync stop --pid-file <path>|--strategy-hash <hash>|--market-address <address>|--all"
17063
17192
  },
17193
+ "mirror.trace": {
17194
+ "agentWorkflow": null,
17195
+ "aliasOf": null,
17196
+ "canRunConcurrent": true,
17197
+ "canonicalCommandTokens": [
17198
+ "mirror",
17199
+ "trace"
17200
+ ],
17201
+ "canonicalTool": "mirror.trace",
17202
+ "canonicalUsage": "pandora [--output table|json] mirror trace --pandora-market-address <address>|--market-address <address> --rpc-url <url> [--blocks <csv>|--from-block <n> --to-block <n> [--step <n>]] [--limit <n>]",
17203
+ "controlInputNames": [],
17204
+ "dataSchema": "#/definitions/MirrorTracePayload",
17205
+ "emits": [
17206
+ "mirror.trace",
17207
+ "mirror.trace.help"
17208
+ ],
17209
+ "executeFlags": [],
17210
+ "executeIntentRequired": false,
17211
+ "executeIntentRequiredForLiveMode": false,
17212
+ "expectedLatencyMs": 1500,
17213
+ "externalDependencies": [
17214
+ "chain-rpc",
17215
+ "polymarket-api"
17216
+ ],
17217
+ "helpDataSchema": "#/definitions/CommandHelpPayload",
17218
+ "idempotency": "idempotent",
17219
+ "inputSchema": {
17220
+ "additionalProperties": false,
17221
+ "anyOf": [
17222
+ {
17223
+ "required": [
17224
+ "pandora-market-address"
17225
+ ]
17226
+ },
17227
+ {
17228
+ "required": [
17229
+ "market-address"
17230
+ ]
17231
+ }
17232
+ ],
17233
+ "oneOf": [
17234
+ {
17235
+ "not": {
17236
+ "anyOf": [
17237
+ {
17238
+ "required": [
17239
+ "from-block",
17240
+ "to-block"
17241
+ ]
17242
+ },
17243
+ {
17244
+ "required": [
17245
+ "from-block"
17246
+ ]
17247
+ },
17248
+ {
17249
+ "required": [
17250
+ "to-block"
17251
+ ]
17252
+ }
17253
+ ]
17254
+ },
17255
+ "required": [
17256
+ "blocks"
17257
+ ]
17258
+ },
17259
+ {
17260
+ "not": {
17261
+ "anyOf": [
17262
+ {
17263
+ "required": [
17264
+ "blocks"
17265
+ ]
17266
+ },
17267
+ {
17268
+ "required": [
17269
+ "blocks"
17270
+ ]
17271
+ }
17272
+ ]
17273
+ },
17274
+ "required": [
17275
+ "from-block",
17276
+ "to-block"
17277
+ ]
17278
+ }
17279
+ ],
17280
+ "properties": {
17281
+ "blocks": {
17282
+ "description": "Comma-delimited explicit block numbers to sample.",
17283
+ "type": "string"
17284
+ },
17285
+ "from-block": {
17286
+ "description": "Inclusive start block number.",
17287
+ "minimum": 0,
17288
+ "type": "integer"
17289
+ },
17290
+ "limit": {
17291
+ "description": "Maximum number of results.",
17292
+ "minimum": 1,
17293
+ "type": "integer"
17294
+ },
17295
+ "market-address": {
17296
+ "description": "Market address.",
17297
+ "type": "string"
17298
+ },
17299
+ "pandora-market-address": {
17300
+ "description": "Market address.",
17301
+ "type": "string"
17302
+ },
17303
+ "rpc-url": {
17304
+ "description": "RPC URL.",
17305
+ "type": "string"
17306
+ },
17307
+ "step": {
17308
+ "description": "Sampling step for block ranges.",
17309
+ "minimum": 1,
17310
+ "type": "integer"
17311
+ },
17312
+ "to-block": {
17313
+ "description": "Inclusive end block number.",
17314
+ "minimum": 0,
17315
+ "type": "integer"
17316
+ }
17317
+ },
17318
+ "required": [
17319
+ "rpc-url"
17320
+ ],
17321
+ "type": "object"
17322
+ },
17323
+ "jobCapable": false,
17324
+ "mcpExposed": true,
17325
+ "mcpLongRunningBlocked": false,
17326
+ "mcpMutating": false,
17327
+ "outputModes": [
17328
+ "table",
17329
+ "json"
17330
+ ],
17331
+ "policyScopes": [
17332
+ "mirror:read",
17333
+ "network:rpc",
17334
+ "network:polymarket"
17335
+ ],
17336
+ "preferred": true,
17337
+ "recommendedPreflightTool": null,
17338
+ "remoteEligible": true,
17339
+ "requiresSecrets": false,
17340
+ "returnsOperationId": false,
17341
+ "returnsRuntimeHandle": false,
17342
+ "riskLevel": "low",
17343
+ "safeEquivalent": null,
17344
+ "safeFlags": [],
17345
+ "summary": "Read block-aware historical Pandora reserve snapshots for one market via explicit block lists or sampled block ranges.",
17346
+ "supportsRemote": true,
17347
+ "supportsWebhook": false,
17348
+ "usage": "pandora [--output table|json] mirror trace --pandora-market-address <address>|--market-address <address> --rpc-url <url> [--blocks <csv>|--from-block <n> --to-block <n> [--step <n>]] [--limit <n>]"
17349
+ },
17064
17350
  "mirror.verify": {
17065
17351
  "agentWorkflow": null,
17066
17352
  "aliasOf": null,
@@ -19118,7 +19404,7 @@
19118
19404
  "summary": "Polymarket command family help and routing entrypoint.",
19119
19405
  "supportsRemote": false,
19120
19406
  "supportsWebhook": false,
19121
- "usage": "pandora [--output table|json] polymarket check|approve|preflight|balance|deposit|withdraw|trade ..."
19407
+ "usage": "pandora [--output table|json] polymarket check|approve|preflight|balance|positions|deposit|withdraw|trade ..."
19122
19408
  },
19123
19409
  "polymarket.approve": {
19124
19410
  "agentWorkflow": null,
@@ -19528,6 +19814,256 @@
19528
19814
  "supportsWebhook": false,
19529
19815
  "usage": "pandora [--output table|json] polymarket deposit --amount-usdc <n> --dry-run|--execute [--to <address>] [--fork] [--fork-rpc-url <url>] [--fork-chain-id <id>] [--rpc-url <url>] [--private-key <hex>] [--funder <address>]"
19530
19816
  },
19817
+ "polymarket.positions": {
19818
+ "agentWorkflow": null,
19819
+ "aliasOf": null,
19820
+ "canRunConcurrent": true,
19821
+ "canonicalCommandTokens": [
19822
+ "polymarket",
19823
+ "positions"
19824
+ ],
19825
+ "canonicalTool": "polymarket.positions",
19826
+ "canonicalUsage": "pandora [--output table|json] polymarket positions [--wallet <address>|--funder <address>] [--condition-id <id>|--market-id <id>|--slug <slug>|--token-id <id>] [--source auto|api|on-chain] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-data-api-url <url>] [--polymarket-mock-url <url>] [--timeout-ms <ms>] [--fork] [--fork-rpc-url <url>] [--fork-chain-id <id>] [--rpc-url <url>] [--private-key <hex>]",
19827
+ "controlInputNames": [],
19828
+ "dataSchema": "#/definitions/PolymarketPositionsPayload",
19829
+ "emits": [
19830
+ "polymarket.positions",
19831
+ "polymarket.positions.help",
19832
+ "polymarket.help"
19833
+ ],
19834
+ "executeFlags": [],
19835
+ "executeIntentRequired": false,
19836
+ "executeIntentRequiredForLiveMode": false,
19837
+ "expectedLatencyMs": 1200,
19838
+ "externalDependencies": [
19839
+ "wallet-secrets",
19840
+ "chain-rpc",
19841
+ "polymarket-api",
19842
+ "rpc"
19843
+ ],
19844
+ "helpDataSchema": "#/definitions/CommandHelpPayload",
19845
+ "idempotency": "idempotent",
19846
+ "inputSchema": {
19847
+ "additionalProperties": false,
19848
+ "oneOf": [
19849
+ {
19850
+ "not": {
19851
+ "anyOf": [
19852
+ {
19853
+ "required": [
19854
+ "condition-id"
19855
+ ]
19856
+ },
19857
+ {
19858
+ "required": [
19859
+ "condition-id"
19860
+ ]
19861
+ },
19862
+ {
19863
+ "required": [
19864
+ "slug"
19865
+ ]
19866
+ },
19867
+ {
19868
+ "required": [
19869
+ "slug"
19870
+ ]
19871
+ },
19872
+ {
19873
+ "required": [
19874
+ "token-id"
19875
+ ]
19876
+ },
19877
+ {
19878
+ "required": [
19879
+ "token-id"
19880
+ ]
19881
+ }
19882
+ ]
19883
+ }
19884
+ },
19885
+ {
19886
+ "not": {
19887
+ "anyOf": [
19888
+ {
19889
+ "required": [
19890
+ "slug"
19891
+ ]
19892
+ },
19893
+ {
19894
+ "required": [
19895
+ "slug"
19896
+ ]
19897
+ },
19898
+ {
19899
+ "required": [
19900
+ "token-id"
19901
+ ]
19902
+ },
19903
+ {
19904
+ "required": [
19905
+ "token-id"
19906
+ ]
19907
+ }
19908
+ ]
19909
+ },
19910
+ "required": [
19911
+ "condition-id"
19912
+ ]
19913
+ },
19914
+ {
19915
+ "not": {
19916
+ "anyOf": [
19917
+ {
19918
+ "required": [
19919
+ "condition-id"
19920
+ ]
19921
+ },
19922
+ {
19923
+ "required": [
19924
+ "condition-id"
19925
+ ]
19926
+ },
19927
+ {
19928
+ "required": [
19929
+ "token-id"
19930
+ ]
19931
+ },
19932
+ {
19933
+ "required": [
19934
+ "token-id"
19935
+ ]
19936
+ }
19937
+ ]
19938
+ },
19939
+ "required": [
19940
+ "slug"
19941
+ ]
19942
+ },
19943
+ {
19944
+ "not": {
19945
+ "anyOf": [
19946
+ {
19947
+ "required": [
19948
+ "condition-id"
19949
+ ]
19950
+ },
19951
+ {
19952
+ "required": [
19953
+ "condition-id"
19954
+ ]
19955
+ },
19956
+ {
19957
+ "required": [
19958
+ "slug"
19959
+ ]
19960
+ },
19961
+ {
19962
+ "required": [
19963
+ "slug"
19964
+ ]
19965
+ }
19966
+ ]
19967
+ },
19968
+ "required": [
19969
+ "token-id"
19970
+ ]
19971
+ }
19972
+ ],
19973
+ "properties": {
19974
+ "condition-id": {
19975
+ "description": "Polymarket condition id / market id selector.",
19976
+ "type": "string"
19977
+ },
19978
+ "fork": {
19979
+ "description": "Run in fork mode.",
19980
+ "type": "boolean"
19981
+ },
19982
+ "fork-chain-id": {
19983
+ "description": "Fork chain id.",
19984
+ "minimum": 1,
19985
+ "type": "integer"
19986
+ },
19987
+ "fork-rpc-url": {
19988
+ "description": "Fork RPC URL.",
19989
+ "type": "string"
19990
+ },
19991
+ "funder": {
19992
+ "description": "Polymarket proxy wallet.",
19993
+ "type": "string"
19994
+ },
19995
+ "polymarket-host": {
19996
+ "description": "Polymarket host override.",
19997
+ "type": "string"
19998
+ },
19999
+ "polymarket-mock-url": {
20000
+ "description": "Polymarket mock URL.",
20001
+ "type": "string"
20002
+ },
20003
+ "private-key": {
20004
+ "description": "Hex private key.",
20005
+ "type": "string"
20006
+ },
20007
+ "rpc-url": {
20008
+ "description": "RPC URL.",
20009
+ "type": "string"
20010
+ },
20011
+ "slug": {
20012
+ "description": "Polymarket slug selector.",
20013
+ "type": "string"
20014
+ },
20015
+ "source": {
20016
+ "description": "Inventory source preference.",
20017
+ "enum": [
20018
+ "auto",
20019
+ "api",
20020
+ "on-chain"
20021
+ ]
20022
+ },
20023
+ "timeout-ms": {
20024
+ "description": "Request timeout in milliseconds.",
20025
+ "minimum": 1,
20026
+ "type": "integer"
20027
+ },
20028
+ "token-id": {
20029
+ "description": "Conditional token id selector.",
20030
+ "type": "string"
20031
+ },
20032
+ "wallet": {
20033
+ "description": "Wallet address to inspect.",
20034
+ "type": "string"
20035
+ }
20036
+ },
20037
+ "type": "object"
20038
+ },
20039
+ "jobCapable": false,
20040
+ "mcpExposed": true,
20041
+ "mcpLongRunningBlocked": false,
20042
+ "mcpMutating": false,
20043
+ "outputModes": [
20044
+ "table",
20045
+ "json"
20046
+ ],
20047
+ "policyScopes": [
20048
+ "polymarket:read",
20049
+ "secrets:use",
20050
+ "network:rpc",
20051
+ "network:polymarket"
20052
+ ],
20053
+ "preferred": true,
20054
+ "recommendedPreflightTool": null,
20055
+ "remoteEligible": true,
20056
+ "requiresSecrets": true,
20057
+ "returnsOperationId": false,
20058
+ "returnsRuntimeHandle": false,
20059
+ "riskLevel": "medium",
20060
+ "safeEquivalent": null,
20061
+ "safeFlags": [],
20062
+ "summary": "Read Polymarket YES/NO position inventory and open-order exposure. This is distinct from `polymarket balance`, which remains funding and collateral only.",
20063
+ "supportsRemote": true,
20064
+ "supportsWebhook": false,
20065
+ "usage": "pandora [--output table|json] polymarket positions [--wallet <address>|--funder <address>] [--condition-id <id>|--market-id <id>|--slug <slug>|--token-id <id>] [--source auto|api|on-chain] [--polymarket-host <url>] [--polymarket-gamma-url <url>] [--polymarket-data-api-url <url>] [--polymarket-mock-url <url>] [--timeout-ms <ms>] [--fork] [--fork-rpc-url <url>] [--fork-chain-id <id>] [--rpc-url <url>] [--private-key <hex>]"
20066
+ },
19531
20067
  "polymarket.preflight": {
19532
20068
  "agentWorkflow": null,
19533
20069
  "aliasOf": null,