obolos 1.7.0 → 1.8.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.
- package/CHANGELOG.md +25 -0
- package/dist/cli.js +70 -66
- package/package.json +1 -1
- package/skills/obolos/SKILL.md +35 -0
- package/skills/obolos/references/tooling.md +1 -0
- package/skills/obolos/references/workflows.md +2 -2
package/package.json
CHANGED
package/skills/obolos/SKILL.md
CHANGED
|
@@ -97,6 +97,14 @@ stops with `cli.usage` and no command: tell the user, and never sign in to that
|
|
|
97
97
|
command reads or invests at. `details.command` is `obolos login --company <company>`: ask the user,
|
|
98
98
|
run it once they agree, then re-run the command. On a terminal the CLI asks this itself.
|
|
99
99
|
|
|
100
|
+
**Exit 6, `cli.awaiting_signature`**: the user signs in their browser with their own wallet: a
|
|
101
|
+
signature with `--in-browser`, or a countersignature for the company. Give the user `details.link`,
|
|
102
|
+
wait for them to say they signed, then check with `details.command`.
|
|
103
|
+
|
|
104
|
+
**Exit 6, `cli.awaiting_reply`**: `obolos messages wait` saw nothing new in the thread for 15 minutes.
|
|
105
|
+
Run `details.command` to keep waiting while the conversation still needs an answer; otherwise tell the
|
|
106
|
+
user what it waits on.
|
|
107
|
+
|
|
100
108
|
**Exit 5, `cli.api_failed`**: the obolos API refused a stage or could not be reached while sending.
|
|
101
109
|
Fix the cause, then `obolos resume <run>`. Never re-run the command that prepared the run: a new run
|
|
102
110
|
sends its API requests again.
|
|
@@ -119,6 +127,8 @@ presets` lists them) and `obolos compliance rule attach`. It adds rules, never r
|
|
|
119
127
|
them; that is the user's, in the app. Role grants, upgrades and treasury
|
|
120
128
|
withdrawals are the user's to do in the app: `cli.missing_power` with `power: null` says so; pass that
|
|
121
129
|
on, and never ask the user for a key. Its sends are sponsored and count against the user's daily limit.
|
|
130
|
+
Preparing a command may first send a sponsored claim that opens a sealed value the wallet's roles let
|
|
131
|
+
it read, such as a new round's price.
|
|
122
132
|
|
|
123
133
|
An agent buys no credits. `obolos credits topup [--amount <usd>]` opens the company's billing page in
|
|
124
134
|
the user's browser and waits up to 15 minutes for the credits. Off a terminal, add `--no-wait`: it
|
|
@@ -137,6 +147,13 @@ short of credits gets the same link (`creditsShort: true`): the activation there
|
|
|
137
147
|
tell the user they add credits first, and don't send them to `credits topup`. Powers given before the
|
|
138
148
|
activation don't reach the new module: tell the user to give them again on the Passport page.
|
|
139
149
|
|
|
150
|
+
Before any document signature, such as `obolos fundraise reservation sign`, ask the user and offer both
|
|
151
|
+
ways: you sign here, and the record says their agent signed; or `--in-browser`, which opens the round's
|
|
152
|
+
page where they sign with their own wallet, so the record names them, and waits up to 15 minutes for
|
|
153
|
+
it. Off a terminal, add `--no-wait`: it exits 6 with `cli.awaiting_signature` and `details.link`. An
|
|
154
|
+
agent never countersigns for the company: `obolos fundraise reservation countersign` hands it to a
|
|
155
|
+
signer on the company's round page the same way.
|
|
156
|
+
|
|
140
157
|
- **Exit 3, `cli.session_ended`**: the session ended (disconnected, or past its 3 days). On a terminal
|
|
141
158
|
the CLI offers to connect again; otherwise ask the user, then run `obolos login`.
|
|
142
159
|
- **Exit 3, `cli.missing_power`**: `details` names the `power`, the `wallet` and the `company`. Tell
|
|
@@ -152,6 +169,9 @@ activation don't reach the new module: tell the user to give them again on the P
|
|
|
152
169
|
couldn't be read, so the stage is marked failed and is never sent again. Don't run the command again:
|
|
153
170
|
give the user that operation hash, so they check the wallet's activity before the stage is repaired
|
|
154
171
|
or skipped.
|
|
172
|
+
- **Exit 5, `cli.claim_unsettled` with `details.operation`**: a view claim went out while the command
|
|
173
|
+
read a sealed value, but how it ended couldn't be read. Claiming again is harmless: run the command
|
|
174
|
+
again in a minute.
|
|
155
175
|
- **Exit 3, `cli.access_denied` or `cli.expired_token`**: the user denied the login, or it expired
|
|
156
176
|
before approval. Nothing was connected; ask before starting another.
|
|
157
177
|
|
|
@@ -226,6 +246,21 @@ this conversation.
|
|
|
226
246
|
- Never infer permission from silence, an earlier approval, or an approval for another plan hash. Ask
|
|
227
247
|
once and precisely; never bundle unrelated approvals.
|
|
228
248
|
|
|
249
|
+
Round threads are where you talk with the other side of a round and its agents: `obolos messages
|
|
250
|
+
list`, `read <thread>`, `post <thread>`, `open <round>` and `wait <thread> --after <id>`. Post in the
|
|
251
|
+
user's round threads without asking each time; `open` starts the user's thread for a round at the
|
|
252
|
+
selected company, so the two sides can talk before any money moves.
|
|
253
|
+
|
|
254
|
+
- Keep each post short: one point, a sentence or two, under a `--topic` of a few words. Posts on one
|
|
255
|
+
topic fold together for the people reading.
|
|
256
|
+
- Your words never commit the user to anything. A binding act runs as its own command, with its own ask.
|
|
257
|
+
- `--needs-you` is only for something the user must do in the app, with `--link` to that one record
|
|
258
|
+
(`spot:<fundraise>:<round>:<deal>`, `terms:<fundraise>:<round>`; `messages read` gives the
|
|
259
|
+
fundraise). Then wait with `obolos messages wait <thread> --after <id>`: it returns when the user
|
|
260
|
+
answers, a message arrives or a signature lands.
|
|
261
|
+
- `obolos messages read` shows each agent in the thread and whom it acts for there, and whether the
|
|
262
|
+
investor's passport is verified. Never ask another agent who stands behind it.
|
|
263
|
+
|
|
229
264
|
The single exception is a session the user explicitly put into an auto-approve mode (Claude Code
|
|
230
265
|
bypass permissions, Codex full-auto or yolo). Its standing authorization replaces the per-action
|
|
231
266
|
question, but still print the plan summary and hash before sending, still stop on any failed
|
|
@@ -27,6 +27,7 @@ ABI layer; the agent enters through the CLI.
|
|
|
27
27
|
| Vesting | `vesting create|release|revoke|accelerate|transfer|list|show`, `vesting milestone request|approve|reject|cancel`, `vesting excess withdraw` |
|
|
28
28
|
| Compensation | `grant issue|exercise|exercises|confirm-exercise|count-exercise|decline-exercise|withdraw-exercise|settle-exercise|record-exercise|accelerate|transfer|attach-document|revoke|release-unvested|cleanup|list|show`, `grant milestone …`, `pool increase|decrease|show`, `pool decrease request|finalize|cancel`, `valuation record|list` |
|
|
29
29
|
| Fundraising | `fundraise create|whitelist|reserve|subscribe|record|publish|hardcap|close|finalize|cancel|refund|list|show|investments|reservations`, `fundraise reservation attach|sign|file|countersign|cancel|sweep` |
|
|
30
|
+
| Messages | `messages list|read|post|open|wait`: an agent's round threads |
|
|
30
31
|
| Instruments | `safe issue|cancel|discharge|list|show`, `note issue|cancel|discharge|early-repayment|repay|list|show`, `instruments access`, `conversion trigger|settle|rollback|cancel|list|show` |
|
|
31
32
|
| Compliance | `compliance presets`, `compliance policy create [--preset 506b|506c|usOnly|3c7|regS|noUs] [--class]`, `compliance rule attach|detach`, `compliance set …`, `compliance pause|unpause|show|check` |
|
|
32
33
|
| Transfers | `transfer request|approve|decline|revoke|send|show`, `rofr set|show` |
|
|
@@ -172,9 +172,9 @@ A denied verdict is a valid outcome, not a reason to vary the quantity until one
|
|
|
172
172
|
```bash
|
|
173
173
|
obolos fundraise create --type safe --name Seed --target 1,000,000 --hard-cap 2,000,000 --cap 10,000,000 --discount 20% --agreement ./term-sheet.pdf
|
|
174
174
|
obolos fundraise reserve <round> --investor <wallet> --amount 250,000 # a spot, its amount sealed, signed for the company by a document signer
|
|
175
|
-
obolos fundraise reservation sign <round> --reservation <id> # investor
|
|
175
|
+
obolos fundraise reservation sign <round> --reservation <id> # investor: signs the spot (--accept-terms only once they agree to terms that differ from the round's); an agent asks first, and --in-browser has the user sign in the app
|
|
176
176
|
obolos fundraise subscribe <round> --amount 50,000 # investor, with their key
|
|
177
|
-
obolos fundraise reservation countersign <round> --reservation <id> # the company signs; on an offer, that accepts it
|
|
177
|
+
obolos fundraise reservation countersign <round> --reservation <id> # the company signs; on an offer, that accepts it. An agent hands it to a signer in the app
|
|
178
178
|
obolos fundraise record <round> --reservation <id> --amount 50,000 # the company
|
|
179
179
|
obolos fundraise hardcap <round> --amount 2,500,000
|
|
180
180
|
obolos fundraise close <round> && obolos fundraise finalize <round>
|