@trustwallet/cli 0.12.0 → 0.12.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/dist/index.js
CHANGED
|
@@ -39312,6 +39312,56 @@ function storageLocation(keychain) {
|
|
|
39312
39312
|
// src/setup/phase-harnesses.ts
|
|
39313
39313
|
var import_prompts2 = require("@inquirer/prompts");
|
|
39314
39314
|
init_dist();
|
|
39315
|
+
|
|
39316
|
+
// src/setup/skills.ts
|
|
39317
|
+
var import_node_child_process = require("child_process");
|
|
39318
|
+
function skillsAgentFor(harness) {
|
|
39319
|
+
switch (harness) {
|
|
39320
|
+
case "claude-code":
|
|
39321
|
+
return "claude-code";
|
|
39322
|
+
case "cursor":
|
|
39323
|
+
return "cursor";
|
|
39324
|
+
case "codex":
|
|
39325
|
+
return "codex";
|
|
39326
|
+
case "claude-desktop":
|
|
39327
|
+
return null;
|
|
39328
|
+
}
|
|
39329
|
+
const _exhaustive = harness;
|
|
39330
|
+
return _exhaustive;
|
|
39331
|
+
}
|
|
39332
|
+
var SKILLS_TIMEOUT_MS = 12e4;
|
|
39333
|
+
var defaultSkillsInstaller = {
|
|
39334
|
+
install: (agent) => new Promise((resolve2, reject) => {
|
|
39335
|
+
const child = (0, import_node_child_process.spawn)(
|
|
39336
|
+
"npx",
|
|
39337
|
+
["-y", "skills", "add", "trustwallet/tw-agent-skills", "-a", agent],
|
|
39338
|
+
{ stdio: "inherit" }
|
|
39339
|
+
);
|
|
39340
|
+
let settled = false;
|
|
39341
|
+
const settle = (fn2) => {
|
|
39342
|
+
if (settled) return;
|
|
39343
|
+
settled = true;
|
|
39344
|
+
clearTimeout(timer);
|
|
39345
|
+
fn2();
|
|
39346
|
+
};
|
|
39347
|
+
const timer = setTimeout(() => {
|
|
39348
|
+
try {
|
|
39349
|
+
child.kill("SIGTERM");
|
|
39350
|
+
} catch {
|
|
39351
|
+
}
|
|
39352
|
+
settle(() => reject(new Error(`npx skills timed out after ${SKILLS_TIMEOUT_MS / 1e3}s`)));
|
|
39353
|
+
}, SKILLS_TIMEOUT_MS);
|
|
39354
|
+
child.on("error", (err) => settle(() => reject(err)));
|
|
39355
|
+
child.on(
|
|
39356
|
+
"exit",
|
|
39357
|
+
(code2) => settle(
|
|
39358
|
+
() => code2 === 0 ? resolve2() : reject(new Error(`npx skills exited with code ${code2}`))
|
|
39359
|
+
)
|
|
39360
|
+
);
|
|
39361
|
+
})
|
|
39362
|
+
};
|
|
39363
|
+
|
|
39364
|
+
// src/setup/phase-harnesses.ts
|
|
39315
39365
|
function indent(s2, spaces) {
|
|
39316
39366
|
const prefix = " ".repeat(spaces);
|
|
39317
39367
|
return s2.split("\n").map((line) => prefix + line).join("\n");
|
|
@@ -39349,6 +39399,7 @@ function makeDefaultDeps2() {
|
|
|
39349
39399
|
return {
|
|
39350
39400
|
harnesses: ALL_HARNESSES,
|
|
39351
39401
|
prompter: defaultPrompter2,
|
|
39402
|
+
skillsInstaller: defaultSkillsInstaller,
|
|
39352
39403
|
env: process.env
|
|
39353
39404
|
};
|
|
39354
39405
|
}
|
|
@@ -39405,6 +39456,7 @@ async function processHarness(writer, deps, verbose) {
|
|
|
39405
39456
|
if (current === null && raw === null) {
|
|
39406
39457
|
info(`Wiring ${writer.displayName} \u2192 ${writer.configPath()}`);
|
|
39407
39458
|
await writer.writeEntry();
|
|
39459
|
+
await runSkillsInstall(writer.name, deps);
|
|
39408
39460
|
return "wrote";
|
|
39409
39461
|
}
|
|
39410
39462
|
if (current !== null && entriesEqual(current, TARGET_ENTRY) && !entryHasExtras(raw)) {
|
|
@@ -39420,6 +39472,7 @@ async function processHarness(writer, deps, verbose) {
|
|
|
39420
39472
|
if (action === "update") {
|
|
39421
39473
|
info(`Updating ${writer.displayName} \u2192 ${writer.configPath()}`);
|
|
39422
39474
|
await writer.writeEntry();
|
|
39475
|
+
await runSkillsInstall(writer.name, deps);
|
|
39423
39476
|
return "wrote";
|
|
39424
39477
|
}
|
|
39425
39478
|
if (action === "remove") {
|
|
@@ -39430,6 +39483,23 @@ async function processHarness(writer, deps, verbose) {
|
|
|
39430
39483
|
info(`Keeping existing ${writer.displayName} entry`);
|
|
39431
39484
|
return null;
|
|
39432
39485
|
}
|
|
39486
|
+
async function runSkillsInstall(harness, deps) {
|
|
39487
|
+
if (deps.env.TWAK_SETUP_SKIP_SKILLS === "1") return;
|
|
39488
|
+
const agent = skillsAgentFor(harness);
|
|
39489
|
+
if (agent === null) return;
|
|
39490
|
+
info(
|
|
39491
|
+
` Installing agent skills for ${harness} (npx skills add trustwallet/tw-agent-skills -a ${agent})...`
|
|
39492
|
+
);
|
|
39493
|
+
try {
|
|
39494
|
+
await deps.skillsInstaller.install(agent);
|
|
39495
|
+
success(` Skills installed for ${harness}.`);
|
|
39496
|
+
} catch (err) {
|
|
39497
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
39498
|
+
warn(
|
|
39499
|
+
` Skills install for ${harness} failed (${msg}). The MCP wiring is in place; you can re-run \`npx skills add trustwallet/tw-agent-skills -a ${agent}\` manually.`
|
|
39500
|
+
);
|
|
39501
|
+
}
|
|
39502
|
+
}
|
|
39433
39503
|
async function runNonInteractive2(opts, deps) {
|
|
39434
39504
|
const envList = deps.env.TWAK_SETUP_HARNESSES;
|
|
39435
39505
|
const fromEnv = envList ? envList.split(",").map((s2) => s2.trim()).filter(Boolean) : [];
|
|
@@ -39465,6 +39535,7 @@ async function runNonInteractive2(opts, deps) {
|
|
|
39465
39535
|
if (current === null && raw === null) {
|
|
39466
39536
|
info(`Wiring ${writer.displayName} \u2192 ${writer.configPath()}`);
|
|
39467
39537
|
await writer.writeEntry();
|
|
39538
|
+
await runSkillsInstall(writer.name, deps);
|
|
39468
39539
|
continue;
|
|
39469
39540
|
}
|
|
39470
39541
|
if (current !== null && entriesEqual(current, TARGET_ENTRY) && !entryHasExtras(raw)) {
|
|
@@ -39482,6 +39553,7 @@ async function runNonInteractive2(opts, deps) {
|
|
|
39482
39553
|
);
|
|
39483
39554
|
}
|
|
39484
39555
|
await writer.writeEntry();
|
|
39556
|
+
await runSkillsInstall(writer.name, deps);
|
|
39485
39557
|
continue;
|
|
39486
39558
|
}
|
|
39487
39559
|
info(
|
|
@@ -57754,7 +57826,7 @@ var crypto7 = __toESM(require("crypto"));
|
|
|
57754
57826
|
// package.json
|
|
57755
57827
|
var package_default = {
|
|
57756
57828
|
name: "@trustwallet/cli",
|
|
57757
|
-
version: "0.12.
|
|
57829
|
+
version: "0.12.1",
|
|
57758
57830
|
description: "TWAK CLI \u2014 command-line interface for Trust Wallet Agent Kit",
|
|
57759
57831
|
main: "dist/index.js",
|
|
57760
57832
|
types: "dist/index.d.ts",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type HarnessName, type HarnessWriter, type TwakEntry } from './harnesses';
|
|
2
|
+
import { type SkillsInstaller } from './skills';
|
|
2
3
|
import type { SetupOptions } from './types';
|
|
3
4
|
export type ConflictAction = 'update' | 'keep' | 'remove';
|
|
4
5
|
export interface HarnessPrompter {
|
|
@@ -11,6 +12,7 @@ export interface HarnessPrompter {
|
|
|
11
12
|
export interface HarnessPhaseDeps {
|
|
12
13
|
harnesses: HarnessWriter[];
|
|
13
14
|
prompter: HarnessPrompter;
|
|
15
|
+
skillsInstaller: SkillsInstaller;
|
|
14
16
|
env: NodeJS.ProcessEnv;
|
|
15
17
|
}
|
|
16
18
|
export declare function runHarnessesPhase(opts: SetupOptions, deps?: HarnessPhaseDeps): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-harnesses.d.ts","sourceRoot":"","sources":["../../src/setup/phase-harnesses.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAkC1D,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9F,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"phase-harnesses.d.ts","sourceRoot":"","sources":["../../src/setup/phase-harnesses.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAkC1D,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9F,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAQ1B,eAAe,EAAE,eAAe,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAmCD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE,gBAAoC,GACzC,OAAO,CAAC,IAAI,CAAC,CAaf;AAmCD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAK7D,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,mBAAmB,CAAC,CA2D9B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HarnessName } from './harnesses/types';
|
|
2
|
+
export declare function skillsAgentFor(harness: HarnessName): string | null;
|
|
3
|
+
export interface SkillsInstaller {
|
|
4
|
+
install(agent: string): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export declare const defaultSkillsInstaller: SkillsInstaller;
|
|
7
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/setup/skills.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAgBlE;AAQD,MAAM,WAAW,eAAe;IAK9B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,sBAAsB,EAAE,eAsCpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trustwallet/cli",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "TWAK CLI — command-line interface for Trust Wallet Agent Kit",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,17 +32,17 @@
|
|
|
32
32
|
"tsup": "8.5.1",
|
|
33
33
|
"typescript": "5.7.3",
|
|
34
34
|
"vitest": "4.1.2",
|
|
35
|
-
"@twak/actions": "0.12.
|
|
36
|
-
"@twak/
|
|
37
|
-
"@twak/
|
|
38
|
-
"@twak/
|
|
39
|
-
"@twak/
|
|
40
|
-
"@twak/storage": "0.12.
|
|
41
|
-
"@twak/swap": "0.12.
|
|
42
|
-
"@twak/transactions": "0.12.
|
|
43
|
-
"@twak/wallet": "0.12.
|
|
44
|
-
"@twak/wallet-core": "0.12.
|
|
45
|
-
"@twak/walletconnect": "0.12.
|
|
35
|
+
"@twak/actions": "0.12.1",
|
|
36
|
+
"@twak/blockchain": "0.12.1",
|
|
37
|
+
"@twak/core": "0.12.1",
|
|
38
|
+
"@twak/mcp": "0.12.1",
|
|
39
|
+
"@twak/security": "0.12.1",
|
|
40
|
+
"@twak/storage": "0.12.1",
|
|
41
|
+
"@twak/swap": "0.12.1",
|
|
42
|
+
"@twak/transactions": "0.12.1",
|
|
43
|
+
"@twak/wallet": "0.12.1",
|
|
44
|
+
"@twak/wallet-core": "0.12.1",
|
|
45
|
+
"@twak/walletconnect": "0.12.1"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|