obolos 1.6.0 → 1.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obolos",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "Agent-friendly command line interface for the obolos protocol",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -113,14 +113,20 @@ stand, so nothing is signed again. `obolos login --key` signs in with the user's
113
113
  An agent wallet does only what the user gave it on the Passport page, per wallet and company: Read
114
114
  opens the company, that wallet's holdings and the documents it can open; Vote casts votes and gives
115
115
  proxies; Manage equity runs share classes, shares, grants, vesting, notes, SAFEs and the data room,
116
- within the roles the wallet holds; Raise creates and runs rounds. Role grants, upgrades and treasury
116
+ within the roles the wallet holds; Raise creates and runs rounds, and sets up the investor policy a
117
+ round opens on: `obolos compliance policy create --preset <id> --class <class>` (`obolos compliance
118
+ presets` lists them) and `obolos compliance rule attach`. It adds rules, never removes or loosens
119
+ them; that is the user's, in the app. Role grants, upgrades and treasury
117
120
  withdrawals are the user's to do in the app: `cli.missing_power` with `power: null` says so; pass that
118
121
  on, and never ask the user for a key. Its sends are sponsored and count against the user's daily limit.
119
122
 
120
123
  An agent buys no credits. `obolos credits topup [--amount <usd>]` opens the company's billing page in
121
124
  the user's browser and waits up to 15 minutes for the credits. Off a terminal, add `--no-wait`: it
122
125
  exits 6 with `cli.awaiting_credits` and `details.link`. Give the user the link, wait for them to say
123
- they loaded the credits, then check with `obolos credits show`.
126
+ they loaded the credits, then check with `obolos credits show`. Without `--amount` the page fills in what
127
+ the company owes plus $1,000. A command the agent's powers send that the company is short of credits for exits 6 with
128
+ `cli.awaiting_credits` and `details.creditsShort`: its link fills in the shortfall plus $1,000. Give the user
129
+ the link, and once they loaded the credits run the same command again.
124
130
 
125
131
  An agent activates no module either: activation is permanent and spends credits. `obolos company
126
132
  module activate <name>` checks the module can be activated, opens it on the company's Modules page in
@@ -128,7 +134,8 @@ the user's browser and waits up to 15 minutes for it to be active. Off a termina
128
134
  exits 6 with `cli.awaiting_module` and `details.link`. Give the user the link, wait for them to say
129
135
  they activated it, then check with `obolos company modules`, whose `cost` is in credits. A company
130
136
  short of credits gets the same link (`creditsShort: true`): the activation there offers Add credits, so
131
- tell the user they add credits first, and don't send them to `credits topup`.
137
+ tell the user they add credits first, and don't send them to `credits topup`. Powers given before the
138
+ activation don't reach the new module: tell the user to give them again on the Passport page.
132
139
 
133
140
  - **Exit 3, `cli.session_ended`**: the session ended (disconnected, or past its 3 days). On a terminal
134
141
  the CLI offers to connect again; otherwise ask the user, then run `obolos login`.
@@ -136,7 +143,8 @@ tell the user they add credits first, and don't send them to `credits topup`.
136
143
  the user to give it under the agent wallet's Powers on the Passport page; never route around it.
137
144
  - **Exit 3, `cli.outside_power`**: the call's values differ from the ones the user approved. Use the
138
145
  approved values, or ask the user to give the power again with these.
139
- - **Exit 3, `cli.approval_stale`**: the approval was removed or used up, or the wallet changed. The user
146
+ - **Exit 3, `cli.approval_stale`**: the approval was removed or used up, the wallet changed, or the power
147
+ (`details.power`) was given before it reached this call, as when a module was activated after. The user
140
148
  gives the powers again on the Passport page.
141
149
  - **Exit 5, `cli.nonce_taken`**: another operation from the wallet went first, and this one never went
142
150
  out. Run the command again.
@@ -152,8 +160,10 @@ never says who.
152
160
 
153
161
  ### Making a company with the user
154
162
 
155
- An agent doesn't create companies; the user does, in one obolos window the agent opens. When the user
156
- wants a company:
163
+ An agent doesn't create companies; the user does, in one obolos window the agent opens. Never run
164
+ `obolos login` first, even when the user asks to connect: `login` only connects an agent wallet that
165
+ already exists, while incorporating connects this terminal to the new company's agent. For testnet
166
+ (try.obolos.io), add `--try` to `obolos company incorporate`. When the user wants a company:
157
167
 
158
168
  1. Ask for its name with the legal ending (Acme Inc.), a ticker, the jurisdiction (an ISO code such as
159
169
  US, GB, CH) and the entity type (c-corp, llc, ...). An unknown one fails with `invalid_jurisdiction`
@@ -183,7 +183,8 @@ obolos fundraise publish <round>
183
183
 
184
184
  Confirm the round is one `obolos company show` lists under `jurisdiction.instruments`. One with
185
185
  `active: false` needs each module in its `activate` list activated first (`obolos company module
186
- activate <module>`); every round runs on `fundraise`.
186
+ activate <module>`); every round runs on `fundraise`. A round opens on an investor policy with rules; a
187
+ company with none needs one first (`obolos compliance policy create --preset <id> --class <class>`).
187
188
  Prepare round creation, document references, whitelist changes and reservations in their natural
188
189
  stages; counterparty-signed reservations and encrypted investor inputs are not manager batches.
189
190