pandora-cli-skills 1.1.69 → 1.1.71

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 (121) hide show
  1. package/README.md +121 -28
  2. package/README_FOR_SHARING.md +103 -26
  3. package/SKILL.md +50 -12
  4. package/benchmarks/latest/core-bundle.json +293 -0
  5. package/benchmarks/latest/core-history.json +67 -0
  6. package/benchmarks/latest/core-report.json +481 -96
  7. package/benchmarks/locks/core.lock.json +63 -0
  8. package/cli/lib/agent_contract_registry.cjs +316 -30
  9. package/cli/lib/bootstrap_command_service.cjs +970 -0
  10. package/cli/lib/capabilities_command_service.cjs +1239 -41
  11. package/cli/lib/cli_output_service.cjs +8 -3
  12. package/cli/lib/command_router.cjs +4 -0
  13. package/cli/lib/market_admin_service.cjs +90 -19
  14. package/cli/lib/mcp_http_gateway_service.cjs +1673 -59
  15. package/cli/lib/mcp_protocol_service.cjs +3 -1
  16. package/cli/lib/mcp_server_service.cjs +11 -2
  17. package/cli/lib/mcp_tool_registry.cjs +54 -12
  18. package/cli/lib/mirror_command_service.cjs +4 -4
  19. package/cli/lib/mirror_handlers/go.cjs +4 -0
  20. package/cli/lib/mirror_handlers/sync.cjs +2 -0
  21. package/cli/lib/mirror_service.cjs +5 -0
  22. package/cli/lib/operation_receipt_service.cjs +488 -0
  23. package/cli/lib/operation_receipt_signing_service.cjs +174 -0
  24. package/cli/lib/operation_receipt_store.cjs +192 -0
  25. package/cli/lib/operation_service.cjs +152 -6
  26. package/cli/lib/operation_state_store.cjs +72 -0
  27. package/cli/lib/operation_webhook_delivery_store.cjs +167 -0
  28. package/cli/lib/operation_webhook_service.cjs +22 -0
  29. package/cli/lib/operations_command_service.cjs +100 -1
  30. package/cli/lib/pandora_deploy_service.cjs +43 -5
  31. package/cli/lib/parsers/claim_flags.cjs +20 -0
  32. package/cli/lib/parsers/lp_flags.cjs +21 -0
  33. package/cli/lib/parsers/mirror_deploy_flags.cjs +18 -0
  34. package/cli/lib/parsers/mirror_go_flags.cjs +17 -0
  35. package/cli/lib/parsers/mirror_sync_flags.cjs +17 -0
  36. package/cli/lib/parsers/operations_flags.cjs +25 -4
  37. package/cli/lib/parsers/policy_flags.cjs +193 -4
  38. package/cli/lib/parsers/profile_flags.cjs +71 -6
  39. package/cli/lib/parsers/resolve_flags.cjs +20 -0
  40. package/cli/lib/parsers/shared_profile_selector_flags.cjs +65 -0
  41. package/cli/lib/parsers/sports_flags.cjs +18 -0
  42. package/cli/lib/parsers/trade_flags.cjs +20 -0
  43. package/cli/lib/policy_command_service.cjs +350 -1
  44. package/cli/lib/policy_evaluator_service.cjs +326 -23
  45. package/cli/lib/policy_profile_guidance_service.cjs +501 -0
  46. package/cli/lib/profile_command_service.cjs +607 -13
  47. package/cli/lib/profile_registry_service.cjs +31 -0
  48. package/cli/lib/profile_resolver_service.cjs +934 -83
  49. package/cli/lib/recipe_command_service.cjs +3 -2
  50. package/cli/lib/recipe_runtime_service.cjs +100 -9
  51. package/cli/lib/schema_command_service.cjs +1049 -17
  52. package/cli/lib/sdk_contract_service.cjs +175 -9
  53. package/cli/lib/shared/profile_constants.cjs +27 -2
  54. package/cli/lib/shared/recipe_builtin_packs.cjs +2 -2
  55. package/cli/lib/signers/execution_signer_service.cjs +444 -0
  56. package/cli/lib/signers/external_signer_backend.cjs +946 -0
  57. package/cli/lib/signers/index.cjs +143 -0
  58. package/cli/lib/signers/local_keystore_signer.cjs +546 -0
  59. package/cli/lib/signers/signer_backend_types.cjs +306 -0
  60. package/cli/lib/skill_doc_registry.cjs +12 -1
  61. package/cli/lib/sports_command_service.cjs +5 -0
  62. package/cli/lib/webhook_service.cjs +116 -10
  63. package/cli/pandora.cjs +94 -20
  64. package/docs/benchmarks/README.md +270 -48
  65. package/docs/benchmarks/history.json +67 -0
  66. package/docs/benchmarks/scenario-catalog.md +84 -32
  67. package/docs/skills/agent-interfaces.md +183 -16
  68. package/docs/skills/agent-quickstart.md +160 -10
  69. package/docs/skills/capabilities.md +61 -13
  70. package/docs/skills/command-reference.md +72 -11
  71. package/docs/skills/mirror-operations.md +2 -2
  72. package/docs/skills/policy-profiles.md +72 -8
  73. package/docs/skills/portfolio-closeout.md +13 -0
  74. package/docs/skills/recipes.md +2 -0
  75. package/docs/skills/trading-workflows.md +2 -2
  76. package/docs/trust/final-readiness-signoff.md +156 -0
  77. package/docs/trust/operator-deployment.md +334 -0
  78. package/docs/trust/release-verification.md +347 -4
  79. package/docs/trust/security-model.md +75 -0
  80. package/docs/trust/support-matrix.md +69 -6
  81. package/package.json +18 -9
  82. package/scripts/release/install_release.sh +186 -10
  83. package/sdk/generated/command-descriptors.json +712 -330
  84. package/sdk/generated/contract-registry.json +60692 -49250
  85. package/sdk/generated/manifest.json +230 -17
  86. package/sdk/generated/mcp-tool-definitions.json +2563 -632
  87. package/sdk/python/README.md +179 -19
  88. package/sdk/python/pandora_agent/__init__.py +10 -1
  89. package/sdk/python/pandora_agent/backends.py +56 -20
  90. package/sdk/python/pandora_agent/catalog.py +2 -15
  91. package/sdk/python/pandora_agent/client.py +16 -0
  92. package/sdk/python/pandora_agent/errors.py +38 -2
  93. package/sdk/python/pandora_agent/generated/command-descriptors.json +18526 -0
  94. package/sdk/python/pandora_agent/generated/contract-registry.json +120117 -0
  95. package/sdk/python/pandora_agent/generated/manifest.json +198 -18
  96. package/sdk/python/pandora_agent/generated/mcp-tool-definitions.json +37871 -0
  97. package/sdk/python/pyproject.toml +18 -4
  98. package/sdk/typescript/README.md +195 -41
  99. package/sdk/typescript/backends.d.ts +15 -0
  100. package/sdk/typescript/backends.js +20 -0
  101. package/sdk/typescript/catalog.d.ts +26 -0
  102. package/sdk/typescript/catalog.js +24 -0
  103. package/sdk/typescript/errors.d.ts +7 -0
  104. package/sdk/typescript/errors.js +13 -0
  105. package/sdk/typescript/generated/command-descriptors.d.ts +5 -0
  106. package/sdk/typescript/generated/command-descriptors.json +18526 -0
  107. package/sdk/typescript/generated/command-descriptors.mjs +3 -0
  108. package/sdk/typescript/generated/contract-registry.d.ts +5 -0
  109. package/sdk/typescript/generated/contract-registry.json +120117 -0
  110. package/sdk/typescript/generated/contract-registry.mjs +3 -0
  111. package/sdk/typescript/generated/index.js +4 -15
  112. package/sdk/typescript/generated/index.mjs +14 -0
  113. package/sdk/typescript/generated/manifest.d.ts +5 -0
  114. package/sdk/typescript/generated/manifest.json +216 -16
  115. package/sdk/typescript/generated/manifest.mjs +3 -0
  116. package/sdk/typescript/generated/mcp-tool-definitions.d.ts +5 -0
  117. package/sdk/typescript/generated/mcp-tool-definitions.json +37871 -0
  118. package/sdk/typescript/generated/mcp-tool-definitions.mjs +3 -0
  119. package/sdk/typescript/index.d.ts +132 -0
  120. package/sdk/typescript/index.js +71 -9
  121. package/sdk/typescript/package.json +127 -7
