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.
- package/README.md +121 -28
- package/README_FOR_SHARING.md +103 -26
- package/SKILL.md +50 -12
- package/benchmarks/latest/core-bundle.json +293 -0
- package/benchmarks/latest/core-history.json +67 -0
- package/benchmarks/latest/core-report.json +481 -96
- package/benchmarks/locks/core.lock.json +63 -0
- package/cli/lib/agent_contract_registry.cjs +316 -30
- package/cli/lib/bootstrap_command_service.cjs +970 -0
- package/cli/lib/capabilities_command_service.cjs +1239 -41
- package/cli/lib/cli_output_service.cjs +8 -3
- package/cli/lib/command_router.cjs +4 -0
- package/cli/lib/market_admin_service.cjs +90 -19
- package/cli/lib/mcp_http_gateway_service.cjs +1673 -59
- package/cli/lib/mcp_protocol_service.cjs +3 -1
- package/cli/lib/mcp_server_service.cjs +11 -2
- package/cli/lib/mcp_tool_registry.cjs +54 -12
- package/cli/lib/mirror_command_service.cjs +4 -4
- package/cli/lib/mirror_handlers/go.cjs +4 -0
- package/cli/lib/mirror_handlers/sync.cjs +2 -0
- package/cli/lib/mirror_service.cjs +5 -0
- package/cli/lib/operation_receipt_service.cjs +488 -0
- package/cli/lib/operation_receipt_signing_service.cjs +174 -0
- package/cli/lib/operation_receipt_store.cjs +192 -0
- package/cli/lib/operation_service.cjs +152 -6
- package/cli/lib/operation_state_store.cjs +72 -0
- package/cli/lib/operation_webhook_delivery_store.cjs +167 -0
- package/cli/lib/operation_webhook_service.cjs +22 -0
- package/cli/lib/operations_command_service.cjs +100 -1
- package/cli/lib/pandora_deploy_service.cjs +43 -5
- package/cli/lib/parsers/claim_flags.cjs +20 -0
- package/cli/lib/parsers/lp_flags.cjs +21 -0
- package/cli/lib/parsers/mirror_deploy_flags.cjs +18 -0
- package/cli/lib/parsers/mirror_go_flags.cjs +17 -0
- package/cli/lib/parsers/mirror_sync_flags.cjs +17 -0
- package/cli/lib/parsers/operations_flags.cjs +25 -4
- package/cli/lib/parsers/policy_flags.cjs +193 -4
- package/cli/lib/parsers/profile_flags.cjs +71 -6
- package/cli/lib/parsers/resolve_flags.cjs +20 -0
- package/cli/lib/parsers/shared_profile_selector_flags.cjs +65 -0
- package/cli/lib/parsers/sports_flags.cjs +18 -0
- package/cli/lib/parsers/trade_flags.cjs +20 -0
- package/cli/lib/policy_command_service.cjs +350 -1
- package/cli/lib/policy_evaluator_service.cjs +326 -23
- package/cli/lib/policy_profile_guidance_service.cjs +501 -0
- package/cli/lib/profile_command_service.cjs +607 -13
- package/cli/lib/profile_registry_service.cjs +31 -0
- package/cli/lib/profile_resolver_service.cjs +934 -83
- package/cli/lib/recipe_command_service.cjs +3 -2
- package/cli/lib/recipe_runtime_service.cjs +100 -9
- package/cli/lib/schema_command_service.cjs +1049 -17
- package/cli/lib/sdk_contract_service.cjs +175 -9
- package/cli/lib/shared/profile_constants.cjs +27 -2
- package/cli/lib/shared/recipe_builtin_packs.cjs +2 -2
- package/cli/lib/signers/execution_signer_service.cjs +444 -0
- package/cli/lib/signers/external_signer_backend.cjs +946 -0
- package/cli/lib/signers/index.cjs +143 -0
- package/cli/lib/signers/local_keystore_signer.cjs +546 -0
- package/cli/lib/signers/signer_backend_types.cjs +306 -0
- package/cli/lib/skill_doc_registry.cjs +12 -1
- package/cli/lib/sports_command_service.cjs +5 -0
- package/cli/lib/webhook_service.cjs +116 -10
- package/cli/pandora.cjs +94 -20
- package/docs/benchmarks/README.md +270 -48
- package/docs/benchmarks/history.json +67 -0
- package/docs/benchmarks/scenario-catalog.md +84 -32
- package/docs/skills/agent-interfaces.md +183 -16
- package/docs/skills/agent-quickstart.md +160 -10
- package/docs/skills/capabilities.md +61 -13
- package/docs/skills/command-reference.md +72 -11
- package/docs/skills/mirror-operations.md +2 -2
- package/docs/skills/policy-profiles.md +72 -8
- package/docs/skills/portfolio-closeout.md +13 -0
- package/docs/skills/recipes.md +2 -0
- package/docs/skills/trading-workflows.md +2 -2
- package/docs/trust/final-readiness-signoff.md +156 -0
- package/docs/trust/operator-deployment.md +334 -0
- package/docs/trust/release-verification.md +347 -4
- package/docs/trust/security-model.md +75 -0
- package/docs/trust/support-matrix.md +69 -6
- package/package.json +18 -9
- package/scripts/release/install_release.sh +186 -10
- package/sdk/generated/command-descriptors.json +712 -330
- package/sdk/generated/contract-registry.json +60692 -49250
- package/sdk/generated/manifest.json +230 -17
- package/sdk/generated/mcp-tool-definitions.json +2563 -632
- package/sdk/python/README.md +179 -19
- package/sdk/python/pandora_agent/__init__.py +10 -1
- package/sdk/python/pandora_agent/backends.py +56 -20
- package/sdk/python/pandora_agent/catalog.py +2 -15
- package/sdk/python/pandora_agent/client.py +16 -0
- package/sdk/python/pandora_agent/errors.py +38 -2
- package/sdk/python/pandora_agent/generated/command-descriptors.json +18526 -0
- package/sdk/python/pandora_agent/generated/contract-registry.json +120117 -0
- package/sdk/python/pandora_agent/generated/manifest.json +198 -18
- package/sdk/python/pandora_agent/generated/mcp-tool-definitions.json +37871 -0
- package/sdk/python/pyproject.toml +18 -4
- package/sdk/typescript/README.md +195 -41
- package/sdk/typescript/backends.d.ts +15 -0
- package/sdk/typescript/backends.js +20 -0
- package/sdk/typescript/catalog.d.ts +26 -0
- package/sdk/typescript/catalog.js +24 -0
- package/sdk/typescript/errors.d.ts +7 -0
- package/sdk/typescript/errors.js +13 -0
- package/sdk/typescript/generated/command-descriptors.d.ts +5 -0
- package/sdk/typescript/generated/command-descriptors.json +18526 -0
- package/sdk/typescript/generated/command-descriptors.mjs +3 -0
- package/sdk/typescript/generated/contract-registry.d.ts +5 -0
- package/sdk/typescript/generated/contract-registry.json +120117 -0
- package/sdk/typescript/generated/contract-registry.mjs +3 -0
- package/sdk/typescript/generated/index.js +4 -15
- package/sdk/typescript/generated/index.mjs +14 -0
- package/sdk/typescript/generated/manifest.d.ts +5 -0
- package/sdk/typescript/generated/manifest.json +216 -16
- package/sdk/typescript/generated/manifest.mjs +3 -0
- package/sdk/typescript/generated/mcp-tool-definitions.d.ts +5 -0
- package/sdk/typescript/generated/mcp-tool-definitions.json +37871 -0
- package/sdk/typescript/generated/mcp-tool-definitions.mjs +3 -0
- package/sdk/typescript/index.d.ts +132 -0
- package/sdk/typescript/index.js +71 -9
- 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
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
- the
|
|
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
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
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
|
-
##
|
|
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
|
|
150
|
-
- JavaScript/TypeScript SDK
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
- Python
|
|
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`
|
|
159
|
-
-
|
|
160
|
-
-
|
|
161
|
-
- TypeScript:
|
|
162
|
-
- Python: `
|
|
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 `
|
|
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
|
-
- `
|
|
174
|
-
-
|
|
175
|
-
-
|
|
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.
|
package/README_FOR_SHARING.md
CHANGED
|
@@ -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 `
|
|
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,
|
|
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
|
-
-
|
|
63
|
-
-
|
|
64
|
-
- `sdk/
|
|
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
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
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
|
|
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
|
-
##
|
|
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
|
|
137
|
-
- JavaScript/TypeScript SDK
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
- Python
|
|
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
|
|
146
|
-
-
|
|
147
|
-
- SDK
|
|
148
|
-
- TypeScript:
|
|
149
|
-
- Python: `
|
|
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
|
-
-
|
|
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
|
-
-
|
|
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.
|
|
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
|
|
56
|
-
-
|
|
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
|
-
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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`:
|