@heyamiko/amiko-cli 0.7.10 → 0.8.1

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # @heyamiko/amiko-cli (v0.7.10)
1
+ # @heyamiko/amiko-cli (v0.8.1)
2
2
 
3
- Manage wallets, credits, swaps, and MPP marketplace services from the terminal. Works for both human users and AI agents running on OpenClaw.
3
+ Manage wallets, credits, swaps, MPP marketplace services, and your Amiko twin (identity, documents, voice, avatar, friends, feed, Composio apps) from the terminal. Works for both human users and AI agents running on OpenClaw.
4
4
 
5
5
  ## Install
6
6
 
@@ -148,19 +148,20 @@ amiko swap send 0.5 USDC AMIKO --yes
148
148
  amiko swap send 100 AMIKO SOL --slippage 100
149
149
  ```
150
150
 
151
- Swaps execute via Jupiter on Solana. Supports SOL, USDC, USDT, AMIKO, PYUSD, BONK, JUP, RAY, JitoSOL, mSOL, or any mint address.
151
+ Swaps execute via Jupiter on Solana. Supports SOL, USDC, USDT, AMIKO, PYUSD, BONK, JUP, RAY, JitoSOL, mSOL, or any mint address. `swap send` is hard-gated: in a non-interactive shell you must pass `--yes` after quoting the cost to the user (`Solana gas + 10bps platform fee`).
152
152
 
153
153
  ## Bridge
154
154
 
155
155
  ```bash
156
156
  amiko bridge quote <amount> # cross-chain USDC quote via Across Protocol
157
- amiko bridge send <amount> # execute bridge transfer
157
+ amiko bridge send <amount> # execute bridge transfer (gated — requires --yes in non-TTY)
158
+ amiko bridge send <amount> --raw # print transaction JSON without sending (no gate)
158
159
  amiko bridge status <txHash> # check bridge status
159
160
  amiko bridge routes # available bridge routes
160
161
  amiko bridge limits # min/max limits per route
161
162
  ```
162
163
 
163
- Default route: Solana → Tempo. Use `--from` and `--to` flags for other chains.
164
+ Default route: Solana → Tempo. Use `--from` and `--to` flags for other chains. Like `swap send`, `bridge send` refuses to run in a non-interactive shell without `--yes` so agents must quote the Across fee + gas to the user before executing.
164
165
 
165
166
  ## MPP Services
166
167
 
@@ -191,7 +192,7 @@ Audio and image endpoints upload to Supabase Storage and return permanent URLs.
191
192
 
192
193
  ## Confirmation Gate for Paid Commands
193
194
 
194
- Every paid command (`image`, `search`, `amazon search`, `service tts`, `service stt`, `service chat`, `service call`, `credits topup`) requires explicit approval before spending:
195
+ Every paid / value-moving command (`image`, `search`, `amazon search`, `service tts`, `service stt`, `service chat`, `service call`, `credits topup`, `swap send`, `bridge send`) requires explicit approval before spending:
195
196
 
196
197
  - **Human, interactive shell** — the command prints the cost and prompts `Proceed? [y/N]`. Answer `y` to run.
197
198
  - **Agent / non-interactive shell** — the command *refuses* to run without `--yes`, with a message telling the agent what to do:
@@ -206,7 +207,7 @@ Every paid command (`image`, `search`, `amazon search`, `service tts`, `service
206
207
  amiko image "a sunset over mountains" --yes