package/README.md CHANGED
@@ -57,6 +57,7 @@ Node.js `>=18` required.
57
57
 
58
58
  ```bash
59
59
  # compact capability digest for agents
60
+ pandora --output json bootstrap
60
61
  pandora --output json capabilities
61
62
 
62
63
  # schema for typed consumers
@@ -85,12 +86,17 @@ pandora --output json sell --dry-run \
85
86
  pandora --output json operations list --status planned,queued,running --limit 20
86
87
  ```
87
88
 
89
+ Notes:
90
+ - `bootstrap` is the preferred first call for cold agents and returns canonical tools by default.
91
+ - Use `pandora --output json bootstrap --include-compatibility` only when you are debugging or migrating a legacy caller that still speaks in alias commands.
92
+
88
93
  ## Agent-first onboarding
89
94
 
90
95
  Use this path when the consumer is an agent, not a human operator:
91
96
 
92
97
  ```bash
93
98
  # 1) discover the live contract
99
+ pandora --output json bootstrap
94
100
  pandora --output json capabilities
95
101
  pandora --output json schema
96
102
  pandora --output json policy list
@@ -102,23 +108,55 @@ pandora mcp
102
108
  pandora mcp http [--auth-scopes <csv>]
103
109
  ```
104
110
 
111
+ Canonical-routing note:
112
+ - start from `bootstrap`, then resolve any follow-up decisions against canonical tool names from `bootstrap`, `capabilities`, or `schema`
113
+ - only opt into compatibility aliases with `--include-compatibility` when you are inspecting legacy/debug workflows; do not use alias names as the default planning surface for new agents
114
+
105
115
  If you are embedding the shipped SDKs instead of only consuming raw JSON:
106
- - local SDK execution maps to `pandora mcp` over stdio
107
- - remote SDK execution maps to intentionally hosted `pandora mcp http ...` plus a bearer token
108
- - the shared JS contract export remains under `sdk/generated`
109
- - the embedded TypeScript SDK keeps a local loader and manifest under `sdk/typescript/generated`, but the heavy generated JSON artifacts are shared from `sdk/generated` in the published root package
110
- - the embedded Python SDK keeps a local manifest under `sdk/python/pandora_agent/generated` and falls back to `sdk/generated` for heavy generated JSON artifacts in the published root package
116
+ - standalone SDK package identities:
117
+ - TypeScript/Node: `@pandora/agent-sdk`
118
+ - Python: `pandora-agent`
119
+ - current release flow builds and verifies standalone SDK artifacts for those package identities; this document does not yet claim public registry publication
120
+ - this repository and the root Pandora package also vendor matching SDK copies under `sdk/typescript` and `sdk/python` for parity, local audit, and in-tree consumption
121
+ - local SDK execution maps to `pandora mcp` over stdio on the same machine
122
+ - remote SDK execution maps to intentionally hosted `pandora mcp http ...`; remote clients connect to the `/mcp` endpoint with a bearer token
123
+ - standalone SDK packages ship package-local generated artifacts
124
+ - the repository root also keeps a shared contract bundle under `sdk/generated` for parity checks, custom generators, and vendored consumers
125
+ - the vendored TypeScript copy keeps a local loader and manifest under `sdk/typescript/generated`
126
+ - the vendored Python copy keeps a local manifest under `sdk/python/pandora_agent/generated/manifest.json`; in the published root package its loader falls back to the shared `sdk/generated` bundle for the heavy generated JSON artifacts
111
127
 
112
128
  For live signing:
113
129
  - current builds ship policy packs and named profiles in alpha
114
130
  - current builds also ship first-party recipes in alpha via `recipe list|get|validate|run`
