@heyamiko/amiko-cli 0.9.9 → 0.10.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/README.md +21 -6
- package/dist/index.js +1512 -3755
- package/package.json +1 -1
- package/skills/SKILL.md +22 -5
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @heyamiko/amiko-cli (v0.
|
|
1
|
+
# @heyamiko/amiko-cli (v0.10.0)
|
|
2
2
|
|
|
3
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
|
|
|
@@ -86,7 +86,7 @@ amiko credits topup 10000 --wallet Gu2b...QVya # specific wallet (else de
|
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
**Supported tokens:** AMIKO, SOL, USDC, USDT
|
|
89
|
-
**Supported chains:** Solana, Base, Ethereum
|
|
89
|
+
**Supported chains:** Solana, Base, Ethereum
|
|
90
90
|
|
|
91
91
|
**After every paid command, the CLI prints a `Balance: N credits (~$X.XX)` line** so agents can relay the remaining balance to the user without a separate `credits balance` call.
|
|
92
92
|
|
|
@@ -152,7 +152,7 @@ amiko wallets bridge routes # available bridge routes
|
|
|
152
152
|
amiko wallets bridge limits # min/max limits per route
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
Default route: Solana →
|
|
155
|
+
Default route: Solana → Base. 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.
|
|
156
156
|
|
|
157
157
|
## MPP Services
|
|
158
158
|
|
|
@@ -244,7 +244,9 @@ openclaw plugins install @heyamiko/amiko-cli
|
|
|
244
244
|
|
|
245
245
|
This registers the CLI's skill file so the agent discovers all commands through the normal skill system. Updates to the CLI (`npm update -g @heyamiko/amiko-cli`) also update the skill docs.
|
|
246
246
|
|
|
247
|
-
> **The skill is documentation, not a tool.** Agents must run `amiko <command>` through their shell/bash execution tool. Weaker models sometimes slugify the skill name (`amiko-cli` → `amiko_cli`) and try to call it as a tool, which fails with `Tool amiko_cli not found`.
|
|
247
|
+
> **The skill is documentation, not a tool.** Agents must run `amiko <command>` through their shell/bash execution tool. Weaker models (especially `gemini-3.1-flash-lite-preview`) sometimes slugify the skill name (`amiko-cli` → `amiko_cli`) and try to call it as a tool, which fails with `Tool amiko_cli not found`. Worse, some models will then *retry the bad tool name 40+ times* before giving up, burning credits on every retry — see [the 2026-05-13 incident](https://platform.heyamiko.com).
|
|
248
|
+
>
|
|
249
|
+
> The SKILL.md in `v0.10.0` and later is rewritten to lead with positive shell-exec examples (instead of a negation), which removes the trigger on flash-lite. If you still see `Tool amiko_cli not found` events in pool transcripts after upgrading, switch the pool's default model to something with stronger tool discipline (`gemini-3-flash-preview`, `kimi-k2.6`, or Claude Sonnet 4.6).
|
|
248
250
|
|
|
249
251
|
### Authentication
|
|
250
252
|
|
|
@@ -313,8 +315,7 @@ src/
|
|
|
313
315
|
├── format.ts # terminal output helpers + renderOutput(--json)
|
|
314
316
|
├── confirm.ts # requireApproval + confirmDestructive
|
|
315
317
|
├── mpp-topup.ts # MPP SDK topup helper
|
|
316
|
-
|
|
317
|
-
└── tempo.ts # Tempo chain helpers
|
|
318
|
+
└── across.ts # Across Protocol bridge
|
|
318
319
|
```
|
|
319
320
|
|
|
320
321
|
## Twin & Social Commands (v0.8.0)
|
|
@@ -392,6 +393,20 @@ npm publish
|
|
|
392
393
|
|
|
393
394
|
## Changelog
|
|
394
395
|
|
|
396
|
+
### 0.10.0
|
|
397
|
+
|
|
398
|
+
- **`SKILL.md` rewritten to lead with positive shell-exec examples.** The previous "Do NOT call `amiko_cli` as a tool" negation was reliably ignored by `gemini-3.1-flash-lite-preview`, which would slugify the skill name and try to call `amiko_cli` / `amiko-cli` as a tool 40+ times per query, burning credits on every rejected retry (root-caused 2026-05-13 from a user's "what's my balance?" question that triggered 51 OR generations in 110 s). The new SKILL.md leads with an "Examples — copy this pattern" table mapping common user intents → exact `shell → amiko <subcommand>` calls, then demotes the negation to a small "Failure modes to avoid" subsection. Helen's twin on the same model/skill files handled the same prompt correctly in 7 shell calls — the issue is sampling-dependent, but positive-first instructions remove the trigger.
|
|
399
|
+
- **Platform-agnostic auth** (carried over from 0.10.0-beta.0, #61): `resolveAuth()` reads env vars (`AMIKO_TWIN_TOKEN`, `AMIKO_TWIN_ID`, `AMIKO_USER_ID`, `AMIKO_PLATFORM_URL`, `AMIKO_API_BASE`) when no `.amiko.json` is found. The CLI no longer walks up to `/` looking for the file — it checks `cwd/.amiko.json`, then the fixed `/data/.openclaw/workspace/.amiko.json` only under openclaw. Error messages no longer assume openclaw paths.
|
|
400
|
+
- **`amiko update` openclaw sync is now properly gated** (0.10.0-beta.0): the `/data/.amiko-cli` copy + symlink rebuild + skill refresh only runs under `isOpenclawEnvironment()` (true iff `/data/.openclaw` exists AND CWD is under `/data/.openclaw/workspace`). Non-openclaw hosts short-circuit the whole refresh block. Renamed related constants with `OPENCLAW_` prefix for clarity.
|
|
401
|
+
- **Atomic openclaw install swap** (0.10.0-beta.0, code-review followup): stage the new copy at `/data/.amiko-cli.tmp` first; only `rm` + `rename` after `cp` succeeds. A mid-copy failure no longer wipes the live install. `twinSpinner.stop()` moved into a `finally` so the spinner always cleans up even when the sync throws.
|
|
402
|
+
- New `amikoApiBase` JSON alias (existing `apiBase` still accepted).
|
|
403
|
+
|
|
404
|
+
### 0.9.9
|
|
405
|
+
|
|
406
|
+
- **Tempo support removed (breaking).** `wallets bridge` default destination is now Base instead of Tempo (see "Default route: Solana → Base" above and the existing `--from`/`--to` flags). The `tempo` entry is gone from `across.ts` and `lib/tempo.ts` is deleted, so `--to tempo` will now error with an unknown-chain message — there is no escape hatch. **Update any scripts or agents that relied on the old default**: pass `--to base` (or another supported chain) explicitly. `search` no longer falls back to the Tempo explorer either.
|
|
407
|
+
- `lib/api.ts` fetches now wrap an `AbortController` with a 30 s default timeout — a stalled MPP endpoint no longer hangs the agent process. `markets service call` adds a 60 s timeout on the paid call and 15 s on the openapi.json price probe.
|
|
408
|
+
- **Security fix.** `markets service call <method> <path>` now rejects any `path` that doesn't start with `/`, closing a credential-leakage hole. The previous behavior treated `http(s)://…` paths as full URLs, which let a caller redirect the paid request — including the `X-Payment-Tx` and `X-Twin-Id` headers — to an arbitrary external host, leaking the on-chain payment proof + twin identity.
|
|
409
|
+
|
|
395
410
|
### 0.9.9-beta.8
|
|
396
411
|
|
|
397
412
|
- `friends reports request --pay` now does a **free preflight** (`POST /v1/friend-reports/preflight`) before signing the on-chain AMIKO transfer. Validates User → Friendship → consent → personality profile against amiko-web. If anything's wrong (wrong id shape, missing consent, missing profile), the CLI aborts with a targeted tip — no AMIKO is transferred. Closes a hole where every retry against a bad `--id` burned ~3 AMIKO via the irreversible X-Payment-Tx flow.
|