@heyamiko/amiko-cli 0.14.0-beta.16 → 0.14.0-beta.18
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 +17 -2
- package/dist/index.js +1536 -3580
- package/package.json +1 -1
- package/skills/SKILL.md +8 -5
package/README.md
CHANGED
|
@@ -255,14 +255,19 @@ amiko chat send @sophie "on my way!" --yes # send as the owner
|
|
|
255
255
|
amiko chat send <userId> "hey!" --yes # user id works too — the DM is opened automatically
|
|
256
256
|
amiko chat send Mars "hey!" --yes # or a name (friends first, then people search)
|
|
257
257
|
amiko chat send <groupConversationId> "hi all" --yes # send to a group chat
|
|
258
|
+
amiko chat send "Trip planning" "standup in 5 @all" --yes # @all — notifies every group member
|
|
259
|
+
amiko chat send "Trip planning" "standup in 5" --all --yes # same, via the explicit flag
|
|
258
260
|
amiko chat send @sophie "look 👀" --image ./cat.png --yes # attach a local image
|
|
259
261
|
amiko chat send @sophie "made this 🎵" --audio <generated-url> --yes # attach audio (e.g. from `amiko create`)
|
|
262
|
+
amiko chat receipts <messageId> # who read your message + when (id from `chat read`)
|
|
260
263
|
```
|
|
261
264
|
|
|
262
265
|
- **`<target>`** for `read`/`send` is a **conversation id** (from `chat list` — use this for groups), a **user id**, an **`@handle`**, or a **name**. Names resolve against your **friends first**, then people search; if ambiguous, the CLI lists candidates instead of guessing. A cuid that isn't one of your conversations is retried as a user id, so pasting a user id "just works".
|
|
263
266
|
- `send` to a person you have no DM with yet **creates the DM automatically** (find-or-create, after the confirmation). `read` never creates one — it errors if no DM exists yet.
|
|
264
267
|
- **Inline media**: `--image <pathOrUrl>` (jpg/png/webp/gif, local ≤10MB or an Amiko URL) and `--audio <pathOrUrl>` (local ≤25MB or an Amiko URL → sent as a voice note). One media block per message (image *or* audio). **Video isn't supported in chat yet.** A local file is uploaded; an Amiko URL (e.g. a generated asset from `amiko create`) attaches directly with no re-upload. (A local *audio* file is sent as a voice note, with your text as a separate message.)
|
|
268
|
+
- **@all in groups**: `--all` prepends an @all mention, and a standalone `@all` word typed in the message converts too — either way **every member** is notified. Group **admins/owners** can always use it; everyone else only after an admin runs `amiko chat group mention-all <group> on`. Without permission, `--all` fails with the fix named, while a typed `@all` is delivered as plain text (with a note). Incoming mention markup renders as plain `@name`/`@all` in `chat read` and `chat list`.
|
|
265
269
|
- `chat send` messages a real person, so it's **gated on `--yes`** in non-interactive shells. Delivery is real-time. `--raw` prints raw JSON on any subcommand.
|
|
270
|
+
- **`chat receipts <messageId>`** shows read receipts for **your own** messages (server-enforced; 403 otherwise): sent time, who read it with each person's first-read time, and who it was delivered to but hasn't read. Reads from before receipts tracking show as "exact time unknown". Read-only, ungated.
|
|
266
271
|
|
|
267
272
|
### Group chats
|
|
268
273
|
|
|
@@ -276,13 +281,15 @@ amiko chat group rename <groupIdOrTitle> "New name" --yes
|
|
|
276
281
|
amiko chat group add <groupIdOrTitle> --member @sophie --yes
|
|
277
282
|
amiko chat group remove <groupIdOrTitle> --member Mars --yes
|
|
278
283
|
amiko chat group promote <groupIdOrTitle> --member Sophie --yes # make a member an admin
|
|
284
|
+
amiko chat group mention-all <groupIdOrTitle> on --yes # let everyone use @all (off = admins only, the default)
|
|
279
285
|
amiko chat group leave <groupIdOrTitle> --yes # alias: delete — see caveat below
|
|
280
286
|
```
|
|
281
287
|
|
|
282
288
|
- **`--member`** is repeatable and accepts a plain name, `@handle`, or user id. Plain names resolve against your **friends** first (then people search); an ambiguous name errors listing candidates instead of guessing, and one unresolvable member aborts the whole command **before anything is changed**.
|
|
283
289
|
- **Groups address by id or title** — titles match case-insensitively (exact first, then substring) across your most recent 100 conversations; ambiguous titles error with candidates. `chat send "<group title>" "hi" --yes` also works when exactly one group title matches.
|
|
284
|
-
- **`leave` (alias `delete`) only hides the group for you.** Other members keep the conversation and its history — the platform has no delete-for-everyone. Rename, add, remove-others, and
|
|
285
|
-
-
|
|
290
|
+
- **`leave` (alias `delete`) only hides the group for you.** Other members keep the conversation and its history — the platform has no delete-for-everyone. Rename, add, remove-others, promote, and the @all toggle are **admin-only** (the creator is admin); the server enforces this.
|
|
291
|
+
- **`mention-all <group> <on|off>`** controls who may @all in the group: `on` lets every member, `off` (the default) restricts it to admins. The current setting shows in `amiko chat group info` as `@all mentions: everyone | admins only`.
|
|
292
|
+
- `create`/`add` are outward social actions and `rename`/`remove`/`leave`/`promote`/`mention-all` are destructive, so all are **gated on `--yes`** in non-interactive shells. `--raw` prints JSON everywhere.
|
|
286
293
|
|
|
287
294
|
## Twin Cards
|
|
288
295
|
|
|
@@ -583,6 +590,14 @@ npm publish
|
|
|
583
590
|
|
|
584
591
|
## Changelog
|
|
585
592
|
|
|
593
|
+
### 0.14.0-beta.18
|
|
594
|
+
|
|
595
|
+
- **Read receipts: `amiko chat receipts <messageId>`.** Shows when the message was sent, who has read it (per-person first-read time), and who it was delivered to but hasn't read yet. Sender-only, enforced server-side — works for messages sent as the owner (`chat send`); anything else 403s with a clear message. Reader names resolve from the conversation's participant list (short-id fallback). Read-only and ungated, like `chat reactions`; `--raw` prints the API payload. Rows read before receipts tracking existed render as "exact time unknown". Requires the companion amiko-web `feat/chat-read-receipts` deploy (`GET /api/messages/{id}/receipts`).
|
|
596
|
+
|
|
597
|
+
### 0.14.0-beta.17
|
|
598
|
+
|
|
599
|
+
- **@all mentions in group chats + `amiko chat group mention-all <group> <on|off>`.** `chat send` gains `--all`, and a standalone literal `@all` word in the message converts too — both emit the canonical sentinel `@[all](all:all)` (kept in sync with amiko-web `src/utils/mentions.ts`), which amiko-chat expands into a mention notification for every group member. The CLI pre-checks permission client-side, mirroring the web gate plus the server-honored `owner` role (`admin`/`owner`, or the conversation's `allow_everyone_mention_all` flag; `left_at` participants excluded): a denied `--all` exits 1 naming the fix, before the approval gate and before any DM could be created, while a denied literal `@all` degrades to plain text with a note — the server treats an unauthorized token as inert either way. The new `chat group mention-all` toggle PATCHes `/api/conversations/{id}/mention-all-permission` (admin-gated server-side, 403 → admin tip) behind `confirmDestructive`, and the current setting shows in `chat group info` (`@all mentions: everyone | admins only`). Incoming mention markup (`@[Name](id:user|agent)` / `@[all](all:all)`) now renders as plain `@Name`/`@all` in `chat read`, `chat list`, and `chat group list` previews (new `src/lib/mentions.ts`). Requires the companion amiko-web `feat/group-mention-all` deploy.
|
|
600
|
+
|
|
586
601
|
### 0.14.0-beta.15
|
|
587
602
|
|
|
588
603
|
- Create Studio defaults to `--pay credits` (account credits) instead of twin wallet; pass `--pay wallet` for on-chain.
|