115
- - inspect them with `policy list|get|lint` and `profile list|get|validate` before exposing tools to an agent
116
- - do not assume every built-in signer profile is runtime-ready:
117
- - implemented backends today: `read-only`, `local-env`
118
- - planning/placeholder sample backends: `external-signer`, `local-keystore`
119
- - current built-in ready profile: `market_observer_ro`
120
- - current built-in pending profiles: `prod_trader_a`, `dev_keystore_operator`, `desk_signer_service`
121
- - there is not yet a universal `--profile` selector across mutating commands, so live execution still commonly resolves signing material from env / `.env` / explicit flags
131
+ - inspect them with `policy list|get|lint` and `profile list|get|explain|validate` before exposing tools to an agent
132
+ - treat `bootstrap` as the machine-usable recommendation surface:
133
+ - `defaults.policyId` / `defaults.profileId`
134
+ - `policyProfiles.policyPacks.recommendedReadOnlyPolicyId` / `recommendedMutablePolicyId`
135
+ - `policyProfiles.signerProfiles.recommendedReadOnlyProfileId` / `recommendedMutableProfileId`
136
+ - `nextSteps[]`
137
+ - use `bootstrap` for safe defaults, then use `policy explain`, `policy recommend`, and `profile recommend` for exact context-aware remediation or ranking
138
+ - use `policy get` for pack inspection
139
+ - use `profile get` for raw profile state
140
+ - use `profile explain` for exact usability decisions
141
+ - do not collapse signer readiness into one “pending” bucket:
142
+ - implementation-status fields: `implementedBackends`, `placeholderBackends`
143
+ - runtime-readiness fields: `readyBuiltinIds`, `degradedBuiltinIds`, `placeholderBuiltinIds`
144
+ - backend-level rollup: `policyProfiles.signerProfiles.backendStatuses`
145
+ - vocabulary: `policyProfiles.signerProfiles.statusAxes`
146
+ - today, all shipped signer backends are implemented: `read-only`, `local-env`, `local-keystore`, `external-signer`
147
+ - in the default runtime view, `market_observer_ro` is the only built-in profile reporting `ready`, and it is read-only
148
+ - `--runtime-local-readiness` actively probes local signer/network prerequisites and can promote built-in mutable profiles such as `prod_trader_a`, `dev_keystore_operator`, and `desk_signer_service` to `ready` when their runtime requirements are satisfied
149
+ - in the current runtime, no built-in mutable profile is ready
150
+ - current built-in mutable profile states are:
151
+ - `prod_trader_a`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-secrets`
152
+ - `dev_keystore_operator`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-keystore`
153
+ - `desk_signer_service`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-context`
154
+ - `degraded` means the backend is implemented, but this process is still missing signer material, keystore access, external-signer context, network context, or other compatibility prerequisites
155
+ - use `profile list` for the compact `runtimeReady` / `resolutionStatus` view
156
+ - use `profile explain --id <profile-id> [--command <tool>] [--mode <mode>] [--policy-id <id>] [--chain-id <id>] [--category <id|name>]` before mutable execution to inspect `explanation.requestedContext`, `explanation.usable`, `explanation.readiness`, `explanation.compatibility`, `explanation.remediation`, and `explanation.blockers`
157
+ - there is not yet a universal `--profile` selector across mutating commands
158
+ - direct Pandora signer-bearing commands now accept `--profile-id` / `--profile-file` for `trade`, `sell`, `lp add`, `lp remove`, `resolve`, `claim`, `mirror deploy`, `mirror go`, `mirror sync once|run|start`, and `sports create run`
159
+ - other live families still commonly resolve signing material from env / `.env` / explicit flags
122
160
  - the preferred agent pattern is a scoped MCP gateway plus signer material only on the runtime that actually executes live tools
123
161
 
124
162
  ## Live execution setup
@@ -138,7 +176,23 @@ Populate `.env` or process env with only the fields your live workflow actually
138
176
  - `FACTORY`
139
177
  - `USDC`
140
178
 
141
- ## SDK And Contract Export
179
+ ## Standalone SDKs And Contract Export
180
+
181
+ Current shipped consumer paths:
182
+ - TypeScript/Node:
183
+ - standalone package identity: `@pandora/agent-sdk`
184
+ - current external install path: signed GitHub release tarball attached to the tagged Pandora release
185
+ - repository checkout path: `sdk/typescript` for maintainers and in-tree consumers
186
+ - vendored root-package copy: `pandora-cli-skills/sdk/typescript`
187
+ - Python:
188
+ - standalone package identity: `pandora-agent`
189
+ - current external install path: signed GitHub release wheel or sdist attached to the tagged Pandora release
190
+ - repository checkout path: `sdk/python` for maintainers and in-tree consumers
191
+ - module/import name: `pandora_agent`
192
+ - Shared static contract bundle:
193
+ - standalone TypeScript package: `@pandora/agent-sdk/generated`
194
+ - repository/root shared bundle: `sdk/generated`
195
+ - vendored root-package subpath: `pandora-cli-skills/sdk/generated`
142
196
 
143
197
  ```bash
144
198
  npm run generate:sdk-contracts
@@ -146,33 +200,72 @@ npm run generate:sdk-contracts
146
200
 
147
201
  Run that only from a repository checkout. The published npm package ships the generated SDK artifacts already and does not include the repo-only generator script.
148
202
 
149
- - This package ships SDK alpha source/artifact surfaces:
150
- - JavaScript/TypeScript SDK entrypoints under `sdk/typescript`
151
- - TypeScript embedded loader/manifest under `sdk/typescript/generated`
152
- - Python SDK source/package under `sdk/python`
153
- - Python embedded manifest under `sdk/python/pandora_agent/generated`
203
+ - This repository ships standalone SDK alpha packages plus vendored copies and the shared contract bundle:
204
+ - JavaScript/TypeScript SDK package sources under `sdk/typescript`
205
+ - Python SDK package sources under `sdk/python`
206
+ - vendored TypeScript loader/manifest under `sdk/typescript/generated`
207
+ - vendored Python manifest under `sdk/python/pandora_agent/generated`
154
208
  - shared JS contract export under `sdk/generated`
155
209
  - `capabilities.data.transports.sdk` reports `supported=true` and `status="alpha"` in current builds.
156
210
  - Use `capabilities` for compact discovery, canonical tool routing, transport status, and registry digests.
157
211
  - Use `schema` for the authoritative contract export: JSON envelope definitions, per-command input schemas, and `commandDescriptors`.
158
- - In a repository checkout, `npm run generate:sdk-contracts` regenerates the shared export in `sdk/generated` and the standalone SDK-local generated copies in `sdk/typescript/generated` and `sdk/python/pandora_agent/generated`.
159
- - In the published root package, the shared JSON contract bundle is stored once under `sdk/generated`; embedded SDK loaders/manifests route to that shared bundle instead of duplicating it.
160
- - For embedded SDK consumers, prefer each SDK's own generated manifest/artifact entrypoints instead of hard-coding `sdk/generated`:
161
- - TypeScript: `sdk/typescript/generated/manifest.json`
162
- - Python: `sdk/python/pandora_agent/generated/manifest.json`
212
+ - In a repository checkout, `npm run generate:sdk-contracts` regenerates the shared export in `sdk/generated` plus the standalone SDK package-local copies in `sdk/typescript/generated` and `sdk/python/pandora_agent/generated`.
213
+ - Standalone SDK consumers should prefer the standalone package entrypoints and package-local generated artifacts:
214
+ - TypeScript SDK package identity: `@pandora/agent-sdk`
215
+ - TypeScript generated bundle subpath: `@pandora/agent-sdk/generated`
216
+ - Python SDK package identity: `pandora-agent`
217
+ - Current release/distribution status:
218
+ - standalone SDK artifacts are built and verified in release flow
219
+ - use signed GitHub release assets as the external installation path unless a release explicitly announces public npm/PyPI publication
220
+ - The root Pandora package continues to vendor matching copies:
221
+ - TypeScript client: `pandora-cli-skills/sdk/typescript`
222
+ - shared contract bundle: `pandora-cli-skills/sdk/generated`
223
+ - vendored manifests: `sdk/typescript/generated/manifest.json` and `sdk/python/pandora_agent/generated/manifest.json`
163
224
  - Custom generators can still export raw `capabilities` / `schema` snapshots if they need bespoke codegen.