207
208
  ```
208
209
 
209
- This makes cost confirmation effectively mandatory regardless of which model drives the agent — weak models can no longer silently burn tokens by ignoring the skill docs.
210
+ This makes cost confirmation effectively mandatory regardless of which model drives the agent — weak models can no longer silently burn tokens by ignoring the skill docs. The same refusal fires for `swap send` (Solana gas + 10 bps platform fee) and `bridge send` (Across fee + gas), so an agent cannot move tokens without a round-trip through user approval.
210
211
 
211
212
  ## Error Output
212
213
 
@@ -323,21 +324,81 @@ src/
323
324
  │ ├── discovery.ts # MPP service info
324
325
  │ ├── login.ts # Privy browser login
325
326
  │ ├── config.ts # config management
326
- │ └── update.ts # self-update
327
+ │ ├── update.ts # self-update
328
+ │ ├── accounts.ts # accounts, info (twin identity readout)
329
+ │ ├── twin.ts # twin:update (name/description/public)
330
+ │ ├── docs.ts # RAG documents (list, upload, delete, presign)
331
+ │ ├── voice.ts # voice:design, voice:create, voice:clone, voice:reset
332
+ │ ├── avatar.ts # avatar:update
333
+ │ ├── friends.ts # friends list, add, accept, remove
334
+ │ ├── feed.ts # feed, post:comment
335
+ │ └── composio.ts # composio:connect, composio:disconnect
327
336
  └── lib/
328
337
  ├── config.ts # ~/.amiko/config.json
329
338
  ├── agent-config.ts # .amiko.json reader + auth resolution
330
339
  ├── api.ts # HTTP client (MPP + billing)
331
- ├── format.ts # terminal output helpers
340
+ ├── amiko-web.ts # HTTP client for amiko-web (twin + social REST)
341
+ ├── twin-context.ts # resolveTwinId (--twin | .amiko.json | config.twinId)
342
+ ├── file-input.ts # path | https URL | stdin → Buffer + mime
343
+ ├── format.ts # terminal output helpers + renderOutput(--json)
344
+ ├── confirm.ts # requireApproval + confirmDestructive
332
345
  ├── mpp-topup.ts # MPP SDK topup helper
333
346
  ├── across.ts # Across Protocol bridge
334
347
  └── tempo.ts # Tempo chain helpers
335
348
  ```
336
349
 
350
+ ## Twin & Social Commands (v0.8.0)
351
+
352
+ The CLI also manages the twin's identity, documents, voice, avatar, friends, feed, and Composio connections via the amiko-web platform API.
353
+
354
+ ```bash
355
+ # Identity
356
+ amiko accounts # show resolved identity (mode, platform, user, twin, wallets)
357
+ amiko info # fetch twin info (name, description, voice, avatar, visibility)
358
+ amiko twin:update --name "New Name"
359
+ amiko twin:update --description "Bio"
360
+ amiko twin:update --public true --yes # change public visibility (destructive)
361
+
362
+ # Documents (RAG)
363
+ amiko docs # list
364
+ amiko docs:upload ./notes.pdf # path, URL, or `- --stdin`
365
+ amiko docs:delete <docId> --yes
366
+ amiko docs:presign ./file.pdf # presigned S3 URL only
367
+
368
+ # Voice
369
+ amiko voice:design --description "warm, low, male, confident, measured"
370
+ amiko voice:create --sample <generated_voice_id>
371
+ amiko voice:clone ./me.mp3
372
+ amiko voice:reset --yes
373
+
374
+ # Avatar
375
+ amiko avatar:update --file ./portrait.png --yes
376
+
377
+ # Friends
378
+ amiko friends # list
379
+ amiko friends:add --id <userId>
380
+ amiko friends:accept <friendshipId>
381
+ amiko friends:remove <friendshipId> --yes
382
+
383
+ # Feed & posts
384
+ amiko feed # friends feed (default)
385
+ amiko feed --type for_you --limit 20
386
+ amiko post:comment --id <postId> --comment "great post"
387
+
388
+ # Composio
389
+ amiko composio:connect --app gmail # prints OAuth URL
390
+ amiko composio:disconnect --app gmail --yes
391
+ ```
392
+
393
+ Every new command accepts `--json` for structured output and `--twin <id>` where a target twin is needed.
394
+
395
+ **Destructive or identity-changing commands** (`docs:delete`, `friends:remove`, `composio:disconnect`, `voice:reset`, `avatar:update`, `twin:update --public`) prompt for confirmation in a TTY and require `--yes` in non-interactive shells.
396
+
337
397
  ## API Endpoints
338
398
 
339
399
  | Client | Base URL | Purpose |
340
400
  |--------|----------|---------|
401
+ | Amiko Web | `platform.heyamiko.com` | Twin identity, docs, voice, avatar, friends, feed, Composio |
341
402
  | MPP API | `mpp.amikomarkets.com` | Marketplace services, search, image, audio |
342
403
  | Billing API | `billing.heyamiko.com` | Credits, topup, wallet balances, keys |
343
404