obolos 1.6.1 → 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 +38 -0
- package/dist/cli.js +71 -67
- package/package.json +1 -1
- package/skills/obolos/SKILL.md +43 -3
- 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,11 +127,16 @@ 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
|
|
125
135
|
exits 6 with `cli.awaiting_credits` and `details.link`. Give the user the link, wait for them to say
|
|
126
|
-
they loaded the credits, then check with `obolos credits show`.
|
|
136
|
+
they loaded the credits, then check with `obolos credits show`. Without `--amount` the page fills in what
|
|
137
|
+
the company owes plus $1,000. A command the agent's powers send that the company is short of credits for exits 6 with
|
|
138
|
+
`cli.awaiting_credits` and `details.creditsShort`: its link fills in the shortfall plus $1,000. Give the user
|
|
139
|
+
the link, and once they loaded the credits run the same command again.
|
|
127
140
|
|
|
128
141
|
An agent activates no module either: activation is permanent and spends credits. `obolos company
|
|
129
142
|
module activate <name>` checks the module can be activated, opens it on the company's Modules page in
|
|
@@ -131,7 +144,15 @@ the user's browser and waits up to 15 minutes for it to be active. Off a termina
|
|
|
131
144
|
exits 6 with `cli.awaiting_module` and `details.link`. Give the user the link, wait for them to say
|
|
132
145
|
they activated it, then check with `obolos company modules`, whose `cost` is in credits. A company
|
|
133
146
|
short of credits gets the same link (`creditsShort: true`): the activation there offers Add credits, so
|
|
134
|
-
tell the user they add credits first, and don't send them to `credits topup`.
|
|
147
|
+
tell the user they add credits first, and don't send them to `credits topup`. Powers given before the
|
|
148
|
+
activation don't reach the new module: tell the user to give them again on the Passport page.
|
|
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.
|
|
135
156
|
|
|
136
157
|
- **Exit 3, `cli.session_ended`**: the session ended (disconnected, or past its 3 days). On a terminal
|
|
137
158
|
the CLI offers to connect again; otherwise ask the user, then run `obolos login`.
|
|
@@ -139,7 +160,8 @@ tell the user they add credits first, and don't send them to `credits topup`.
|
|
|
139
160
|
the user to give it under the agent wallet's Powers on the Passport page; never route around it.
|
|
140
161
|
- **Exit 3, `cli.outside_power`**: the call's values differ from the ones the user approved. Use the
|
|
141
162
|
approved values, or ask the user to give the power again with these.
|
|
142
|
-
- **Exit 3, `cli.approval_stale`**: the approval was removed or used up,
|
|
163
|
+
- **Exit 3, `cli.approval_stale`**: the approval was removed or used up, the wallet changed, or the power
|
|
164
|
+
(`details.power`) was given before it reached this call, as when a module was activated after. The user
|
|
143
165
|
gives the powers again on the Passport page.
|
|
144
166
|
- **Exit 5, `cli.nonce_taken`**: another operation from the wallet went first, and this one never went
|
|
145
167
|
out. Run the command again.
|
|
@@ -147,6 +169,9 @@ tell the user they add credits first, and don't send them to `credits topup`.
|
|
|
147
169
|
couldn't be read, so the stage is marked failed and is never sent again. Don't run the command again:
|
|
148
170
|
give the user that operation hash, so they check the wallet's activity before the stage is repaired
|
|
149
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.
|
|
150
175
|
- **Exit 3, `cli.access_denied` or `cli.expired_token`**: the user denied the login, or it expired
|
|
151
176
|
before approval. Nothing was connected; ask before starting another.
|
|
152
177
|
|
|
@@ -221,6 +246,21 @@ this conversation.
|
|
|
221
246
|
- Never infer permission from silence, an earlier approval, or an approval for another plan hash. Ask
|
|
222
247
|
once and precisely; never bundle unrelated approvals.
|
|
223
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
|
+
|
|
224
264
|
The single exception is a session the user explicitly put into an auto-approve mode (Claude Code
|
|
225
265
|
bypass permissions, Codex full-auto or yolo). Its standing authorization replaces the per-action
|
|
226
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>
|