164
225
  - Regenerate cached clients or derived types when `commandDescriptorVersion` or `registryDigest.descriptorHash` changes.
165
- - For most agent bootstrap flows, start with `capabilities`, `schema`, `policy`, `profile`, or MCP before embedding the alpha SDK sources into your own code.
226
+ - For most agent bootstrap flows, start with `bootstrap`, then `schema`, `policy`, `profile`, or MCP before embedding the alpha SDK sources into your own code.
166
227
  - For direct execution instead of local codegen, connect an SDK or MCP client to `pandora mcp` for local stdio, or intentionally host `pandora mcp http ...` for remote streamable HTTP execution.
167
228
 
168
229
  ## Policy And Signer Guidance
169
230
 
170
231
  - Prefer scoped MCP access over broad live credentials when an agent can work through `pandora mcp http`. The gateway enforces bearer-token scopes from `--auth-scopes` against each tool's declared `policyScopes`.
171
232
  - Current builds ship policy packs in alpha. `capabilities.data.policyProfiles.policyPacks` reports `supported=true` and `status="alpha"`, and `pandora --output json policy list|get|lint` exposes the available built-in/user-defined packs.
172
- - Current builds also ship named signer profiles in alpha. `capabilities.data.policyProfiles.signerProfiles` reports `supported=true` and `status="alpha"`, and `pandora --output json profile list|get|validate` exposes sample/user profiles plus readiness metadata.
173
- - `capabilities.data.policyProfiles.signerProfiles` also exposes `implementedBackends`, `placeholderBackends`, `readyBuiltinIds`, and `pendingBuiltinIds`.
174
- - In current builds, treat only `market_observer_ro` as built-in runtime-ready by default unless `profile get` reports otherwise in your runtime.
175
- - There is not yet a universal `--profile` selector across mutating commands. Live execution still commonly resolves secrets from process env, `.env`, or explicit flags while profile-directed execution rolls out.
233
+ - Current builds also ship named signer profiles in alpha. `capabilities.data.policyProfiles.signerProfiles` reports `supported=true` and `status="alpha"`, and `pandora --output json profile list|get|explain|validate` exposes sample/user profiles plus readiness metadata.
234
+ - `bootstrap` is the canonical recommendation surface today:
235
+ - `defaults.policyId` and `defaults.profileId` are the cold-start defaults
236
+ - `policyProfiles.policyPacks.recommendedReadOnlyPolicyId` / `recommendedMutablePolicyId` are the machine-usable policy recommendations
237
+ - `policyProfiles.signerProfiles.recommendedReadOnlyProfileId` / `recommendedMutableProfileId` are the machine-usable profile recommendations
238
+ - `nextSteps[]` gives the canonical follow-up commands in order
239
+ - `bootstrap` remains the preferred cold-start surface, but exact-context commands are also available:
240
+ - `policy explain`
241
+ - `policy recommend`
242
+ - `profile recommend`
243
+ - treat those exact-context commands as follow-ups after you already know the canonical target tool and execution context; they are not a substitute for `bootstrap`
244
+ - `capabilities.data.policyProfiles.signerProfiles` now separates implementation status from runtime readiness:
245
+ - implementation fields: `implementedBackends`, `placeholderBackends`
246
+ - runtime fields: `readyBuiltinIds`, `degradedBuiltinIds`, `placeholderBuiltinIds`, `pendingBuiltinIds`
247
+ - backend rollup: `backendStatuses`
248
+ - vocabulary: `statusAxes`
249
+ - In the default runtime view, `market_observer_ro` is the only built-in profile reporting `ready`, and it is read-only.
250
+ - Use `pandora --output json capabilities --runtime-local-readiness` when you want the CLI to actively probe local signer/network prerequisites; under valid runtime conditions, built-in mutable profiles such as `prod_trader_a`, `dev_keystore_operator`, and `desk_signer_service` can move from `degraded` to `ready`.
251
+ - In the current runtime, no built-in mutable profile is ready:
252
+ - `prod_trader_a` resolves as `missing-secrets`
253
+ - `dev_keystore_operator` resolves as `missing-keystore`
254
+ - `desk_signer_service` resolves as `missing-context`
255
+ - Treat `degraded` as the backend-level summary only. The exact cause lives in the per-profile payload:
256
+ - `profile list` for `runtimeReady` and `resolutionStatus`
257
+ - `profile get --id <profile-id>` for raw `resolution` and constraint details
258
+ - `profile explain --id <profile-id> [--command <tool>] [--mode <mode>] [--policy-id <id>] [--chain-id <id>] [--category <id|name>]` for the exact decision surface:
259
+ - prefer canonical command names from `bootstrap`, `capabilities`, or `schema` when filling `--command`
260
+ - `explanation.requestedContext.exact` tells you whether the evaluation is complete or still missing flags
261
+ - `explanation.requestedContext.missingFlags` tells the agent what to add before trusting the answer
262
+ - `explanation.remediation[]` is the machine-usable action list; treat `blockers` as the human-readable summary
263
+ - There is not yet a universal `--profile` selector across mutating commands.
264
+ - Direct signer-bearing execution now supports `--profile-id` / `--profile-file` on:
265
+ - `trade`, `sell`, `lp add`, `lp remove`, `resolve`, `claim`
266
+ - `mirror deploy`, `mirror go`, `mirror sync once|run|start`
267
+ - sports live execution paths that route through the shared sports parsers/services
268
+ - Some families still commonly bootstrap secrets from process env, `.env`, or explicit flags, but profile-directed execution is no longer limited to the core trading/admin commands.
176
269
  - The built-in read-only pair is `research-only` plus `market_observer_ro`. Use that pattern for discovery, schema inspection, validation, and other non-signing agent workflows before granting write access.
177
270
  - If you host `pandora mcp http` without `--auth-token` or `--auth-token-file`, Pandora generates a bearer token at `~/.pandora/mcp-http/auth-token`. If the runtime cannot resolve a home directory, pass one of those flags explicitly.
178
271
  - `--private-key <hex>` remains supported because the live parser surface still accepts it, but use it as a manual fallback rather than the default operator pattern.
@@ -39,6 +39,7 @@ Prerequisite: Node.js `>=18`.
39
39
 
