@prospera/eprospera-cli 0.1.0

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 (91) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +140 -0
  4. package/bin/eprospera.js +3 -0
  5. package/cli.ocs.yaml +406 -0
  6. package/dist/bundle/eprospera.mjs +28349 -0
  7. package/dist/completions/eprospera.bash +7 -0
  8. package/dist/completions/eprospera.fish +2 -0
  9. package/dist/completions/eprospera.ps1 +7 -0
  10. package/dist/completions/eprospera.zsh +4 -0
  11. package/dist/src/api/client.d.ts +29 -0
  12. package/dist/src/api/client.js +131 -0
  13. package/dist/src/api/errors.d.ts +11 -0
  14. package/dist/src/api/errors.js +125 -0
  15. package/dist/src/api/generated.d.ts +1159 -0
  16. package/dist/src/api/generated.js +6 -0
  17. package/dist/src/commands/application/create.d.ts +5 -0
  18. package/dist/src/commands/application/create.js +62 -0
  19. package/dist/src/commands/application/get.d.ts +2 -0
  20. package/dist/src/commands/application/get.js +11 -0
  21. package/dist/src/commands/application/list.d.ts +2 -0
  22. package/dist/src/commands/application/list.js +8 -0
  23. package/dist/src/commands/application/pay.d.ts +5 -0
  24. package/dist/src/commands/application/pay.js +27 -0
  25. package/dist/src/commands/application/watch.d.ts +7 -0
  26. package/dist/src/commands/application/watch.js +42 -0
  27. package/dist/src/commands/auth/login.d.ts +7 -0
  28. package/dist/src/commands/auth/login.js +60 -0
  29. package/dist/src/commands/auth/logout.d.ts +2 -0
  30. package/dist/src/commands/auth/logout.js +14 -0
  31. package/dist/src/commands/auth/whoami.d.ts +2 -0
  32. package/dist/src/commands/auth/whoami.js +19 -0
  33. package/dist/src/commands/completion.d.ts +3 -0
  34. package/dist/src/commands/completion.js +80 -0
  35. package/dist/src/commands/config/get.d.ts +2 -0
  36. package/dist/src/commands/config/get.js +9 -0
  37. package/dist/src/commands/config/list.d.ts +2 -0
  38. package/dist/src/commands/config/list.js +7 -0
  39. package/dist/src/commands/config/set.d.ts +2 -0
  40. package/dist/src/commands/config/set.js +9 -0
  41. package/dist/src/commands/config/unset.d.ts +2 -0
  42. package/dist/src/commands/config/unset.js +9 -0
  43. package/dist/src/commands/entity/documents.d.ts +2 -0
  44. package/dist/src/commands/entity/documents.js +11 -0
  45. package/dist/src/commands/entity/get.d.ts +2 -0
  46. package/dist/src/commands/entity/get.js +11 -0
  47. package/dist/src/commands/entity/search.d.ts +2 -0
  48. package/dist/src/commands/entity/search.js +17 -0
  49. package/dist/src/commands/entity/verify.d.ts +2 -0
  50. package/dist/src/commands/entity/verify.js +9 -0
  51. package/dist/src/commands/files.d.ts +2 -0
  52. package/dist/src/commands/files.js +24 -0
  53. package/dist/src/commands/me/id-verification.d.ts +2 -0
  54. package/dist/src/commands/me/id-verification.js +8 -0
  55. package/dist/src/commands/me/profile.d.ts +2 -0
  56. package/dist/src/commands/me/profile.js +8 -0
  57. package/dist/src/commands/me/residency.d.ts +2 -0
  58. package/dist/src/commands/me/residency.js +8 -0
  59. package/dist/src/commands/runtime.d.ts +56 -0
  60. package/dist/src/commands/runtime.js +101 -0
  61. package/dist/src/commands/schema.d.ts +2 -0
  62. package/dist/src/commands/schema.js +13 -0
  63. package/dist/src/config/store.d.ts +14 -0
  64. package/dist/src/config/store.js +99 -0
  65. package/dist/src/credentials/resolve.d.ts +15 -0
  66. package/dist/src/credentials/resolve.js +63 -0
  67. package/dist/src/credentials/store.d.ts +22 -0
  68. package/dist/src/credentials/store.js +184 -0
  69. package/dist/src/credentials/types.d.ts +15 -0
  70. package/dist/src/credentials/types.js +5 -0
  71. package/dist/src/errors.d.ts +39 -0
  72. package/dist/src/errors.js +38 -0
  73. package/dist/src/index.d.ts +4 -0
  74. package/dist/src/index.js +244 -0
  75. package/dist/src/output/format.d.ts +27 -0
  76. package/dist/src/output/format.js +126 -0
  77. package/dist/src/output/table.d.ts +5 -0
  78. package/dist/src/output/table.js +124 -0
  79. package/dist/src/output/tty.d.ts +26 -0
  80. package/dist/src/output/tty.js +41 -0
  81. package/dist/src/polling/watch.d.ts +19 -0
  82. package/dist/src/polling/watch.js +86 -0
  83. package/dist/src/prompts/confirm.d.ts +2 -0
  84. package/dist/src/prompts/confirm.js +19 -0
  85. package/dist/src/scopes/check.d.ts +17 -0
  86. package/dist/src/scopes/check.js +64 -0
  87. package/dist/src/scopes/map.d.ts +81 -0
  88. package/dist/src/scopes/map.js +76 -0
  89. package/dist/src/version.d.ts +1 -0
  90. package/dist/src/version.js +35 -0
  91. package/package.json +70 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@prospera/eprospera-cli` will be documented in this
4
+ file. This file is managed by [Changesets](https://github.com/changesets/changesets);
5
+ do not edit it by hand. To propose a change to published behavior, run
6
+ `pnpm exec changeset` and commit the generated entry under `.changeset/`.
7
+
8
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
9
+ the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
10
+
11
+ ## Unreleased
12
+
13
+ - Initial scaffold. No published releases yet.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Prospera
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,140 @@
1
+ # eprospera-cli
2
+
3
+ TypeScript command-line interface for the e-Prospera public API.
4
+
5
+ `eprospera` is designed for scriptable legal-entity, application, identity, auth,
6
+ configuration, completion, and schema workflows. The CLI is JSON-friendly by
7
+ default so it can be used cleanly from shells, CI jobs, and agentic tools.
8
+
9
+ ## Status
10
+
11
+ This repository is in v0.1 release preparation. The OpenCLI command spec,
12
+ generated API types, command implementations, completion/doc generation scripts,
13
+ validation tooling, CI, release automation, and bundled executable build are in
14
+ place. The npm package is not published until the first Changesets release runs.
15
+
16
+ ## Requirements
17
+
18
+ - Node.js 20 or newer
19
+ - pnpm 10.x
20
+
21
+ ## Install
22
+
23
+ Once published:
24
+
25
+ ```sh
26
+ npm install -g @prospera/eprospera-cli
27
+ ```
28
+
29
+ For local development:
30
+
31
+ ```sh
32
+ pnpm install
33
+ pnpm run gen:all
34
+ pnpm run build
35
+ ```
36
+
37
+ ## Command Surface
38
+
39
+ The v0.1 command surface is defined in `cli.ocs.yaml`.
40
+
41
+ | Area | Commands |
42
+ | --- | --- |
43
+ | Legal entities | `entity verify`, `entity search`, `entity get`, `entity documents` |
44
+ | Applications | `application list`, `application create`, `application get`, `application pay`, `application watch` |
45
+ | Current user | `me profile`, `me residency`, `me id-verification` |
46
+ | Auth | `auth login`, `auth whoami`, `auth logout` |
47
+ | Config | `config get`, `config set`, `config list`, `config unset` |
48
+ | Shells | `completion bash`, `completion zsh`, `completion fish`, `completion powershell` |
49
+ | Schema | `schema` |
50
+
51
+ Common global flags:
52
+
53
+ ```sh
54
+ --json
55
+ --raw
56
+ --fields id,status
57
+ --api-key <value>
58
+ --dry-run
59
+ --yes
60
+ ```
61
+
62
+ ## Authentication
63
+
64
+ The CLI is intended to resolve credentials in this order:
65
+
66
+ 1. `--api-key <value>`
67
+ 2. `EPROSPERA_API_KEY`
68
+ 3. Credentials saved by `eprospera auth login`
69
+
70
+ Do not commit API keys, request payloads, `.env` files, or exported credentials.
71
+ The repository ignore rules are configured to keep those out of the public repo.
72
+
73
+ ## Development
74
+
75
+ Useful scripts:
76
+
77
+ ```sh
78
+ pnpm run gen:api # Generate TypeScript types from the public OpenAPI spec
79
+ pnpm run gen:docs # Regenerate tracked command docs under docs/commands/
80
+ pnpm run gen:completions # Generate shell completions under dist/
81
+ pnpm run validate:ocs # Validate cli.ocs.yaml against the OpenCLI schema
82
+ pnpm run typecheck # Run TypeScript without emitting files
83
+ pnpm test # Run unit tests
84
+ pnpm run test:e2e # Run opt-in staging e2e tests when EPROSPERA_E2E=1
85
+ pnpm run check # Run formatting/lint checks and typecheck
86
+ pnpm run bundle # Build a portable ncc executable at dist/bundle/
87
+ pnpm run pack:smoke # Install the packed tarball in a clean temp project
88
+ ```
89
+
90
+ The pre-commit hook runs `pnpm run gen:all` to keep generated artifacts current.
91
+
92
+ ## Packaging
93
+
94
+ The npm package is configured to include the runtime entrypoint, compiled output,
95
+ the OpenCLI spec, license, changelog, and README. It excludes source, tests,
96
+ scripts, local docs, CI config, source maps, logs, and environment files.
97
+
98
+ Before publishing or tagging a release, check the package contents:
99
+
100
+ ```sh
101
+ npm pack --dry-run --json --ignore-scripts
102
+ pnpm run pack:smoke
103
+ ```
104
+
105
+ ## Release
106
+
107
+ The first public release should happen only after the full local gate passes:
108
+
109
+ ```sh
110
+ pnpm run gen:all
111
+ pnpm run check
112
+ pnpm run validate:ocs
113
+ pnpm test
114
+ pnpm run build
115
+ pnpm run bundle
116
+ npm pack --dry-run --json --ignore-scripts
117
+ pnpm run pack:smoke
118
+ ```
119
+
120
+ For the first public publish, use one of these npm auth paths:
121
+
122
+ - Manual: publish from a logged-in maintainer account with a one-time code.
123
+ - Automated: configure the repository `NPM_TOKEN` secret with a granular token
124
+ that can publish `@prospera/eprospera-cli` and bypass publish-time 2FA.
125
+
126
+ After the package exists on npm, prefer npm trusted publishing with GitHub
127
+ Actions publisher `Honduras-Prospera-inc/eprospera-cli` and workflow filename
128
+ `release.yml`, then remove any long-lived publish token.
129
+
130
+ Manual first publish:
131
+
132
+ ```sh
133
+ npm publish --access public --otp <one-time-code>
134
+ npm install -g @prospera/eprospera-cli
135
+ eprospera --help
136
+ ```
137
+
138
+ ## License
139
+
140
+ MIT
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ const { runCli } = await import("../dist/src/index.js");
3
+ process.exitCode = await runCli();
package/cli.ocs.yaml ADDED
@@ -0,0 +1,406 @@
1
+ $schema: https://opencli.org/draft.json
2
+ opencli: "0.1"
3
+ info:
4
+ title: eprospera
5
+ version: "0.1.0"
6
+ summary: Command-line access to the e-Prospera public API.
7
+ description: >
8
+ Agent-key-first TypeScript CLI for e-Prospera legal entity, application,
9
+ identity, authentication, configuration, completion, and schema workflows.
10
+ contact:
11
+ name: Prospera
12
+ url: https://docs.eprospera.com
13
+ license:
14
+ name: MIT License
15
+ identifier: MIT
16
+ url: https://opensource.org/license/mit
17
+ conventions:
18
+ groupOptions: true
19
+ optionSeparator: " "
20
+ command:
21
+ name: eprospera
22
+ description: Command-line wrapper over the e-Prospera public API.
23
+ options:
24
+ - name: --json
25
+ recursive: true
26
+ group: Output
27
+ description: Pretty-print JSON to stdout and suppress color, spinners, and incidental output.
28
+ - name: --raw
29
+ recursive: true
30
+ group: Output
31
+ description: Print compact single-line JSON to stdout.
32
+ - name: --fields
33
+ recursive: true
34
+ group: Output
35
+ description: Restrict output keys for read commands.
36
+ arguments:
37
+ - name: keys
38
+ required: true
39
+ description: Comma-separated output fields, such as id,statusId,name.
40
+ - name: --quiet
41
+ recursive: true
42
+ group: Output
43
+ description: Suppress incidental human output.
44
+ - name: --yes
45
+ aliases: [-y]
46
+ recursive: true
47
+ group: Interaction
48
+ description: Skip confirmation prompts.
49
+ - name: --api-key
50
+ recursive: true
51
+ group: Authentication
52
+ description: Use this bearer token instead of environment or stored credentials.
53
+ arguments:
54
+ - name: value
55
+ required: true
56
+ description: Agent Key, standard API key, or OAuth access token.
57
+ - name: --dry-run
58
+ recursive: true
59
+ group: Execution
60
+ description: Validate locally and print the request that would be sent.
61
+ - name: --help
62
+ aliases: [-h]
63
+ recursive: true
64
+ group: Help
65
+ description: Show help for a command.
66
+ - name: --version
67
+ recursive: true
68
+ group: Help
69
+ description: Show the CLI version.
70
+ - name: --no-auto-json
71
+ recursive: true
72
+ group: Output
73
+ description: Disable automatic JSON output when stdout is not a TTY.
74
+ - name: --skip-scope-check
75
+ recursive: true
76
+ group: Authentication
77
+ description: Skip cached local Agent Key scope preflight.
78
+ exitCodes:
79
+ - code: 0
80
+ description: Success.
81
+ - code: 1
82
+ description: Generic failure or unexpected error.
83
+ - code: 2
84
+ description: Invalid usage, bad flag, or missing argument.
85
+ - code: 3
86
+ description: Authentication failure, including 401 or no credential configured.
87
+ - code: 4
88
+ description: Authorization failure, including missing scope or revoked Manifestation of Will.
89
+ - code: 5
90
+ description: Resource not found, usually 404.
91
+ - code: 6
92
+ description: Conflict, including 409, name collision, or impossible state transition.
93
+ - code: 7
94
+ description: Rate limit, usually 429.
95
+ - code: 8
96
+ description: Validation error, usually 400.
97
+ - code: 9
98
+ description: Timeout, including polling or network timeout.
99
+ - code: 10
100
+ description: Application or coupon entered a terminal failure state.
101
+ commands:
102
+ - name: entity
103
+ description: Verify, search, inspect, and fetch documents for legal entities.
104
+ commands:
105
+ - name: verify
106
+ description: Verify whether an RPN exists and is active.
107
+ arguments:
108
+ - name: rpn
109
+ required: true
110
+ description: 14-digit resident permit number starting with 8 or 9.
111
+ examples:
112
+ - eprospera --json entity verify 80000000000012
113
+ metadata:
114
+ - name: endpoint
115
+ value: POST /api/v1/verify_rpn
116
+ - name: requiredScope
117
+ value: agent:verify_rpn
118
+ - name: credentialTypes
119
+ value: [ak, sk]
120
+ - name: search
121
+ description: Search the legal-entity registry by name or partial RPN.
122
+ arguments:
123
+ - name: query
124
+ required: true
125
+ description: Free-text query. Multi-word input is split by the API.
126
+ examples:
127
+ - eprospera --json entity search "Acme Holdings"
128
+ metadata:
129
+ - name: endpoint
130
+ value: POST /api/v1/registries/legal_entities/search
131
+ - name: requiredScope
132
+ value: agent:registry.search
133
+ - name: credentialTypes
134
+ value: [ak, sk]
135
+ - name: get
136
+ description: Fetch one legal entity by UUID.
137
+ arguments:
138
+ - name: id
139
+ required: true
140
+ description: Legal entity UUID.
141
+ examples:
142
+ - eprospera --json entity get 00000000-0000-4000-8000-000000000000
143
+ metadata:
144
+ - name: endpoint
145
+ value: GET /api/v1/legal_entities/{id}
146
+ - name: requiredScope
147
+ value: agent:entity.read
148
+ - name: credentialTypes
149
+ value: [ak, sk]
150
+ - name: documents
151
+ description: Fetch documents for one legal entity.
152
+ arguments:
153
+ - name: id
154
+ required: true
155
+ description: Legal entity UUID.
156
+ examples:
157
+ - eprospera --json entity documents 00000000-0000-4000-8000-000000000000
158
+ metadata:
159
+ - name: endpoint
160
+ value: GET /api/v1/legal_entities/{id}/documents
161
+ - name: requiredScope
162
+ value: agent:entity.documents.read
163
+ - name: credentialTypes
164
+ value: [ak, sk]
165
+ - name: application
166
+ description: Create, pay, list, inspect, and watch legal-entity applications.
167
+ commands:
168
+ - name: list
169
+ description: List API-created legal-entity applications visible to the credential.
170
+ examples:
171
+ - eprospera --json application list --fields id,statusId,legalEntityId
172
+ metadata:
173
+ - name: endpoint
174
+ value: GET /api/v1/legal_entity_applications
175
+ - name: requiredScope
176
+ value: agent:entity.application.read
177
+ - name: credentialTypes
178
+ value: [ak, sk]
179
+ - name: create
180
+ description: Create a legal-entity application from a JSON request file.
181
+ interactive: true
182
+ options:
183
+ - name: --file
184
+ description: Read the application request body from a JSON file.
185
+ arguments:
186
+ - name: path
187
+ required: true
188
+ description: Path to a JSON request body.
189
+ examples:
190
+ - eprospera --json --yes application create --file application.json
191
+ metadata:
192
+ - name: endpoint
193
+ value: POST /api/v1/legal_entity_applications
194
+ - name: requiredScope
195
+ value: agent:entity.application.create
196
+ - name: credentialTypes
197
+ value: [ak, sk]
198
+ - name: get
199
+ description: Fetch one legal-entity application by UUID.
200
+ arguments:
201
+ - name: id
202
+ required: true
203
+ description: Legal entity application UUID.
204
+ examples:
205
+ - eprospera --json application get 00000000-0000-4000-8000-000000000000
206
+ metadata:
207
+ - name: endpoint
208
+ value: GET /api/v1/legal_entity_applications/{id}
209
+ - name: requiredScope
210
+ value: agent:entity.application.read
211
+ - name: credentialTypes
212
+ value: [ak, sk]
213
+ - name: pay
214
+ description: Apply a fully covering coupon to a legal-entity application.
215
+ interactive: true
216
+ arguments:
217
+ - name: id
218
+ required: true
219
+ description: Legal entity application UUID.
220
+ options:
221
+ - name: --coupon
222
+ required: true
223
+ description: Coupon code to apply.
224
+ arguments:
225
+ - name: code
226
+ required: true
227
+ description: Coupon code.
228
+ examples:
229
+ - eprospera --json --yes application pay 00000000-0000-4000-8000-000000000000 --coupon EXAMPLE_COUPON
230
+ metadata:
231
+ - name: endpoint
232
+ value: POST /api/v1/legal_entity_applications/{id}/pay/coupon
233
+ - name: requiredScope
234
+ value: agent:entity.application.pay
235
+ - name: credentialTypes
236
+ value: [ak, sk]
237
+ - name: watch
238
+ description: Poll an application until approval, rejection, payment failure, or timeout.
239
+ arguments:
240
+ - name: id
241
+ required: true
242
+ description: Legal entity application UUID.
243
+ options:
244
+ - name: --timeout
245
+ description: Hard polling timeout.
246
+ arguments:
247
+ - name: duration
248
+ required: true
249
+ description: Duration such as 30m or 1h.
250
+ - name: --initial-interval
251
+ description: Polling interval before backoff.
252
+ arguments:
253
+ - name: duration
254
+ required: true
255
+ description: Duration such as 30s.
256
+ - name: --max-interval
257
+ description: Maximum polling interval after backoff.
258
+ arguments:
259
+ - name: duration
260
+ required: true
261
+ description: Duration such as 5m.
262
+ examples:
263
+ - eprospera --json application watch 00000000-0000-4000-8000-000000000000 --timeout 30m
264
+ metadata:
265
+ - name: endpoint
266
+ value: GET /api/v1/legal_entity_applications/{id}
267
+ - name: requiredScope
268
+ value: agent:entity.application.read
269
+ - name: credentialTypes
270
+ value: [ak, sk]
271
+ - name: me
272
+ description: Read profile data for the Agent Key owner or OAuth user.
273
+ commands:
274
+ - name: profile
275
+ description: Fetch the natural-person profile for the credential owner.
276
+ examples:
277
+ - eprospera --json me profile
278
+ metadata:
279
+ - name: endpoint
280
+ value: GET /api/v1/me/natural-person
281
+ - name: requiredScope
282
+ value: agent:person.details.read
283
+ - name: oauthScope
284
+ value: eprospera:person.details.read
285
+ - name: credentialTypes
286
+ value: [ak, oauth]
287
+ - name: residency
288
+ description: Fetch current or historical residency status for the credential owner.
289
+ examples:
290
+ - eprospera --json me residency
291
+ metadata:
292
+ - name: endpoint
293
+ value: GET /api/v1/me/natural-person/residency
294
+ - name: requiredScope
295
+ value: agent:person.residency.read
296
+ - name: oauthScope
297
+ value: eprospera:person.residency.read
298
+ - name: credentialTypes
299
+ value: [ak, oauth]
300
+ - name: id-verification
301
+ description: Fetch ID-verification artifact URLs for the credential owner.
302
+ examples:
303
+ - eprospera --json me id-verification
304
+ metadata:
305
+ - name: endpoint
306
+ value: GET /api/v1/me/natural-person/id-verification
307
+ - name: requiredScope
308
+ value: agent:person.id_verification.read
309
+ - name: oauthScope
310
+ value: eprospera:person.id_verification.read
311
+ - name: credentialTypes
312
+ value: [ak, oauth]
313
+ - name: auth
314
+ description: Log in, inspect, and remove local credentials.
315
+ commands:
316
+ - name: login
317
+ description: Store an Agent Key or standard API key.
318
+ interactive: true
319
+ options:
320
+ - name: --agent-key
321
+ description: Prompt for an ak- Agent Key and validate it.
322
+ - name: --standard-key
323
+ description: Prompt for an sk- standard API key.
324
+ - name: --scopes
325
+ description: Comma-separated Agent Key scopes to cache.
326
+ arguments:
327
+ - name: csv
328
+ required: true
329
+ description: Comma-separated scope names.
330
+ examples:
331
+ - eprospera auth login --agent-key --scopes agent:person.details.read
332
+ metadata:
333
+ - name: credentialTypes
334
+ value: [ak, sk]
335
+ - name: whoami
336
+ description: Show the currently resolved credential kind and owner metadata.
337
+ examples:
338
+ - eprospera --json auth whoami
339
+ metadata:
340
+ - name: credentialTypes
341
+ value: [ak, sk, oauth]
342
+ - name: logout
343
+ description: Delete locally stored credentials.
344
+ interactive: true
345
+ examples:
346
+ - eprospera --yes auth logout
347
+ metadata:
348
+ - name: credentialTypes
349
+ value: [ak, sk, oauth]
350
+ - name: config
351
+ description: Read and write local CLI configuration.
352
+ commands:
353
+ - name: get
354
+ description: Read one configuration value.
355
+ arguments:
356
+ - name: key
357
+ required: true
358
+ description: Configuration key.
359
+ examples:
360
+ - eprospera --json config get api.baseUrl
361
+ - name: set
362
+ description: Set one configuration value.
363
+ arguments:
364
+ - name: key
365
+ required: true
366
+ description: Configuration key.
367
+ - name: value
368
+ required: true
369
+ description: Configuration value.
370
+ examples:
371
+ - eprospera config set api.baseUrl https://api.example.com
372
+ - name: list
373
+ description: List all local configuration values.
374
+ examples:
375
+ - eprospera --json config list
376
+ - name: unset
377
+ description: Remove one configuration value.
378
+ arguments:
379
+ - name: key
380
+ required: true
381
+ description: Configuration key.
382
+ examples:
383
+ - eprospera config unset api.baseUrl
384
+ - name: completion
385
+ description: Generate shell completion scripts.
386
+ commands:
387
+ - name: bash
388
+ description: Print Bash completion script.
389
+ examples:
390
+ - eprospera completion bash
391
+ - name: zsh
392
+ description: Print Zsh completion script.
393
+ examples:
394
+ - eprospera completion zsh
395
+ - name: fish
396
+ description: Print Fish completion script.
397
+ examples:
398
+ - eprospera completion fish
399
+ - name: powershell
400
+ description: Print PowerShell completion script.
401
+ examples:
402
+ - eprospera completion powershell
403
+ - name: schema
404
+ description: Print this OpenCLI document to stdout.
405
+ examples:
406
+ - eprospera schema