@heyamiko/amiko-cli 0.9.6-beta.4 → 0.9.7
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 +5 -1
- package/dist/index.js +51 -89
- package/package.json +1 -1
- package/skills/SKILL.md +4 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @heyamiko/amiko-cli (v0.9.
|
|
1
|
+
# @heyamiko/amiko-cli (v0.9.7)
|
|
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
|
|
|
@@ -391,6 +391,10 @@ npm publish
|
|
|
391
391
|
|
|
392
392
|
## Changelog
|
|
393
393
|
|
|
394
|
+
### 0.9.7
|
|
395
|
+
|
|
396
|
+
- `composio connect` is now idempotent by default. Previously the CLI sent `forceReconnect: true` whenever `--force` was omitted, which caused every status probe to tear down the active Composio connection. The new default is `forceReconnect: false`: if the toolkit is already connected, the call returns `{ alreadyConnected: true }` without touching the connection. Pass `--force` explicitly to opt into a destructive reconnect.
|
|
397
|
+
|
|
394
398
|
### 0.9.0-beta.10
|
|
395
399
|
|
|
396
400
|
- **Rename**: top-level `market` command group is now `markets` (e.g. `amiko markets search`, `amiko markets image`).
|
package/dist/index.js
CHANGED
|
@@ -5,25 +5,43 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
function __accessProp(key) {
|
|
9
|
+
return this[key];
|
|
10
|
+
}
|
|
11
|
+
var __toESMCache_node;
|
|
12
|
+
var __toESMCache_esm;
|
|
8
13
|
var __toESM = (mod, isNodeMode, target) => {
|
|
14
|
+
var canCache = mod != null && typeof mod === "object";
|
|
15
|
+
if (canCache) {
|
|
16
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
17
|
+
var cached = cache.get(mod);
|
|
18
|
+
if (cached)
|
|
19
|
+
return cached;
|
|
20
|
+
}
|
|
9
21
|
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
10
22
|
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
11
23
|
for (let key of __getOwnPropNames(mod))
|
|
12
24
|
if (!__hasOwnProp.call(to, key))
|
|
13
25
|
__defProp(to, key, {
|
|
14
|
-
get: (
|
|
26
|
+
get: __accessProp.bind(mod, key),
|
|
15
27
|
enumerable: true
|
|
16
28
|
});
|
|
29
|
+
if (canCache)
|
|
30
|
+
cache.set(mod, to);
|
|
17
31
|
return to;
|
|
18
32
|
};
|
|
19
33
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
34
|
+
var __returnValue = (v) => v;
|
|
35
|
+
function __exportSetter(name, newValue) {
|
|
36
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
37
|
+
}
|
|
20
38
|
var __export = (target, all) => {
|
|
21
39
|
for (var name in all)
|
|
22
40
|
__defProp(target, name, {
|
|
23
41
|
get: all[name],
|
|
24
42
|
enumerable: true,
|
|
25
43
|
configurable: true,
|
|
26
|
-
set: (
|
|
44
|
+
set: __exportSetter.bind(all, name)
|
|
27
45
|
});
|
|
28
46
|
};
|
|
29
47
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
@@ -3515,11 +3533,36 @@ var require_emoji_regex = __commonJS((exports, module) => {
|
|
|
3515
3533
|
};
|
|
3516
3534
|
});
|
|
3517
3535
|
|
|
3518
|
-
// node_modules/mppx/dist/
|
|
3519
|
-
var
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3536
|
+
// node_modules/mppx/dist/Method.js
|
|
3537
|
+
var exports_Method = {};
|
|
3538
|
+
__export(exports_Method, {
|
|
3539
|
+
toServer: () => toServer,
|
|
3540
|
+
toClient: () => toClient,
|
|
3541
|
+
from: () => from
|
|
3542
|
+
});
|
|
3543
|
+
function from(method) {
|
|
3544
|
+
return method;
|
|
3545
|
+
}
|
|
3546
|
+
function toClient(method, options) {
|
|
3547
|
+
const { context, createCredential } = options;
|
|
3548
|
+
return {
|
|
3549
|
+
...method,
|
|
3550
|
+
context,
|
|
3551
|
+
createCredential
|
|
3552
|
+
};
|
|
3553
|
+
}
|
|
3554
|
+
function toServer(method, options) {
|
|
3555
|
+
const { defaults, html, request, respond, transport, verify } = options;
|
|
3556
|
+
return {
|
|
3557
|
+
...method,
|
|
3558
|
+
defaults,
|
|
3559
|
+
html,
|
|
3560
|
+
request,
|
|
3561
|
+
respond,
|
|
3562
|
+
transport,
|
|
3563
|
+
verify
|
|
3564
|
+
};
|
|
3565
|
+
}
|
|
3523
3566
|
|
|
3524
3567
|
// node_modules/mppx/node_modules/zod/v4/core/core.js
|
|
3525
3568
|
function $constructor(name, initializer, params) {
|
|
@@ -16604,89 +16647,8 @@ var init_zod = __esm(() => {
|
|
|
16604
16647
|
init_mini();
|
|
16605
16648
|
});
|
|
16606
16649
|
|
|
16607
|
-
// node_modules/mppx/dist/Challenge.js
|
|
16608
|
-
var Schema;
|
|
16609
|
-
var init_Challenge = __esm(() => {
|
|
16610
|
-
init_zod();
|
|
16611
|
-
Schema = object({
|
|
16612
|
-
description: optional(string2()),
|
|
16613
|
-
digest: optional(string2().check(_regex(/^sha-256=/, "Invalid digest format"))),
|
|
16614
|
-
expires: optional(datetime3()),
|
|
16615
|
-
id: string2(),
|
|
16616
|
-
intent: string2(),
|
|
16617
|
-
method: string2(),
|
|
16618
|
-
opaque: optional(record(string2(), string2())),
|
|
16619
|
-
realm: string2(),
|
|
16620
|
-
request: record(string2(), unknown())
|
|
16621
|
-
});
|
|
16622
|
-
});
|
|
16623
|
-
|
|
16624
|
-
// node_modules/mppx/dist/Credential.js
|
|
16625
|
-
var init_Credential = () => {};
|
|
16626
|
-
|
|
16627
|
-
// node_modules/mppx/dist/Errors.js
|
|
16628
|
-
var init_Errors = () => {};
|
|
16629
|
-
|
|
16630
|
-
// node_modules/mppx/dist/Expires.js
|
|
16631
|
-
var init_Expires = () => {};
|
|
16632
|
-
|
|
16633
|
-
// node_modules/mppx/dist/Method.js
|
|
16634
|
-
var exports_Method = {};
|
|
16635
|
-
__export(exports_Method, {
|
|
16636
|
-
toServer: () => toServer,
|
|
16637
|
-
toClient: () => toClient,
|
|
16638
|
-
from: () => from
|
|
16639
|
-
});
|
|
16640
|
-
function from(method) {
|
|
16641
|
-
return method;
|
|
16642
|
-
}
|
|
16643
|
-
function toClient(method, options) {
|
|
16644
|
-
const { context, createCredential } = options;
|
|
16645
|
-
return {
|
|
16646
|
-
...method,
|
|
16647
|
-
context,
|
|
16648
|
-
createCredential
|
|
16649
|
-
};
|
|
16650
|
-
}
|
|
16651
|
-
function toServer(method, options) {
|
|
16652
|
-
const { defaults, html, request, respond, transport, verify } = options;
|
|
16653
|
-
return {
|
|
16654
|
-
...method,
|
|
16655
|
-
defaults,
|
|
16656
|
-
html,
|
|
16657
|
-
request,
|
|
16658
|
-
respond,
|
|
16659
|
-
transport,
|
|
16660
|
-
verify
|
|
16661
|
-
};
|
|
16662
|
-
}
|
|
16663
|
-
|
|
16664
|
-
// node_modules/mppx/dist/Receipt.js
|
|
16665
|
-
var Schema2;
|
|
16666
|
-
var init_Receipt = __esm(() => {
|
|
16667
|
-
init_zod();
|
|
16668
|
-
Schema2 = object({
|
|
16669
|
-
method: string2(),
|
|
16670
|
-
reference: string2(),
|
|
16671
|
-
externalId: optional(string2()),
|
|
16672
|
-
status: literal("success"),
|
|
16673
|
-
timestamp: datetime3()
|
|
16674
|
-
});
|
|
16675
|
-
});
|
|
16676
|
-
|
|
16677
|
-
// node_modules/mppx/dist/Store.js
|
|
16678
|
-
var init_Store = () => {};
|
|
16679
|
-
|
|
16680
16650
|
// node_modules/mppx/dist/index.js
|
|
16681
16651
|
var init_dist = __esm(() => {
|
|
16682
|
-
init_BodyDigest();
|
|
16683
|
-
init_Challenge();
|
|
16684
|
-
init_Credential();
|
|
16685
|
-
init_Errors();
|
|
16686
|
-
init_Expires();
|
|
16687
|
-
init_PaymentRequest();
|
|
16688
|
-
init_Receipt();
|
|
16689
|
-
init_Store();
|
|
16690
16652
|
init_zod();
|
|
16691
16653
|
});
|
|
16692
16654
|
|
|
@@ -21707,7 +21669,7 @@ function registerComposioCommand(program2) {
|
|
|
21707
21669
|
body: {
|
|
21708
21670
|
appName: opts.app,
|
|
21709
21671
|
redirectUrl: opts.redirect,
|
|
21710
|
-
forceReconnect: opts.force ??
|
|
21672
|
+
forceReconnect: opts.force ?? false
|
|
21711
21673
|
}
|
|
21712
21674
|
});
|
|
21713
21675
|
spinner?.stop();
|
package/package.json
CHANGED
package/skills/SKILL.md
CHANGED
|
@@ -297,10 +297,13 @@ Platform notifications cover friend requests, mentions, system alerts, and other
|
|
|
297
297
|
## Composio
|
|
298
298
|
|
|
299
299
|
```bash
|
|
300
|
-
amiko composio connect --app gmail # prints OAuth URL
|
|
300
|
+
amiko composio connect --app gmail # idempotent — prints OAuth URL if not yet connected, or returns alreadyConnected:true
|
|
301
|
+
amiko composio connect --app gmail --force # destructive — disconnects any existing link and starts a fresh OAuth
|
|
301
302
|
amiko composio disconnect --app gmail --yes # destructive
|
|
302
303
|
```
|
|
303
304
|
|
|
305
|
+
`composio connect` is safe to call as a status check: it never destroys an existing connection unless you pass `--force`.
|
|
306
|
+
|
|
304
307
|
## Other
|
|
305
308
|
|
|
306
309
|
```bash
|