40
40
  ```bash
41
41
  npm install
42
+ node cli/pandora.cjs --output json bootstrap
42
43
  node cli/pandora.cjs --output json capabilities
43
44
  node cli/pandora.cjs --output json schema
44
45
  node cli/pandora.cjs --output json policy list
@@ -51,17 +52,23 @@ Operation tracking:
51
52
  - use `pandora --output json operations list --status planned,queued,running --limit 20` to inspect persisted mutable-operation records
52
53
 
53
54
  Preferred agent path:
54
- - start with `capabilities`, `schema`, `policy list`, `profile list`, and `recipe list`; none of those require signer material
55
+ - start with `bootstrap`, then `schema`, `policy list`, `profile list`, and `recipe list`; none of those require signer material
55
56
  - use `pandora mcp` for local stdio tool execution
56
57
  - use `pandora mcp http --auth-scopes ...` when you intentionally want a remote MCP gateway
57
- - for a remote read-only planning token that covers `scan`, `quote`, `portfolio`, `mirror plan`, `sports create plan`, and `operations list|get`, use `capabilities:read,contracts:read,documentation:read,policy:read,profile:read,operations:read,scan:read,quote:read,portfolio:read,mirror:read,sports:read,network:indexer,network:rpc,network:polymarket,network:sports`
58
+ - for a remote read-only planning token that covers `scan`, `quote`, `portfolio`, `mirror plan`, `sports create plan`, and `operations list|get`, use `capabilities:read,contracts:read,help:read,schema:read,operations:read,scan:read,quote:read,portfolio:read,mirror:read,sports:read,network:indexer,network:rpc,network:polymarket,network:sports`
58
59
  - add `operations:write` only when the remote runtime needs `operations cancel|close`; over MCP those mutating calls also require `intent.execute=true`
59
60
  - give the agent the minimum bearer-token scopes it needs
60
61
  - only provision signing secrets on the runtime that will actually execute live mutating tools
61
62
  - if you are embedding the shipped SDKs, use each package's own generated artifacts:
62
- - `sdk/typescript/generated` for the embedded TypeScript loader/manifest
63
- - `sdk/python/pandora_agent/generated` for the embedded Python manifest
64
- - `sdk/generated` for the shared JS contract export
63
+ - standalone SDK package identities are `@pandora/agent-sdk` and `pandora-agent`
64
+ - current release flow builds and verifies standalone SDK artifacts for those package identities; this guide does not yet claim public registry publication
65
+ - this shareable package also includes vendored SDK copies under `sdk/typescript` and `sdk/python`
66
+ - local SDK execution uses `pandora mcp`; remote SDK execution uses intentionally hosted `pandora mcp http ...` plus a bearer token to `/mcp`
67
+ - `sdk/typescript/generated/manifest.json` is the TypeScript manifest entrypoint
68
+ - `sdk/python/pandora_agent/generated/manifest.json` is the Python manifest entrypoint
69
+ - `sdk/generated` is the shared contract bundle
70
+ - `bootstrap` and `GET /bootstrap` return canonical tools by default
71
+ - only use `--include-compatibility` or `?include_aliases=1` when you are debugging or migrating a legacy caller that still depends on alias names
65
72
 
66
73
  Live execution setup:
67
74
  - run `npm run init-env`
@@ -83,17 +90,38 @@ Optional live Polymarket hedge env:
83
90
  - `POLYMARKET_HOST`
84
91
 
85
92
  Credential handling note:
86
- - Current builds ship policy packs and named profiles in alpha via `policy list|get|lint` and `profile list|get|validate`.
93
+ - Current builds ship policy packs and named profiles in alpha via `policy list|get|lint` and `profile list|get|explain|validate`.
87
94
  - Current builds also ship first-party recipes in alpha via `recipe list|get|validate|run`.
88
95
  - Current live command execution still commonly resolves signer secrets from flags/env during rollout.
89
- - Do not assume every built-in signer profile is runtime-ready:
90
- - implemented backends today: `read-only`, `local-env`
91
- - planning/placeholder sample backends: `external-signer`, `local-keystore`
92
- - current built-in ready profile: `market_observer_ro`
93
- - current built-in pending profiles: `prod_trader_a`, `dev_keystore_operator`, `desk_signer_service`
96
+ - Treat `bootstrap` as the recommendation surface for both policies and profiles:
97
+ - `defaults.policyId` / `defaults.profileId`
98
+ - `policyProfiles.policyPacks.recommendedReadOnlyPolicyId` / `recommendedMutablePolicyId`
99
+ - `policyProfiles.signerProfiles.recommendedReadOnlyProfileId` / `recommendedMutableProfileId`
100
+ - `nextSteps[]`
101
+ - `bootstrap` is still the preferred cold-start surface, but standalone `policy explain`, `policy recommend`, and `profile recommend` are available for exact context-aware reasoning.
102
+ - treat those exact-context commands as follow-ups after you already know the canonical target tool and execution context from `bootstrap`, `capabilities`, or `schema`
103
+ - Use `policy get` for pack inspection, `profile get` for raw profile state, and `profile explain` for exact execution-context decisions.
104
+ - Do not collapse signer readiness into one “pending” bucket:
105
+ - implementation-status fields: `implementedBackends`, `placeholderBackends`
106
+ - runtime-readiness fields: `readyBuiltinIds`, `degradedBuiltinIds`, `placeholderBuiltinIds`
107
+ - backend rollup: `policyProfiles.signerProfiles.backendStatuses`
108
+ - vocabulary: `policyProfiles.signerProfiles.statusAxes`
109
+ - today, all shipped signer backends are implemented: `read-only`, `local-env`, `local-keystore`, `external-signer`
110
+ - in the default runtime view, `market_observer_ro` is the only built-in profile reporting `ready`, and it is read-only
111
+ - `--runtime-local-readiness` actively probes local signer/network prerequisites and can promote built-in mutable profiles such as `prod_trader_a`, `dev_keystore_operator`, and `desk_signer_service` to `ready` when their runtime requirements are satisfied
112
+ - in the current runtime, no built-in mutable profile is ready
113
+ - current built-in mutable profile states are:
114
+ - `prod_trader_a`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-secrets`
115
+ - `dev_keystore_operator`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-keystore`
116
+ - `desk_signer_service`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-context`
117
+ - `degraded` means the backend exists, but this runtime is still missing signer material, keystore access, external-signer context, network context, or compatibility prerequisites
118
+ - use `profile list` for the compact `runtimeReady` / `resolutionStatus` view
119
+ - use `profile explain --id <profile-id> [--command <tool>] [--mode <mode>] [--policy-id <id>] [--chain-id <id>] [--category <id|name>]` before mutable execution to inspect `explanation.requestedContext`, `explanation.usable`, `explanation.readiness`, `explanation.compatibility`, `explanation.remediation`, and `explanation.blockers`
94
120
  - Prefer process env, `.env`, or your own secret-manager wrapper that materializes those env vars before launching Pandora.
