@settlemint/dalp-cli 3.1.33-main.43433008600 → 3.1.33-release.43440124932
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/LICENSE +157 -3
- package/README.md +169 -44
- package/dist/dalp.js +188069 -39966
- package/package.json +20 -27
- package/dist/dalp.js.map +0 -249
- package/dist/openapi-surface-thq7xyw6.json +0 -83202
- package/src/bin.ts +0 -6
- package/src/commands/config.ts +0 -73
- package/src/commands/login.ts +0 -483
- package/src/commands/logout.ts +0 -46
- package/src/commands/org.ts +0 -103
- package/src/commands/whoami.ts +0 -29
- package/src/generated/openapi-surface.json +0 -83202
- package/src/hosted-mcp.ts +0 -145
- package/src/lib/api-client.ts +0 -30
- package/src/lib/auth-request.ts +0 -86
- package/src/lib/cli-config.ts +0 -104
- package/src/lib/cli-cta.ts +0 -296
- package/src/lib/cli-status.ts +0 -102
- package/src/lib/coverage.ts +0 -41
- package/src/lib/credential-store.ts +0 -256
- package/src/lib/errors.ts +0 -207
- package/src/lib/feature-gated-operations.ts +0 -18
- package/src/lib/openapi-surface-types.ts +0 -41
- package/src/lib/openapi-surface.ts +0 -17
- package/src/lib/operation-inventory.ts +0 -69
- package/src/lib/register-operations.ts +0 -643
- package/src/lib/run-command.ts +0 -38
- package/src/lib/sdk-cli-schema.ts +0 -366
- package/src/lib/secret-prompt.ts +0 -23
- package/src/lib/vars.ts +0 -19
- package/src/lib/webhook-fixtures.ts +0 -1158
- package/src/main.ts +0 -99
package/LICENSE
CHANGED
|
@@ -1,8 +1,162 @@
|
|
|
1
|
-
#
|
|
1
|
+
# SETTLEMINT COMMERCIAL CUSTOMER SOURCE LICENSE
|
|
2
|
+
|
|
3
|
+
**("License")**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## TL;DR (NON-BINDING SUMMARY)
|
|
8
|
+
|
|
9
|
+
- You may view, fork, modify, and run this code ONLY while you have an active, paid contract with SettleMint.
|
|
10
|
+
- You may use it internally (cloud, on-prem, or hybrid) only as agreed in your contract.
|
|
11
|
+
- You may NOT resell it, offer it as a service, publish it, or use it to build or operate a competing product.
|
|
12
|
+
- When your contract ends, your right to use the software ends immediately. You must stop all deployments and delete active copies.
|
|
13
|
+
- This is NOT open source.
|
|
14
|
+
|
|
15
|
+
*This summary is informational only. The legal terms below control.*
|
|
16
|
+
|
|
17
|
+
---
|
|
2
18
|
|
|
3
19
|
Copyright © 2025 SettleMint NV
|
|
4
20
|
All rights reserved.
|
|
5
21
|
|
|
6
|
-
|
|
22
|
+
This License governs the use of the Software (as defined below) and is a proprietary, source-available license. It is not an open-source license.
|
|
23
|
+
|
|
24
|
+
By accessing, copying, modifying, or using the Software, You agree to be bound by this License and confirm that You are a Customer with an Active Contract.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 1. DEFINITIONS
|
|
29
|
+
|
|
30
|
+
**1.1 "Licensor"**
|
|
31
|
+
SettleMint NV, a company incorporated under Belgian law, or any affiliated entity explicitly identified in the applicable Commercial Agreement.
|
|
32
|
+
|
|
33
|
+
**1.2 "Customer" or "You"**
|
|
34
|
+
The legal entity that has entered into an Active Contract with Licensor and whose employees or contractors access or use the Software.
|
|
35
|
+
|
|
36
|
+
**1.3 "Commercial Agreement"**
|
|
37
|
+
Any master services agreement, subscription agreement, order form, statement of work, or similar contract executed between Licensor and Customer governing commercial terms.
|
|
38
|
+
|
|
39
|
+
**1.4 "Active Contract"**
|
|
40
|
+
A Commercial Agreement that is in force, not terminated, and for which all undisputed fees due are paid.
|
|
41
|
+
|
|
42
|
+
**1.5 "Software"**
|
|
43
|
+
The source code, object code, build scripts, configuration files, documentation, and any other materials made available by Licensor in this repository, including all updates and modifications thereto.
|
|
44
|
+
|
|
45
|
+
**1.6 "Derivative Works"**
|
|
46
|
+
Any modification, adaptation, translation, or other work based on or incorporating the Software, as defined under Book XI of the Belgian Code of Economic Law.
|
|
47
|
+
|
|
48
|
+
**1.7 "Authorized Use"**
|
|
49
|
+
Use of the Software solely for Customer's internal business purposes and strictly within the scope permitted by the Active Contract.
|
|
50
|
+
|
|
51
|
+
**1.8 "Authorized Deployment"**
|
|
52
|
+
Any installation, environment, system, blockchain network, cluster, or runtime explicitly permitted under the Active Contract, whether cloud-based, on-premises, or hybrid.
|
|
53
|
+
|
|
54
|
+
**1.9 "Competitive Use"**
|
|
55
|
+
Any use of the Software or Derivative Works to develop, operate, market, or support a product or service that competes with Licensor's products or services, or that could reasonably substitute for them.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 2. LICENSE GRANT
|
|
60
|
+
|
|
61
|
+
**2.1 Conditional License Grant**
|
|
62
|
+
Subject to continuous compliance with this License and the existence of an Active Contract, Licensor grants Customer a limited, non-exclusive, non-transferable, non-sublicensable, revocable license to:
|
|
63
|
+
|
|
64
|
+
(a) access and review the Software;
|
|
65
|
+
(b) copy the Software for internal use;
|
|
66
|
+
(c) modify the Software and create Derivative Works;
|
|
67
|
+
(d) deploy and run the Software and Derivative Works solely for Authorized Use and only in Authorized Deployments.
|
|
68
|
+
|
|
69
|
+
**2.2 Forking**
|
|
70
|
+
Customer may create private forks of the Software solely for Authorized Use. All such forks remain subject to this License.
|
|
71
|
+
|
|
72
|
+
**2.3 No Implied Rights**
|
|
73
|
+
No rights are granted except as expressly stated. All rights not expressly granted are reserved by Licensor.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3. RESTRICTIONS
|
|
78
|
+
|
|
79
|
+
Customer shall not, directly or indirectly:
|
|
80
|
+
|
|
81
|
+
(a) use the Software without an Active Contract;
|
|
82
|
+
(b) deploy the Software outside Authorized Deployments;
|
|
83
|
+
(c) provide the Software or any Derivative Work as a service, platform, or product to third parties, unless explicitly permitted in writing;
|
|
84
|
+
(d) sublicense, distribute, sell, lease, or transfer the Software or any Derivative Work to any third party;
|
|
85
|
+
(e) engage in any Competitive Use;
|
|
86
|
+
(f) use the Software to benchmark, reverse-engineer, or analyze Licensor's products for competitive purposes;
|
|
87
|
+
(g) publish, disclose, or make publicly available the Software or any fork thereof;
|
|
88
|
+
(h) remove or obscure copyright, trademark, or proprietary notices.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. OWNERSHIP
|
|
93
|
+
|
|
94
|
+
**4.1 Licensor IP**
|
|
95
|
+
Licensor retains all right, title, and interest in and to the Software.
|
|
96
|
+
|
|
97
|
+
**4.2 Customer Modifications**
|
|
98
|
+
Customer retains ownership of original modifications it creates; however, Customer may not use, execute, deploy, or distribute any Derivative Work that includes or depends on the Software except as permitted under an Active Contract.
|
|
99
|
+
|
|
100
|
+
**4.3 Feedback and Contributions**
|
|
101
|
+
Any feedback, suggestions, or contributions provided by Customer may be used by Licensor without restriction. To the extent such contributions constitute copyrightable works, Customer grants Licensor a perpetual, worldwide, royalty-free, irrevocable license to use, modify, and distribute them.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 5. TERMINATION
|
|
106
|
+
|
|
107
|
+
**5.1 Automatic Termination**
|
|
108
|
+
This License automatically terminates upon termination or expiration of the Active Contract.
|
|
109
|
+
|
|
110
|
+
**5.2 Effect of Termination**
|
|
111
|
+
Upon termination, Customer must immediately:
|
|
112
|
+
|
|
113
|
+
(a) cease all use and deployment of the Software and Derivative Works;
|
|
114
|
+
(b) delete all running instances, binaries, containers, and deployments;
|
|
115
|
+
(c) destroy or delete all copies of the Software, except that one archival copy of source code may be retained solely for legal or compliance purposes.
|
|
116
|
+
|
|
117
|
+
No right to resume use or deployment survives termination.
|
|
118
|
+
|
|
119
|
+
**5.3 Survival**
|
|
120
|
+
Sections relating to ownership, restrictions, liability, governing law, and jurisdiction survive termination.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 6. WARRANTY DISCLAIMER
|
|
125
|
+
|
|
126
|
+
THE SOFTWARE IS PROVIDED "AS IS". TO THE MAXIMUM EXTENT PERMITTED BY BELGIAN LAW, LICENSOR DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 7. LIMITATION OF LIABILITY
|
|
131
|
+
|
|
132
|
+
To the maximum extent permitted by Belgian law, Licensor shall not be liable for any indirect, incidental, consequential, or special damages, including loss of profits, data, or business interruption, even if advised of the possibility.
|
|
133
|
+
|
|
134
|
+
Nothing in this License limits liability that cannot be limited under mandatory Belgian law.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 8. GOVERNING LAW AND JURISDICTION
|
|
139
|
+
|
|
140
|
+
This License is governed by and construed in accordance with the laws of Belgium, excluding conflict-of-law rules.
|
|
141
|
+
|
|
142
|
+
Any dispute arising out of or in connection with this License shall be subject to the exclusive jurisdiction of the courts of Brussels.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 9. MISCELLANEOUS
|
|
147
|
+
|
|
148
|
+
**9.1 Entire Agreement**
|
|
149
|
+
This License, together with the applicable Commercial Agreement, constitutes the entire agreement regarding the Software.
|
|
150
|
+
|
|
151
|
+
**9.2 Conflict**
|
|
152
|
+
In case of conflict, the Commercial Agreement prevails.
|
|
153
|
+
|
|
154
|
+
**9.3 Severability**
|
|
155
|
+
If any provision is held invalid, the remaining provisions remain in full force.
|
|
156
|
+
|
|
157
|
+
**9.4 No Waiver**
|
|
158
|
+
Failure to enforce any provision does not constitute a waiver.
|
|
159
|
+
|
|
160
|
+
---
|
|
7
161
|
|
|
8
|
-
|
|
162
|
+
**END OF LICENSE**
|
package/README.md
CHANGED
|
@@ -8,72 +8,197 @@
|
|
|
8
8
|
</p>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/@settlemint/dalp-cli" rel="nofollow"><img src="https://img.shields.io/npm/v/@settlemint/dalp-cli" alt="npm version"></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/@settlemint/dalp-cli" rel="nofollow"><img src="https://img.shields.io/npm/dw/@settlemint/dalp-cli" alt="npm downloads"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<div align="center">
|
|
17
|
+
<a href="https://settlemint.com">Website</a>
|
|
18
|
+
<span> • </span>
|
|
19
|
+
<a href="https://www.npmjs.com/package/@settlemint/dalp-cli">NPM</a>
|
|
20
|
+
<span> • </span>
|
|
21
|
+
<a href="mailto:support@settlemint.com">Support</a>
|
|
22
|
+
<br />
|
|
23
|
+
</div>
|
|
24
|
+
|
|
11
25
|
## About
|
|
12
26
|
|
|
13
|
-
|
|
27
|
+
The DALP CLI provides a command-line interface for interacting with the Digital Asset Lifecycle Platform. Manage security tokens, identities, compliance, and platform operations directly from the terminal — or let your AI agent do it for you.
|
|
14
28
|
|
|
15
|
-
|
|
29
|
+
## Installation
|
|
16
30
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| `GET` | `/api/v2/tokens/{assetId}` | `dalp get tokens <assetId>` |
|
|
21
|
-
| `GET` | `/api/v2/tokens/{assetId}/documents` | `dalp get tokens documents <tokenAddress>` |
|
|
22
|
-
| `POST` | `/api/v2/tokens/{assetId}/mints` | `dalp create tokens mints <tokenAddress> --body '…'` |
|
|
31
|
+
```bash
|
|
32
|
+
# npm
|
|
33
|
+
npm install -g @settlemint/dalp-cli
|
|
23
34
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
The file is gitignored; `bun run --cwd cli codegen` writes it, and every Turbo task that reads it depends on that codegen.
|
|
35
|
+
# bun
|
|
36
|
+
bun add -g @settlemint/dalp-cli
|
|
37
|
+
```
|
|
28
38
|
|
|
29
|
-
##
|
|
39
|
+
## Quick Start
|
|
30
40
|
|
|
31
41
|
```bash
|
|
32
|
-
|
|
33
|
-
dalp login
|
|
34
|
-
|
|
42
|
+
# Authenticate (OAuth 2.0 device flow — no passwords in your terminal)
|
|
43
|
+
dalp login
|
|
44
|
+
|
|
45
|
+
# Show current user
|
|
35
46
|
dalp whoami
|
|
47
|
+
|
|
48
|
+
# List all tokens
|
|
49
|
+
dalp tokens list --format json
|
|
36
50
|
```
|
|
37
51
|
|
|
38
|
-
## Examples
|
|
52
|
+
## Worked Examples
|
|
53
|
+
|
|
54
|
+
End-to-end flows you can run as-is. Add `--format json` to any command for machine-readable output.
|
|
55
|
+
|
|
56
|
+
### Authenticate and inspect the platform
|
|
39
57
|
|
|
40
58
|
```bash
|
|
41
|
-
|
|
42
|
-
dalp
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
# Authenticate against a specific instance (or set DALP_URL)
|
|
60
|
+
dalp login --url https://dalp.example.com
|
|
61
|
+
|
|
62
|
+
# Confirm who you are and which organization is active
|
|
63
|
+
dalp whoami
|
|
64
|
+
|
|
65
|
+
# List deployed systems, then the tokens they hold
|
|
66
|
+
dalp system list
|
|
67
|
+
dalp tokens list --format json
|
|
48
68
|
```
|
|
49
69
|
|
|
50
|
-
|
|
70
|
+
Expected outcome: a stored API key in your keychain, your user and organization echoed back, and a token inventory in JSON.
|
|
51
71
|
|
|
52
|
-
|
|
72
|
+
> SDK equivalent: `createDalpClient` with `dalp.token.list()` and `dalp.system.read()` — see the [`@settlemint/dalp-sdk` README](../sdk/README.md).
|
|
53
73
|
|
|
54
|
-
|
|
55
|
-
- **Agents (`c.agent`):** structured yields `{ phase, message, status? }` with no spinner noise on stdout.
|
|
56
|
-
- **Blockchain mutations:** the wait belongs to the platform, not the CLI. The default asks it to hold the response until the write settles; `--no-wait` asks it to answer immediately. Either way the command reports what came back, and a write that outlives the wait prints `Request accepted; the transaction is still settling` with the handle. Follow that handle with `dalp get transaction-requests stream <transactionId>`; the CLI does not poll it for you.
|
|
57
|
-
- **SSE endpoints** (`…/stream`): each Server-Sent Event is yielded as a chunk. Use `--format jsonl` for NDJSON (`{"type":"chunk","data":…}`).
|
|
58
|
-
- **Errors:** public `message` stays the headline; `why` / `fix` and mapped resource `links` become an Incur CTA (`meta.cta`) so agents get next commands without scraping free text.
|
|
59
|
-
- **Success links:** JSON:API `links` (`next` / `prev` / related) map to suggested CLI commands when present.
|
|
74
|
+
### Create an asset and verify it round-trip
|
|
60
75
|
|
|
61
76
|
```bash
|
|
62
|
-
|
|
63
|
-
dalp
|
|
64
|
-
|
|
65
|
-
|
|
77
|
+
# Create a bond token (type-specific fields go in --json)
|
|
78
|
+
dalp tokens create --name "Bund 7Y" --symbol BUND7 --decimals 18 --type bond --country-code 276 --json '{"isin":"DE000BU27014"}'
|
|
79
|
+
|
|
80
|
+
# Find it in the token list (filterable by search query)
|
|
81
|
+
dalp tokens list --query BUND7
|
|
82
|
+
|
|
83
|
+
# Read its details and holder list by contract address
|
|
84
|
+
dalp tokens read <address>
|
|
85
|
+
dalp tokens holders <address>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Expected outcome: a new bond token deployed through the platform, retrievable by address with an empty holder list.
|
|
89
|
+
|
|
90
|
+
> SDK equivalent: the typed `dalp.token.*` namespace in [`@settlemint/dalp-sdk`](../sdk/README.md).
|
|
91
|
+
|
|
92
|
+
### Register an investor identity and run KYC
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Create an on-chain identity for a wallet, then register it with a country code
|
|
96
|
+
dalp identities create --wallet 0x1234...abcd
|
|
97
|
+
dalp identities register --wallet 0x1234...abcd --country 276
|
|
98
|
+
|
|
99
|
+
# Check the registration landed
|
|
100
|
+
dalp identities registration-status 0x1234...abcd
|
|
101
|
+
|
|
102
|
+
# Start a KYC submission for the user and send it for review
|
|
103
|
+
dalp kyc version-create <userId>
|
|
104
|
+
dalp kyc version-submit --version-id <versionId>
|
|
66
105
|
```
|
|
67
106
|
|
|
68
|
-
|
|
107
|
+
Expected outcome: a registered on-chain identity for the wallet and a KYC version in review.
|
|
108
|
+
|
|
109
|
+
> SDK equivalent: `dalp.system.identity.*` and `dalp.user.kyc.*` in [`@settlemint/dalp-sdk`](../sdk/README.md).
|
|
110
|
+
|
|
111
|
+
### Using the CLI from an AI agent
|
|
112
|
+
|
|
113
|
+
Every command accepts `--format json` (also `yaml`, `md`, `jsonl`; the default is token-efficient TOON) and a `--json` shorthand, so output is always machine-parseable. Authentication is interactive by design: `dalp login` runs an OAuth 2.0 device flow in a browser, then persists an API key to the system keychain — subsequent commands, including agent-driven ones, run non-interactively against that stored credential. Instance and organization can be pinned via the `DALP_URL` and `DALP_ORG` environment variables.
|
|
114
|
+
|
|
115
|
+
## AI Agent Integration
|
|
116
|
+
|
|
117
|
+
The CLI is built from the ground up for AI agents. Every command is a typed, validated tool that agents can discover and call autonomously.
|
|
118
|
+
|
|
119
|
+
### Model Context Protocol (MCP)
|
|
120
|
+
|
|
121
|
+
Run the CLI as an MCP server, exposing every command as a tool with Zod-validated parameters, descriptions, and examples:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Auto-register with your AI agent (Claude Code, Cursor, Codex, OpenClaw)
|
|
125
|
+
dalp mcp add
|
|
126
|
+
|
|
127
|
+
# Or run the MCP server directly
|
|
128
|
+
dalp --mcp
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Skills
|
|
132
|
+
|
|
133
|
+
Auto-generate skill files from command metadata for agent discovery:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Install skill files for your agent
|
|
137
|
+
dalp skills add
|
|
138
|
+
|
|
139
|
+
# View as Markdown or JSON Schema
|
|
140
|
+
dalp --llms
|
|
141
|
+
dalp --schema
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Structured Output
|
|
145
|
+
|
|
146
|
+
Every command supports `--format json` for machine-readable output, making it composable with shell tools and agent workflows:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Progressive discovery: systems → tokens → holders
|
|
150
|
+
dalp system list --format json
|
|
151
|
+
dalp tokens list --format json
|
|
152
|
+
dalp tokens holders <address> --format json
|
|
153
|
+
```
|
|
69
154
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
155
|
+
### Supported Agents
|
|
156
|
+
|
|
157
|
+
Auto-detection and one-command setup for Claude Code, Codex Desktop, Cursor, and OpenClaw.
|
|
158
|
+
|
|
159
|
+
## Commands
|
|
160
|
+
|
|
161
|
+
| Command | Description |
|
|
162
|
+
| ------------------------- | ----------------------------------- |
|
|
163
|
+
| `login` | Authenticate with the DALP platform |
|
|
164
|
+
| `logout` | End the current session |
|
|
165
|
+
| `whoami` | Show the current authenticated user |
|
|
166
|
+
| `tokens` | Manage security tokens |
|
|
167
|
+
| `token-sales` | Manage token sales |
|
|
168
|
+
| `tokens documents` | Manage token-related documents |
|
|
169
|
+
| `identity` | Manage on-chain identities |
|
|
170
|
+
| `identity-recoveries` | Recover lost identities |
|
|
171
|
+
| `kyc` | Manage KYC verification |
|
|
172
|
+
| `compliance-templates` | Manage compliance templates |
|
|
173
|
+
| `asset-type-templates` | Manage asset type templates |
|
|
174
|
+
| `user` | Manage platform users |
|
|
175
|
+
| `contacts` | Manage contacts |
|
|
176
|
+
| `account` | Manage accounts |
|
|
177
|
+
| `admin` | Administrative operations |
|
|
178
|
+
| `auth` | Authentication configuration |
|
|
179
|
+
| `config` | CLI configuration |
|
|
180
|
+
| `exchange-rates` | View exchange rates |
|
|
181
|
+
| `external-tokens` | Manage external tokens |
|
|
182
|
+
| `fixed-yield-schedules` | Manage fixed yield instruments |
|
|
183
|
+
| `monitoring` | Platform monitoring |
|
|
184
|
+
| `search-results` | Search across the platform |
|
|
185
|
+
| `settings` | Platform settings |
|
|
186
|
+
| `system` | System administration |
|
|
187
|
+
| `blockchain-transactions` | View transactions |
|
|
188
|
+
| `xvp-settlements` | Cross-value-payment operations |
|
|
189
|
+
| `actions` | Manage actions |
|
|
190
|
+
|
|
191
|
+
## Security
|
|
192
|
+
|
|
193
|
+
- **OAuth 2.0 Device Authorization Grant** (RFC 8628) — no passwords in your terminal
|
|
194
|
+
- Credentials stored in system keychain (macOS) or encrypted file (Linux/Windows)
|
|
195
|
+
- API key auto-creation during login
|
|
196
|
+
- Agents operate with your user permissions only
|
|
197
|
+
|
|
198
|
+
## Configuration
|
|
199
|
+
|
|
200
|
+
The CLI resolves configuration from (in order): CLI flags, environment variables, project config (`.dalprc.json`), and user config (`~/.config/dalp/`).
|
|
76
201
|
|
|
77
202
|
## License
|
|
78
203
|
|
|
79
|
-
See
|
|
204
|
+
This project is licensed under the **SettleMint Commercial Customer Source License**. See the LICENSE file included in the package for full terms.
|