95
121
  - Avoid putting raw `--private-key` values on the command line unless you explicitly need a one-off manual override.
96
- - There is not yet a universal `--profile` selector across mutating commands.
122
+ - There is not yet a universal `--profile` selector across every mutating command family.
123
+ - Direct Pandora signer-bearing commands now accept `--profile-id` / `--profile-file` for `trade`, `sell`, `lp add`, `lp remove`, `resolve`, `claim`, `mirror deploy`, `mirror go`, `mirror sync once|run|start`, and `sports create run`.
124
+ - Mirror deploy/go/sync flows and sports live execution paths now also accept profile selectors in current builds; use `pandora --output json capabilities` or `schema` to confirm support on the exact command family you plan to call.
97
125
 
98
126
  ## Documentation map
99
127
  - [`SKILL.md`](./SKILL.md)
@@ -125,7 +153,23 @@ Credential handling note:
125
153
  - [`docs/trust/support-matrix.md`](./docs/trust/support-matrix.md)
126
154
  - support status and guarantees for local CLI, MCP transports, SDKs, benchmarks, and packaged docs
127
155
 
128
- ## SDK And Contract Export
156
+ ## Standalone SDKs And Contract Export
157
+
158
+ Current shipped consumer paths:
159
+ - TypeScript/Node:
160
+ - standalone package identity: `@pandora/agent-sdk`
161
+ - current external install path: signed GitHub release tarball attached to the tagged Pandora release
162
+ - unpacked tree path: `sdk/typescript` for maintainers and in-tree consumers
163
+ - vendored root-package copy: `pandora-cli-skills/sdk/typescript`
164
+ - Python:
165
+ - standalone package identity: `pandora-agent`
166
+ - current external install path: signed GitHub release wheel or sdist attached to the tagged Pandora release
167
+ - embedded package source: `sdk/python` for maintainers and in-tree consumers
168
+ - module/import name: `pandora_agent`
169
+ - Shared contract bundle:
170
+ - standalone TypeScript package: `@pandora/agent-sdk/generated`
171
+ - installed root-package subpath: `pandora-cli-skills/sdk/generated`
172
+ - unpacked tree path: `sdk/generated`
129
173
 
130
174
  ```bash
131
175
  npm run generate:sdk-contracts
@@ -133,20 +177,28 @@ npm run generate:sdk-contracts
133
177
 
134
178
  Run that only from a repository checkout. The published npm package already includes the generated SDK artifacts and does not ship the repo-only generator script.
135
179
 
136
- - This package ships SDK alpha source/artifact surfaces:
137
- - JavaScript/TypeScript SDK entrypoints under `sdk/typescript`
138
- - TypeScript embedded loader/manifest under `sdk/typescript/generated`
139
- - Python SDK source/package under `sdk/python`
140
- - Python embedded manifest under `sdk/python/pandora_agent/generated`
180
+ - This repository ships standalone SDK alpha packages plus vendored copies and the shared contract bundle:
181
+ - JavaScript/TypeScript SDK package sources under `sdk/typescript`
182
+ - Python SDK package sources under `sdk/python`
183
+ - vendored TypeScript loader/manifest under `sdk/typescript/generated`
184
+ - vendored Python manifest under `sdk/python/pandora_agent/generated`
141
185
  - shared JS contract export under `sdk/generated`
142
186
  - `capabilities.data.transports.sdk` reports `supported=true` and `status="alpha"` in current builds.
143
187
  - Export `capabilities` for compact routing, transport, and digest metadata.
144
188
  - Export `schema` for authoritative JSON Schema definitions and per-command descriptors.
145
- - In a repository checkout, `npm run generate:sdk-contracts` regenerates the shared export in `sdk/generated` plus the standalone SDK-local generated copies in `sdk/typescript/generated` and `sdk/python/pandora_agent/generated`.
146
- - In the published root package, the shared JSON contract bundle is stored once under `sdk/generated`; embedded SDK loaders/manifests route to that shared bundle instead of duplicating it.
147
- - SDK consumers should prefer the package-local manifests/artifacts they ship with:
148
- - TypeScript: `sdk/typescript/generated/manifest.json`
149
- - Python: `sdk/python/pandora_agent/generated/manifest.json`
189
+ - In a repository checkout, `npm run generate:sdk-contracts` regenerates the shared export in `sdk/generated` plus the standalone SDK package-local copies in `sdk/typescript/generated` and `sdk/python/pandora_agent/generated`.
190
+ - Standalone SDK consumers should prefer the standalone package entrypoints and package-local generated artifacts:
191
+ - TypeScript SDK package identity: `@pandora/agent-sdk`
192
+ - TypeScript generated bundle subpath: `@pandora/agent-sdk/generated`
193
+ - Python SDK package identity: `pandora-agent`
194
+ - use signed GitHub release assets as the external installation path unless a release explicitly announces public npm/PyPI publication
195
+ - Current release/distribution status:
196
+ - standalone SDK artifacts are built and verified in release flow
197
+ - public npm/PyPI publication is not claimed by this guide yet
198
+ - This shareable root package also vendors matching copies:
199
+ - TypeScript client: `pandora-cli-skills/sdk/typescript`
200
+ - shared contract bundle: `pandora-cli-skills/sdk/generated`
201
+ - vendored manifests: `sdk/typescript/generated/manifest.json` and `sdk/python/pandora_agent/generated/manifest.json`
150
202
  - Raw `capabilities` / `schema` exports remain available for custom generators.
151
203
  - Rebuild any generated client layer when `commandDescriptorVersion` or `registryDigest.descriptorHash` changes.
152
204
  - Use `pandora mcp` for local stdio SDK/MCP execution, or intentionally hosted `pandora mcp http ...` for remote streamable HTTP execution instead of local code generation.
@@ -155,10 +207,35 @@ Run that only from a repository checkout. The published npm package already incl
155
207
 
156
208
  - `pandora mcp http` enforces bearer-token scopes from `--auth-scopes` against each tool's declared `policyScopes`.
157
209
  - `capabilities.data.policyProfiles.policyPacks` reports `supported=true` and `status="alpha"` in current builds. Use `policy list|get|lint` to inspect the shipped packs.
158
- - `capabilities.data.policyProfiles.signerProfiles` reports `supported=true` and `status="alpha"` in current builds. Use `profile list|get|validate` to inspect the shipped/sample profiles and readiness metadata.
159
- - The signer-profile payload also exposes `implementedBackends`, `placeholderBackends`, `readyBuiltinIds`, and `pendingBuiltinIds`.
210
+ - `capabilities.data.policyProfiles.signerProfiles` reports `supported=true` and `status="alpha"` in current builds. Use `profile list|get|explain|validate` to inspect the shipped/sample profiles and readiness metadata.
211
+ - `bootstrap` is the canonical recommendation surface for cold agents:
212
+ - `defaults.policyId` / `defaults.profileId`
213
+ - `policyProfiles.policyPacks.recommendedReadOnlyPolicyId` / `recommendedMutablePolicyId`
214
+ - `policyProfiles.signerProfiles.recommendedReadOnlyProfileId` / `recommendedMutableProfileId`
215
+ - `nextSteps[]`
216
+ - Keep using `bootstrap` first for defaults, and use `policy explain`, `policy recommend`, or `profile recommend` when the agent already knows the exact workflow context it wants to evaluate.
217
+ - Compatibility aliases stay hidden by default; opt in only for legacy/debug inspection, not routine planning.
218
+ - The signer-profile payload now separates implementation status from runtime readiness:
219
+ - implementation fields: `implementedBackends`, `placeholderBackends`
220
+ - runtime fields: `readyBuiltinIds`, `degradedBuiltinIds`, `placeholderBuiltinIds`, `pendingBuiltinIds`
221
+ - backend rollup: `backendStatuses`
222
+ - vocabulary: `statusAxes`
160
223
  - The built-in read-only bootstrap pair is `research-only` plus `market_observer_ro`.
161
- - Do not assume a global `--policy` or `--profile` selector exists across mutating commands yet.
224
+ - In the default runtime view, `market_observer_ro` is the only built-in profile reporting `ready`, and it is read-only.
225
+ - Use `pandora --output json capabilities --runtime-local-readiness` when you want the CLI to actively probe local signer/network prerequisites; under valid runtime conditions, built-in mutable profiles such as `prod_trader_a`, `dev_keystore_operator`, and `desk_signer_service` can move from `degraded` to `ready`.
226
+ - In the current runtime, no built-in mutable profile is ready:
227
+ - `prod_trader_a` resolves as `missing-secrets`
228
+ - `dev_keystore_operator` resolves as `missing-keystore`
229
+ - `desk_signer_service` resolves as `missing-context`
230
+ - Treat `degraded` as the backend-level summary only. The exact reason lives in the profile payload:
231
+ - `profile list` for `runtimeReady` and `resolutionStatus`
232
+ - `profile get --id <profile-id>` for raw `resolution`
233
+ - `profile explain --id <profile-id> [--command <tool>] [--mode <mode>] [--policy-id <id>] [--chain-id <id>] [--category <id|name>]` for the exact decision surface:
234
+ - prefer canonical command names from `bootstrap`, `capabilities`, or `schema` when filling `--command`
235
+ - `explanation.requestedContext.exact` tells you whether the evaluation is complete
236
+ - `explanation.requestedContext.missingFlags` tells you what to add before trusting the result
237
+ - `explanation.remediation[]` is the machine-usable action list; `blockers` is the human-readable summary
238
+ - Do not assume a global `--policy` or `--profile` selector exists across every mutating family yet.
162
239
  - For current live automation, prefer scoped gateway tokens plus env-based signer injection over raw command-line private keys.
163
240
 
164
241
  ## Mirror operator guidance
package/SKILL.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: pandora-cli-skills
3
3
  summary: Index and operator guide for Pandora CLI capabilities, mirror operations, and agent-native interfaces.
4
- version: 1.1.69
4
+ version: 1.1.70
5
5
  ---
6
6
 
7
7
  # Pandora CLI & Skills
@@ -52,16 +52,52 @@ Start here, then open the smallest scoped doc that matches the task:
52
52
  - CLI mirror execute reruns use `--validation-ticket <ticket>`. MCP execute/live reruns use `agentPreflight = { validationTicket, validationDecision: "PASS", validationSummary }`.
53
53
  - `sports create run` does not expose a CLI `--validation-ticket`; agent-controlled execute uses `agentPreflight` / `PANDORA_AGENT_PREFLIGHT`.
54
54
  - `launch` / `clone-bet` still expose `--target-timestamp-offset-hours`; that legacy script flag is **not** the mirror timing model.
55
- - Prefer policy-scoped MCP access and the shipped read-only policy/profile artifacts over raw `--private-key` when operating live flows. Policy packs and named profiles are now shipped in alpha via `policy` / `profile`, but current CLI execution still commonly resolves secrets from flags/env and does not yet expose a universal `--profile` selector across mutating commands.
56
- - Do not assume every built-in signer profile is execution-ready. Current built-in runtime-ready profile: `market_observer_ro`. Built-in pending profiles: `prod_trader_a`, `dev_keystore_operator`, `desk_signer_service`. Implemented backends today: `read-only`, `local-env`. Placeholder planning backends: `external-signer`, `local-keystore`.
55
+ - Prefer policy-scoped MCP access and the shipped read-only policy/profile artifacts over raw `--private-key` when operating live flows. Policy packs and named profiles are now shipped in alpha via `policy` / `profile`. Profile-directed execution already covers the highest-value signer-bearing paths:
56
+ - `trade`, `sell`, `lp add`, `lp remove`, `resolve`, `claim`
57
+ - `mirror deploy`, `mirror go`, `mirror sync once|run|start`
58
+ - `sports create run`
59
+ - `mirror deploy`, `mirror go`, `mirror sync once|run|start`
60
+ - sports live execution paths routed through the shared sports command/parser stack
61
+ - Profile support is still not universal across every mutating family, so use `capabilities` / `schema` as the authority for the current command-level surface.
62
+ - Do not collapse signer readiness into one “pending” bucket. Use `capabilities.data.policyProfiles.signerProfiles.statusAxes` plus:
63
+ - implementation fields: `implementedBackends`, `placeholderBackends`
64
+ - runtime fields: `readyBuiltinIds`, `degradedBuiltinIds`, `placeholderBuiltinIds`, `pendingBuiltinIds`
65
+ - backend rollup: `backendStatuses`
66
+ - today, all shipped signer backends are implemented: `read-only`, `local-env`, `local-keystore`, `external-signer`
67
+ - in the default runtime view, `market_observer_ro` is the only built-in profile reporting `ready`, and it is read-only
68
+ - `--runtime-local-readiness` actively probes local signer/network prerequisites and can promote built-in mutable profiles such as `prod_trader_a`, `dev_keystore_operator`, and `desk_signer_service` to `ready` when their runtime requirements are satisfied
69
+ - in the current runtime, no built-in mutable profile is ready
70
+ - current built-in mutable profile states are:
71
+ - `prod_trader_a`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-secrets`
72
+ - `dev_keystore_operator`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-keystore`
73
+ - `desk_signer_service`: backend rollup `degraded`, per-profile `resolutionStatus` `missing-context`
74
+ - `degraded` means the backend is implemented, but the current process is still missing signer material, keystore access, external-signer context, network context, or other compatibility prerequisites
75
+ - use `bootstrap` for machine-usable policy/profile recommendations:
76
+ - `defaults.policyId` / `defaults.profileId`
77
+ - `policyProfiles.policyPacks.recommendedReadOnlyPolicyId` / `recommendedMutablePolicyId`
78
+ - `policyProfiles.signerProfiles.recommendedReadOnlyProfileId` / `recommendedMutableProfileId`
79
+ - `nextSteps[]`
80
+ - `bootstrap` returns canonical tools by default
81
+ - use `--include-compatibility` or remote `include_aliases=1` only for legacy/debug workflows or migration diffing
82
+ - use standalone exact-context commands when needed:
83
+ - `policy explain --id <policy-id> --command <tool> --mode <mode> --chain-id <id> --category <id|name> [--profile-id <id>]`
84
+ - `policy recommend --command <tool> --mode <mode> --chain-id <id> --category <id|name> [--profile-id <id>]`
85
+ - `profile recommend --command <tool> --mode <mode> --chain-id <id> --category <id|name> [--policy-id <id>]`
86
+ - use `profile list` for the compact readiness view and `profile explain --id <profile-id> [--command <tool>] [--mode <mode>] [--policy-id <id>] [--chain-id <id>] [--category <id|name>]` when you need the exact go/no-go answer via `requestedContext`, `usable`, `readiness`, `compatibility`, `remediation`, and `blockers`
57
87
 
58
88
  ## Capability routing
59
89
  - Machine-first discovery:
90
+ - run `pandora --output json bootstrap` for the canonical first-call summary
60
91
  - run `pandora --output json capabilities` for the compact runtime digest
61
92
  - run `pandora --output json schema` for the full contract surface
62
93
  - run `pandora --output json policy list` to inspect shipped policy packs
63
94
  - run `pandora --output json profile list` to inspect shipped profiles, `runtimeReady`, `resolutionStatus`, and backend readiness metadata
64
- - when exposing Pandora to external agents, start with `capabilities/schema`, then intentionally host `pandora mcp http --auth-scopes ...`, then provision signing secrets only on that runtime if a selected tool actually requires them
95
+ - keep bootstrap/capabilities/schema planning on canonical tool names by default
96
+ - opt into compatibility aliases only for legacy/debug workflows; do not promote alias names back into normal agent routing
97
+ - use `bootstrap` first for defaults; use `policy explain`, `policy recommend`, and `profile recommend` only when you already know the exact command/mode/chain/category path you want evaluated
98
+ - run `pandora --output json profile explain --id <profile-id> [--command <tool>] [--mode <mode>] [--policy-id <id>] [--chain-id <id>] [--category <id|name>]` before mutable execution to inspect `explanation.requestedContext`, `explanation.usable`, `explanation.readiness`, `explanation.compatibility`, `explanation.remediation`, and `explanation.blockers`
99
+ - use `capabilities.data.policyProfiles.signerProfiles.backendStatuses` when you need the compact backend-level split between `implemented` / `placeholder` and `ready` / `degraded`
100
+ - when exposing Pandora to external agents, start with `bootstrap`, then `schema`, then intentionally host `pandora mcp http --auth-scopes ...`, then provision signing secrets only on that runtime if a selected tool actually requires them
65
101
  - in a repository checkout, use `npm run generate:sdk-contracts` when regenerating the shared JS export in `sdk/generated` plus the standalone SDK-local generated copies in `sdk/typescript/generated` and `sdk/python/pandora_agent/generated`
66
102
  - SDK alpha source/artifact surfaces are already shipped in this build under `sdk/typescript`, `sdk/python`, and `sdk/generated`
67
103
  - in the published root package, the shared JSON contract bundle lives once under `sdk/generated`; the embedded TypeScript/Python SDK loaders keep their own manifests and route heavy generated artifacts to the shared bundle
@@ -97,7 +133,7 @@ Start here, then open the smallest scoped doc that matches the task:
97
133
  ## Canonical command paths
98
134
  - Discovery:
99
135
  - `pandora scan` is the canonical enriched discovery path.
100
- - `pandora markets scan` remains a backward-compatible alias.
136
+ - `pandora markets scan` remains a backward-compatible alias for legacy/debug workflows.
101
137
  - `pandora markets list|get` are the raw indexer browse surfaces.
102
138
  - Trading:
103
139
  - `pandora quote` is the canonical read-only pricing path.
@@ -106,20 +142,22 @@ Start here, then open the smallest scoped doc that matches the task:
106
142
  - `pandora claim` is the canonical redeem path.
107
143
  - Arbitrage:
108
144
  - `pandora arb scan` is the canonical arbitrage scan path.
109
- - `pandora arbitrage` remains the bounded one-shot wrapper.
145
+ - `pandora arbitrage` remains the bounded one-shot wrapper for legacy/debug workflows.
110
146
  - Mirror:
111
147
  - `pandora mirror browse|plan|deploy|verify|lp-explain|hedge-calc|simulate|go|sync|status|close`
112
148
  - Agent-native:
113
- - `pandora --output json capabilities`
114
- - `pandora --output json schema`
115
- - `pandora --output json policy list|get|lint`
116
- - `pandora --output json profile list|get|validate`
117
- - `pandora --output json recipe list|get|validate|run`
149
+ - `pandora --output json bootstrap`
150
+ - preferred first call for cold agents; canonical tools only by default
151
+ - `pandora --output json capabilities`
152
+ - `pandora --output json schema`
153
+ - `pandora --output json policy list|get|lint`
154
+ - `pandora --output json profile list|get|explain|validate`
155
+ - `pandora --output json recipe list|get|validate|run`
118
156
  - use `capabilities` for compact discovery/routing and `schema` for authoritative contract export when generating client types
119
157
  - for embedded SDK consumers, load the SDK-local manifest entrypoints first rather than assuming every language reads directly from `sdk/generated`
120
158
  - `pandora mcp`
121
159
  - `pandora mcp http ...` only for remote gateway hosting, not routine discovery
122
- - `pandora operations get|list|cancel|close`
160
+ - `pandora operations get|list|receipt|verify-receipt|cancel|close`
123
161
 
124
162
  ## PollCategory enum
125
163
  Use this mapping anywhere a deploy-style flow explicitly exposes `--category`: