naracli 1.0.44 → 1.0.46
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/nara-cli-bundle.cjs +141 -114
- package/package.json +1 -1
- package/src/cli/commands/quest.ts +15 -1
package/dist/nara-cli-bundle.cjs
CHANGED
|
@@ -33817,7 +33817,7 @@ var require_bindings = __commonJS({
|
|
|
33817
33817
|
var fs = require("fs");
|
|
33818
33818
|
var path = require("path");
|
|
33819
33819
|
var fileURLToPath = require_file_uri_to_path();
|
|
33820
|
-
var
|
|
33820
|
+
var join6 = path.join;
|
|
33821
33821
|
var dirname2 = path.dirname;
|
|
33822
33822
|
var exists = fs.accessSync && function(path2) {
|
|
33823
33823
|
try {
|
|
@@ -33877,7 +33877,7 @@ var require_bindings = __commonJS({
|
|
|
33877
33877
|
var requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
|
|
33878
33878
|
var tries = [], i = 0, l = opts.try.length, n, b, err;
|
|
33879
33879
|
for (; i < l; i++) {
|
|
33880
|
-
n =
|
|
33880
|
+
n = join6.apply(
|
|
33881
33881
|
null,
|
|
33882
33882
|
opts.try[i].map(function(p) {
|
|
33883
33883
|
return opts[p] || p;
|
|
@@ -33938,7 +33938,7 @@ var require_bindings = __commonJS({
|
|
|
33938
33938
|
if (dir === ".") {
|
|
33939
33939
|
dir = process.cwd();
|
|
33940
33940
|
}
|
|
33941
|
-
if (exists(
|
|
33941
|
+
if (exists(join6(dir, "package.json")) || exists(join6(dir, "node_modules"))) {
|
|
33942
33942
|
return dir;
|
|
33943
33943
|
}
|
|
33944
33944
|
if (prev === dir) {
|
|
@@ -33947,7 +33947,7 @@ var require_bindings = __commonJS({
|
|
|
33947
33947
|
);
|
|
33948
33948
|
}
|
|
33949
33949
|
prev = dir;
|
|
33950
|
-
dir =
|
|
33950
|
+
dir = join6(dir, "..");
|
|
33951
33951
|
}
|
|
33952
33952
|
};
|
|
33953
33953
|
}
|
|
@@ -95380,7 +95380,7 @@ var require_buffer_list = __commonJS({
|
|
|
95380
95380
|
}
|
|
95381
95381
|
}, {
|
|
95382
95382
|
key: "join",
|
|
95383
|
-
value: function
|
|
95383
|
+
value: function join6(s) {
|
|
95384
95384
|
if (this.length === 0) return "";
|
|
95385
95385
|
var p = this.head;
|
|
95386
95386
|
var ret = "" + p.data;
|
|
@@ -125905,11 +125905,18 @@ var import_meta = {};
|
|
|
125905
125905
|
var BN254_FIELD = 21888242871839275222246405745257275088696311157297823662689037894645226208583n;
|
|
125906
125906
|
async function resolveDefaultZkPaths() {
|
|
125907
125907
|
const { fileURLToPath } = await import("url");
|
|
125908
|
-
const { dirname: dirname2, join:
|
|
125909
|
-
|
|
125908
|
+
const { dirname: dirname2, join: join6 } = await import("path");
|
|
125909
|
+
let dir;
|
|
125910
|
+
if (import_meta.url) {
|
|
125911
|
+
dir = dirname2(fileURLToPath(import_meta.url));
|
|
125912
|
+
} else {
|
|
125913
|
+
const { createRequire } = await import("module");
|
|
125914
|
+
const req = createRequire(process.cwd() + "/");
|
|
125915
|
+
dir = dirname2(req.resolve("nara-sdk/package.json")) + "/src";
|
|
125916
|
+
}
|
|
125910
125917
|
return {
|
|
125911
|
-
wasm:
|
|
125912
|
-
zkey:
|
|
125918
|
+
wasm: join6(dir, "zk", "answer_proof.wasm"),
|
|
125919
|
+
zkey: join6(dir, "zk", "answer_proof_final.zkey")
|
|
125913
125920
|
};
|
|
125914
125921
|
}
|
|
125915
125922
|
function hexFromBytes(bytes) {
|
|
@@ -126137,7 +126144,11 @@ async function submitAnswer(connection, wallet, proof, agent = "", model = "", o
|
|
|
126137
126144
|
);
|
|
126138
126145
|
ixs.push(logIx);
|
|
126139
126146
|
}
|
|
126140
|
-
const signature = await sendTx(connection, wallet, ixs, [], {
|
|
126147
|
+
const signature = await sendTx(connection, wallet, ixs, [], {
|
|
126148
|
+
skipPreflight: true,
|
|
126149
|
+
computeUnitLimit: 5e5,
|
|
126150
|
+
computeUnitPrice: "auto"
|
|
126151
|
+
});
|
|
126141
126152
|
return { signature };
|
|
126142
126153
|
}
|
|
126143
126154
|
async function submitAnswerViaRelay(relayUrl, userPubkey, proof, agent = "", model = "") {
|
|
@@ -128961,13 +128972,13 @@ var BN254_PRIME = 21888242871839275222246405745257275088696311157297823662689037
|
|
|
128961
128972
|
var MERKLE_LEVELS = 64;
|
|
128962
128973
|
async function resolveDefaultZkPaths2() {
|
|
128963
128974
|
const { fileURLToPath } = await import("url");
|
|
128964
|
-
const { dirname: dirname2, join:
|
|
128975
|
+
const { dirname: dirname2, join: join6 } = await import("path");
|
|
128965
128976
|
const dir = dirname2(fileURLToPath(import_meta2.url));
|
|
128966
128977
|
return {
|
|
128967
|
-
withdrawWasm:
|
|
128968
|
-
withdrawZkey:
|
|
128969
|
-
ownershipWasm:
|
|
128970
|
-
ownershipZkey:
|
|
128978
|
+
withdrawWasm: join6(dir, "zk", "withdraw.wasm"),
|
|
128979
|
+
withdrawZkey: join6(dir, "zk", "withdraw_final.zkey"),
|
|
128980
|
+
ownershipWasm: join6(dir, "zk", "ownership.wasm"),
|
|
128981
|
+
ownershipZkey: join6(dir, "zk", "ownership_final.zkey")
|
|
128971
128982
|
};
|
|
128972
128983
|
}
|
|
128973
128984
|
var ZKID_DENOMINATIONS = {
|
|
@@ -130012,6 +130023,22 @@ async function handleWalletAddress(options) {
|
|
|
130012
130023
|
|
|
130013
130024
|
// src/cli/commands/quest.ts
|
|
130014
130025
|
var import_web398 = __toESM(require_index_cjs(), 1);
|
|
130026
|
+
var import_node_path4 = require("node:path");
|
|
130027
|
+
var import_meta3 = {};
|
|
130028
|
+
var _getMetaUrl = () => {
|
|
130029
|
+
try {
|
|
130030
|
+
return import_meta3.url;
|
|
130031
|
+
} catch {
|
|
130032
|
+
return void 0;
|
|
130033
|
+
}
|
|
130034
|
+
};
|
|
130035
|
+
function getZkOptions() {
|
|
130036
|
+
if (_getMetaUrl()) return void 0;
|
|
130037
|
+
return {
|
|
130038
|
+
circuitWasmPath: (0, import_node_path4.join)(__dirname, "zk", "answer_proof.wasm"),
|
|
130039
|
+
zkeyPath: (0, import_node_path4.join)(__dirname, "zk", "answer_proof_final.zkey")
|
|
130040
|
+
};
|
|
130041
|
+
}
|
|
130015
130042
|
var DEFAULT_QUEST_RELAY_URL2 = process.env.QUEST_RELAY_URL || "https://quest-api.nara.build/";
|
|
130016
130043
|
var QUEST_ERRORS = {
|
|
130017
130044
|
6e3: "unauthorized",
|
|
@@ -130136,7 +130163,7 @@ async function handleQuestAnswer(answer, options) {
|
|
|
130136
130163
|
printInfo("Generating ZK proof...");
|
|
130137
130164
|
let proof;
|
|
130138
130165
|
try {
|
|
130139
|
-
proof = await generateProof(answer, quest.answerHash, wallet.publicKey, quest.round);
|
|
130166
|
+
proof = await generateProof(answer, quest.answerHash, wallet.publicKey, quest.round, getZkOptions());
|
|
130140
130167
|
} catch (err) {
|
|
130141
130168
|
if (err.message?.includes("Assert Failed")) {
|
|
130142
130169
|
printError("Wrong answer");
|
|
@@ -131423,266 +131450,266 @@ async function searchMultiselect(options) {
|
|
|
131423
131450
|
// src/cli/commands/skillsInstall.ts
|
|
131424
131451
|
var import_promises2 = require("node:fs/promises");
|
|
131425
131452
|
var import_node_fs2 = require("node:fs");
|
|
131426
|
-
var
|
|
131453
|
+
var import_node_path5 = require("node:path");
|
|
131427
131454
|
var import_node_os4 = require("node:os");
|
|
131428
131455
|
var import_web399 = __toESM(require_index_cjs(), 1);
|
|
131429
131456
|
var home = (0, import_node_os4.homedir)();
|
|
131430
|
-
var xdgConfig = process.env.XDG_CONFIG_HOME || (0,
|
|
131431
|
-
var claudeHome = process.env.CLAUDE_CONFIG_DIR?.trim() || (0,
|
|
131432
|
-
var codexHome = process.env.CODEX_HOME?.trim() || (0,
|
|
131457
|
+
var xdgConfig = process.env.XDG_CONFIG_HOME || (0, import_node_path5.join)(home, ".config");
|
|
131458
|
+
var claudeHome = process.env.CLAUDE_CONFIG_DIR?.trim() || (0, import_node_path5.join)(home, ".claude");
|
|
131459
|
+
var codexHome = process.env.CODEX_HOME?.trim() || (0, import_node_path5.join)(home, ".codex");
|
|
131433
131460
|
function openClawGlobalDir() {
|
|
131434
|
-
if ((0, import_node_fs2.existsSync)((0,
|
|
131435
|
-
if ((0, import_node_fs2.existsSync)((0,
|
|
131436
|
-
if ((0, import_node_fs2.existsSync)((0,
|
|
131437
|
-
return (0,
|
|
131461
|
+
if ((0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".openclaw"))) return (0, import_node_path5.join)(home, ".openclaw/skills");
|
|
131462
|
+
if ((0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".clawdbot"))) return (0, import_node_path5.join)(home, ".clawdbot/skills");
|
|
131463
|
+
if ((0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".moltbot"))) return (0, import_node_path5.join)(home, ".moltbot/skills");
|
|
131464
|
+
return (0, import_node_path5.join)(home, ".openclaw/skills");
|
|
131438
131465
|
}
|
|
131439
131466
|
var AGENT_CONFIGS = {
|
|
131440
131467
|
// ── Universal agents (share .agents/skills) ───────────────────
|
|
131441
131468
|
amp: {
|
|
131442
131469
|
displayName: "Amp",
|
|
131443
131470
|
projectDir: ".agents/skills",
|
|
131444
|
-
globalDir: (0,
|
|
131445
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131471
|
+
globalDir: (0, import_node_path5.join)(xdgConfig, "agents/skills"),
|
|
131472
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(xdgConfig, "amp"))
|
|
131446
131473
|
},
|
|
131447
131474
|
cline: {
|
|
131448
131475
|
displayName: "Cline",
|
|
131449
131476
|
projectDir: ".agents/skills",
|
|
131450
|
-
globalDir: (0,
|
|
131451
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131477
|
+
globalDir: (0, import_node_path5.join)(home, ".agents/skills"),
|
|
131478
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".cline"))
|
|
131452
131479
|
},
|
|
131453
131480
|
codex: {
|
|
131454
131481
|
displayName: "Codex",
|
|
131455
131482
|
projectDir: ".agents/skills",
|
|
131456
|
-
globalDir: (0,
|
|
131483
|
+
globalDir: (0, import_node_path5.join)(codexHome, "skills"),
|
|
131457
131484
|
detect: () => (0, import_node_fs2.existsSync)(codexHome) || (0, import_node_fs2.existsSync)("/etc/codex")
|
|
131458
131485
|
},
|
|
131459
131486
|
cursor: {
|
|
131460
131487
|
displayName: "Cursor",
|
|
131461
131488
|
projectDir: ".agents/skills",
|
|
131462
|
-
globalDir: (0,
|
|
131463
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131489
|
+
globalDir: (0, import_node_path5.join)(home, ".cursor/skills"),
|
|
131490
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".cursor"))
|
|
131464
131491
|
},
|
|
131465
131492
|
"gemini-cli": {
|
|
131466
131493
|
displayName: "Gemini CLI",
|
|
131467
131494
|
projectDir: ".agents/skills",
|
|
131468
|
-
globalDir: (0,
|
|
131469
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131495
|
+
globalDir: (0, import_node_path5.join)(home, ".gemini/skills"),
|
|
131496
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".gemini"))
|
|
131470
131497
|
},
|
|
131471
131498
|
"github-copilot": {
|
|
131472
131499
|
displayName: "GitHub Copilot",
|
|
131473
131500
|
projectDir: ".agents/skills",
|
|
131474
|
-
globalDir: (0,
|
|
131475
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131501
|
+
globalDir: (0, import_node_path5.join)(home, ".copilot/skills"),
|
|
131502
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".copilot"))
|
|
131476
131503
|
},
|
|
131477
131504
|
"kimi-cli": {
|
|
131478
131505
|
displayName: "Kimi Code CLI",
|
|
131479
131506
|
projectDir: ".agents/skills",
|
|
131480
|
-
globalDir: (0,
|
|
131481
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131507
|
+
globalDir: (0, import_node_path5.join)(home, ".config/agents/skills"),
|
|
131508
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".kimi"))
|
|
131482
131509
|
},
|
|
131483
131510
|
opencode: {
|
|
131484
131511
|
displayName: "OpenCode",
|
|
131485
131512
|
projectDir: ".agents/skills",
|
|
131486
|
-
globalDir: (0,
|
|
131487
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131513
|
+
globalDir: (0, import_node_path5.join)(xdgConfig, "opencode/skills"),
|
|
131514
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(xdgConfig, "opencode"))
|
|
131488
131515
|
},
|
|
131489
131516
|
replit: {
|
|
131490
131517
|
displayName: "Replit",
|
|
131491
131518
|
projectDir: ".agents/skills",
|
|
131492
|
-
globalDir: (0,
|
|
131493
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131519
|
+
globalDir: (0, import_node_path5.join)(xdgConfig, "agents/skills"),
|
|
131520
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(process.cwd(), ".replit")),
|
|
131494
131521
|
showInUniversalList: false
|
|
131495
131522
|
},
|
|
131496
131523
|
// ── Additional agents (custom skill dirs) ─────────────────────
|
|
131497
131524
|
adal: {
|
|
131498
131525
|
displayName: "AdaL",
|
|
131499
131526
|
projectDir: ".adal/skills",
|
|
131500
|
-
globalDir: (0,
|
|
131501
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131527
|
+
globalDir: (0, import_node_path5.join)(home, ".adal/skills"),
|
|
131528
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".adal"))
|
|
131502
131529
|
},
|
|
131503
131530
|
antigravity: {
|
|
131504
131531
|
displayName: "Antigravity",
|
|
131505
131532
|
projectDir: ".agent/skills",
|
|
131506
|
-
globalDir: (0,
|
|
131507
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131533
|
+
globalDir: (0, import_node_path5.join)(home, ".gemini/antigravity/skills"),
|
|
131534
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".gemini/antigravity"))
|
|
131508
131535
|
},
|
|
131509
131536
|
augment: {
|
|
131510
131537
|
displayName: "Augment",
|
|
131511
131538
|
projectDir: ".augment/skills",
|
|
131512
|
-
globalDir: (0,
|
|
131513
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131539
|
+
globalDir: (0, import_node_path5.join)(home, ".augment/skills"),
|
|
131540
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".augment"))
|
|
131514
131541
|
},
|
|
131515
131542
|
"claude-code": {
|
|
131516
131543
|
displayName: "Claude Code",
|
|
131517
131544
|
projectDir: ".claude/skills",
|
|
131518
|
-
globalDir: (0,
|
|
131545
|
+
globalDir: (0, import_node_path5.join)(claudeHome, "skills"),
|
|
131519
131546
|
detect: () => (0, import_node_fs2.existsSync)(claudeHome)
|
|
131520
131547
|
},
|
|
131521
131548
|
codebuddy: {
|
|
131522
131549
|
displayName: "CodeBuddy",
|
|
131523
131550
|
projectDir: ".codebuddy/skills",
|
|
131524
|
-
globalDir: (0,
|
|
131525
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131551
|
+
globalDir: (0, import_node_path5.join)(home, ".codebuddy/skills"),
|
|
131552
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(process.cwd(), ".codebuddy")) || (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".codebuddy"))
|
|
131526
131553
|
},
|
|
131527
131554
|
"command-code": {
|
|
131528
131555
|
displayName: "Command Code",
|
|
131529
131556
|
projectDir: ".commandcode/skills",
|
|
131530
|
-
globalDir: (0,
|
|
131531
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131557
|
+
globalDir: (0, import_node_path5.join)(home, ".commandcode/skills"),
|
|
131558
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".commandcode"))
|
|
131532
131559
|
},
|
|
131533
131560
|
continue: {
|
|
131534
131561
|
displayName: "Continue",
|
|
131535
131562
|
projectDir: ".continue/skills",
|
|
131536
|
-
globalDir: (0,
|
|
131537
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131563
|
+
globalDir: (0, import_node_path5.join)(home, ".continue/skills"),
|
|
131564
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(process.cwd(), ".continue")) || (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".continue"))
|
|
131538
131565
|
},
|
|
131539
131566
|
cortex: {
|
|
131540
131567
|
displayName: "Cortex Code",
|
|
131541
131568
|
projectDir: ".cortex/skills",
|
|
131542
|
-
globalDir: (0,
|
|
131543
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131569
|
+
globalDir: (0, import_node_path5.join)(home, ".snowflake/cortex/skills"),
|
|
131570
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".snowflake/cortex"))
|
|
131544
131571
|
},
|
|
131545
131572
|
crush: {
|
|
131546
131573
|
displayName: "Crush",
|
|
131547
131574
|
projectDir: ".crush/skills",
|
|
131548
|
-
globalDir: (0,
|
|
131549
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131575
|
+
globalDir: (0, import_node_path5.join)(home, ".config/crush/skills"),
|
|
131576
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".config/crush"))
|
|
131550
131577
|
},
|
|
131551
131578
|
droid: {
|
|
131552
131579
|
displayName: "Droid",
|
|
131553
131580
|
projectDir: ".factory/skills",
|
|
131554
|
-
globalDir: (0,
|
|
131555
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131581
|
+
globalDir: (0, import_node_path5.join)(home, ".factory/skills"),
|
|
131582
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".factory"))
|
|
131556
131583
|
},
|
|
131557
131584
|
goose: {
|
|
131558
131585
|
displayName: "Goose",
|
|
131559
131586
|
projectDir: ".goose/skills",
|
|
131560
|
-
globalDir: (0,
|
|
131561
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131587
|
+
globalDir: (0, import_node_path5.join)(xdgConfig, "goose/skills"),
|
|
131588
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(xdgConfig, "goose"))
|
|
131562
131589
|
},
|
|
131563
131590
|
"iflow-cli": {
|
|
131564
131591
|
displayName: "iFlow CLI",
|
|
131565
131592
|
projectDir: ".iflow/skills",
|
|
131566
|
-
globalDir: (0,
|
|
131567
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131593
|
+
globalDir: (0, import_node_path5.join)(home, ".iflow/skills"),
|
|
131594
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".iflow"))
|
|
131568
131595
|
},
|
|
131569
131596
|
junie: {
|
|
131570
131597
|
displayName: "Junie",
|
|
131571
131598
|
projectDir: ".junie/skills",
|
|
131572
|
-
globalDir: (0,
|
|
131573
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131599
|
+
globalDir: (0, import_node_path5.join)(home, ".junie/skills"),
|
|
131600
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".junie"))
|
|
131574
131601
|
},
|
|
131575
131602
|
kilo: {
|
|
131576
131603
|
displayName: "Kilo Code",
|
|
131577
131604
|
projectDir: ".kilocode/skills",
|
|
131578
|
-
globalDir: (0,
|
|
131579
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131605
|
+
globalDir: (0, import_node_path5.join)(home, ".kilocode/skills"),
|
|
131606
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".kilocode"))
|
|
131580
131607
|
},
|
|
131581
131608
|
"kiro-cli": {
|
|
131582
131609
|
displayName: "Kiro CLI",
|
|
131583
131610
|
projectDir: ".kiro/skills",
|
|
131584
|
-
globalDir: (0,
|
|
131585
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131611
|
+
globalDir: (0, import_node_path5.join)(home, ".kiro/skills"),
|
|
131612
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".kiro"))
|
|
131586
131613
|
},
|
|
131587
131614
|
kode: {
|
|
131588
131615
|
displayName: "Kode",
|
|
131589
131616
|
projectDir: ".kode/skills",
|
|
131590
|
-
globalDir: (0,
|
|
131591
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131617
|
+
globalDir: (0, import_node_path5.join)(home, ".kode/skills"),
|
|
131618
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".kode"))
|
|
131592
131619
|
},
|
|
131593
131620
|
mcpjam: {
|
|
131594
131621
|
displayName: "MCPJam",
|
|
131595
131622
|
projectDir: ".mcpjam/skills",
|
|
131596
|
-
globalDir: (0,
|
|
131597
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131623
|
+
globalDir: (0, import_node_path5.join)(home, ".mcpjam/skills"),
|
|
131624
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".mcpjam"))
|
|
131598
131625
|
},
|
|
131599
131626
|
"mistral-vibe": {
|
|
131600
131627
|
displayName: "Mistral Vibe",
|
|
131601
131628
|
projectDir: ".vibe/skills",
|
|
131602
|
-
globalDir: (0,
|
|
131603
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131629
|
+
globalDir: (0, import_node_path5.join)(home, ".vibe/skills"),
|
|
131630
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".vibe"))
|
|
131604
131631
|
},
|
|
131605
131632
|
mux: {
|
|
131606
131633
|
displayName: "Mux",
|
|
131607
131634
|
projectDir: ".mux/skills",
|
|
131608
|
-
globalDir: (0,
|
|
131609
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131635
|
+
globalDir: (0, import_node_path5.join)(home, ".mux/skills"),
|
|
131636
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".mux"))
|
|
131610
131637
|
},
|
|
131611
131638
|
neovate: {
|
|
131612
131639
|
displayName: "Neovate",
|
|
131613
131640
|
projectDir: ".neovate/skills",
|
|
131614
|
-
globalDir: (0,
|
|
131615
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131641
|
+
globalDir: (0, import_node_path5.join)(home, ".neovate/skills"),
|
|
131642
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".neovate"))
|
|
131616
131643
|
},
|
|
131617
131644
|
openclaw: {
|
|
131618
131645
|
displayName: "OpenClaw",
|
|
131619
131646
|
projectDir: "skills",
|
|
131620
131647
|
globalDir: openClawGlobalDir(),
|
|
131621
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131648
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".openclaw")) || (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".clawdbot")) || (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".moltbot"))
|
|
131622
131649
|
},
|
|
131623
131650
|
openhands: {
|
|
131624
131651
|
displayName: "OpenHands",
|
|
131625
131652
|
projectDir: ".openhands/skills",
|
|
131626
|
-
globalDir: (0,
|
|
131627
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131653
|
+
globalDir: (0, import_node_path5.join)(home, ".openhands/skills"),
|
|
131654
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".openhands"))
|
|
131628
131655
|
},
|
|
131629
131656
|
pi: {
|
|
131630
131657
|
displayName: "Pi",
|
|
131631
131658
|
projectDir: ".pi/skills",
|
|
131632
|
-
globalDir: (0,
|
|
131633
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131659
|
+
globalDir: (0, import_node_path5.join)(home, ".pi/agent/skills"),
|
|
131660
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".pi/agent"))
|
|
131634
131661
|
},
|
|
131635
131662
|
pochi: {
|
|
131636
131663
|
displayName: "Pochi",
|
|
131637
131664
|
projectDir: ".pochi/skills",
|
|
131638
|
-
globalDir: (0,
|
|
131639
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131665
|
+
globalDir: (0, import_node_path5.join)(home, ".pochi/skills"),
|
|
131666
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".pochi"))
|
|
131640
131667
|
},
|
|
131641
131668
|
qoder: {
|
|
131642
131669
|
displayName: "Qoder",
|
|
131643
131670
|
projectDir: ".qoder/skills",
|
|
131644
|
-
globalDir: (0,
|
|
131645
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131671
|
+
globalDir: (0, import_node_path5.join)(home, ".qoder/skills"),
|
|
131672
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".qoder"))
|
|
131646
131673
|
},
|
|
131647
131674
|
"qwen-code": {
|
|
131648
131675
|
displayName: "Qwen Code",
|
|
131649
131676
|
projectDir: ".qwen/skills",
|
|
131650
|
-
globalDir: (0,
|
|
131651
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131677
|
+
globalDir: (0, import_node_path5.join)(home, ".qwen/skills"),
|
|
131678
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".qwen"))
|
|
131652
131679
|
},
|
|
131653
131680
|
roo: {
|
|
131654
131681
|
displayName: "Roo Code",
|
|
131655
131682
|
projectDir: ".roo/skills",
|
|
131656
|
-
globalDir: (0,
|
|
131657
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131683
|
+
globalDir: (0, import_node_path5.join)(home, ".roo/skills"),
|
|
131684
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".roo"))
|
|
131658
131685
|
},
|
|
131659
131686
|
trae: {
|
|
131660
131687
|
displayName: "Trae",
|
|
131661
131688
|
projectDir: ".trae/skills",
|
|
131662
|
-
globalDir: (0,
|
|
131663
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131689
|
+
globalDir: (0, import_node_path5.join)(home, ".trae/skills"),
|
|
131690
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".trae"))
|
|
131664
131691
|
},
|
|
131665
131692
|
"trae-cn": {
|
|
131666
131693
|
displayName: "Trae CN",
|
|
131667
131694
|
projectDir: ".trae/skills",
|
|
131668
|
-
globalDir: (0,
|
|
131669
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131695
|
+
globalDir: (0, import_node_path5.join)(home, ".trae-cn/skills"),
|
|
131696
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".trae-cn"))
|
|
131670
131697
|
},
|
|
131671
131698
|
windsurf: {
|
|
131672
131699
|
displayName: "Windsurf",
|
|
131673
131700
|
projectDir: ".windsurf/skills",
|
|
131674
|
-
globalDir: (0,
|
|
131675
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131701
|
+
globalDir: (0, import_node_path5.join)(home, ".codeium/windsurf/skills"),
|
|
131702
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".codeium/windsurf"))
|
|
131676
131703
|
},
|
|
131677
131704
|
zencoder: {
|
|
131678
131705
|
displayName: "Zencoder",
|
|
131679
131706
|
projectDir: ".zencoder/skills",
|
|
131680
|
-
globalDir: (0,
|
|
131681
|
-
detect: () => (0, import_node_fs2.existsSync)((0,
|
|
131707
|
+
globalDir: (0, import_node_path5.join)(home, ".zencoder/skills"),
|
|
131708
|
+
detect: () => (0, import_node_fs2.existsSync)((0, import_node_path5.join)(home, ".zencoder"))
|
|
131682
131709
|
}
|
|
131683
131710
|
};
|
|
131684
131711
|
function getLockPath(global2, cwd) {
|
|
131685
|
-
return global2 ? (0,
|
|
131712
|
+
return global2 ? (0, import_node_path5.join)(xdgConfig, "nara/skills-lock.json") : (0, import_node_path5.join)(cwd, ".nara/skills-lock.json");
|
|
131686
131713
|
}
|
|
131687
131714
|
async function readLock(global2, cwd) {
|
|
131688
131715
|
try {
|
|
@@ -131694,7 +131721,7 @@ async function readLock(global2, cwd) {
|
|
|
131694
131721
|
}
|
|
131695
131722
|
async function writeLock(lock, global2, cwd) {
|
|
131696
131723
|
const lockPath = getLockPath(global2, cwd);
|
|
131697
|
-
await (0, import_promises2.mkdir)((0,
|
|
131724
|
+
await (0, import_promises2.mkdir)((0, import_node_path5.dirname)(lockPath), { recursive: true });
|
|
131698
131725
|
await (0, import_promises2.writeFile)(lockPath, JSON.stringify(lock, null, 2) + "\n", "utf-8");
|
|
131699
131726
|
}
|
|
131700
131727
|
function detectAgents() {
|
|
@@ -131711,23 +131738,23 @@ function resolveInstallDirs(agentIds, global2, cwd) {
|
|
|
131711
131738
|
return {
|
|
131712
131739
|
agentId: id,
|
|
131713
131740
|
displayName: cfg.displayName,
|
|
131714
|
-
dir: global2 ? cfg.globalDir : (0,
|
|
131741
|
+
dir: global2 ? cfg.globalDir : (0, import_node_path5.join)(cwd, cfg.projectDir)
|
|
131715
131742
|
};
|
|
131716
131743
|
});
|
|
131717
131744
|
}
|
|
131718
131745
|
async function writeSkillFiles(name, content, targets) {
|
|
131719
131746
|
const written = [];
|
|
131720
131747
|
for (const { dir } of targets) {
|
|
131721
|
-
const skillDir = (0,
|
|
131748
|
+
const skillDir = (0, import_node_path5.join)(dir, name);
|
|
131722
131749
|
await (0, import_promises2.mkdir)(skillDir, { recursive: true });
|
|
131723
|
-
await (0, import_promises2.writeFile)((0,
|
|
131724
|
-
written.push((0,
|
|
131750
|
+
await (0, import_promises2.writeFile)((0, import_node_path5.join)(skillDir, "SKILL.md"), content);
|
|
131751
|
+
written.push((0, import_node_path5.join)(skillDir, "SKILL.md"));
|
|
131725
131752
|
}
|
|
131726
131753
|
return written;
|
|
131727
131754
|
}
|
|
131728
131755
|
async function removeSkillFiles(name, targets) {
|
|
131729
131756
|
for (const { dir } of targets) {
|
|
131730
|
-
await (0, import_promises2.rm)((0,
|
|
131757
|
+
await (0, import_promises2.rm)((0, import_node_path5.join)(dir, name), { recursive: true, force: true });
|
|
131731
131758
|
}
|
|
131732
131759
|
}
|
|
131733
131760
|
function shortenPath(fullPath, cwd) {
|
|
@@ -131837,7 +131864,7 @@ async function handleSkillsAdd(name, options) {
|
|
|
131837
131864
|
const additionalTargets = targets.filter((t) => !universalIds.includes(t.agentId));
|
|
131838
131865
|
const summaryLines = [];
|
|
131839
131866
|
if (universalTargets.length > 0) {
|
|
131840
|
-
const canonicalPath = (0,
|
|
131867
|
+
const canonicalPath = (0, import_node_path5.join)(universalTargets[0].dir, name);
|
|
131841
131868
|
summaryLines.push(`${import_picocolors3.default.cyan(shortenPath(canonicalPath, cwd))}`);
|
|
131842
131869
|
summaryLines.push(
|
|
131843
131870
|
` ${import_picocolors3.default.dim("\u2500\u2500")} ${import_picocolors3.default.bold("Universal (.agents/skills)")} ${import_picocolors3.default.dim("\u2500\u2500 always included \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")}`
|
|
@@ -131848,7 +131875,7 @@ async function handleSkillsAdd(name, options) {
|
|
|
131848
131875
|
}
|
|
131849
131876
|
for (const t of additionalTargets) {
|
|
131850
131877
|
if (summaryLines.length > 0) summaryLines.push("");
|
|
131851
|
-
const filePath = (0,
|
|
131878
|
+
const filePath = (0, import_node_path5.join)(t.dir, name, "SKILL.md");
|
|
131852
131879
|
summaryLines.push(`${import_picocolors3.default.cyan(shortenPath(filePath, cwd))}`);
|
|
131853
131880
|
summaryLines.push(` ${import_picocolors3.default.green("\u2022")} ${t.displayName}`);
|
|
131854
131881
|
}
|
|
@@ -131928,9 +131955,9 @@ async function handleSkillsList(options) {
|
|
|
131928
131955
|
let canonicalPath = "";
|
|
131929
131956
|
for (const [, cfg] of Object.entries(AGENT_CONFIGS)) {
|
|
131930
131957
|
if (!cfg.detect()) continue;
|
|
131931
|
-
const dir = isGlobal ? cfg.globalDir : (0,
|
|
131932
|
-
if ((0, import_node_fs2.existsSync)((0,
|
|
131933
|
-
if (!canonicalPath) canonicalPath = shortenPath((0,
|
|
131958
|
+
const dir = isGlobal ? cfg.globalDir : (0, import_node_path5.join)(cwd, cfg.projectDir);
|
|
131959
|
+
if ((0, import_node_fs2.existsSync)((0, import_node_path5.join)(dir, name, "SKILL.md"))) {
|
|
131960
|
+
if (!canonicalPath) canonicalPath = shortenPath((0, import_node_path5.join)(dir, name), cwd);
|
|
131934
131961
|
installedAgents.push(cfg.displayName);
|
|
131935
131962
|
}
|
|
131936
131963
|
}
|
|
@@ -133218,7 +133245,7 @@ function registerCommands(program3) {
|
|
|
133218
133245
|
}
|
|
133219
133246
|
|
|
133220
133247
|
// bin/nara-cli.ts
|
|
133221
|
-
var version2 = true ? "1.0.
|
|
133248
|
+
var version2 = true ? "1.0.46" : "dev";
|
|
133222
133249
|
var program2 = new Command();
|
|
133223
133250
|
program2.name("naracli").description("CLI for the Nara chain (Solana-compatible)").version(version2);
|
|
133224
133251
|
program2.option("-r, --rpc-url <url>", "RPC endpoint URL").option("-w, --wallet <path>", "Path to wallet keypair JSON file").option("-j, --json", "Output in JSON format");
|
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
7
|
+
import { join } from "node:path";
|
|
7
8
|
import { loadWallet, getRpcUrl } from "../utils/wallet";
|
|
8
9
|
import {
|
|
9
10
|
formatOutput,
|
|
@@ -25,9 +26,22 @@ import {
|
|
|
25
26
|
getStakeInfo,
|
|
26
27
|
type ActivityLog,
|
|
27
28
|
type StakeInfo,
|
|
29
|
+
type QuestOptions,
|
|
28
30
|
} from "nara-sdk";
|
|
29
31
|
import { loadNetworkConfig } from "../utils/agent-config";
|
|
30
32
|
|
|
33
|
+
// In CJS bundle (dist/naracli.cjs), import.meta.url is undefined and SDK
|
|
34
|
+
// cannot auto-resolve ZK circuit paths. Provide them explicitly via __dirname.
|
|
35
|
+
// Use indirect access to avoid esbuild empty-import-meta warning.
|
|
36
|
+
const _getMetaUrl = () => { try { return import.meta.url; } catch { return undefined; } };
|
|
37
|
+
function getZkOptions(): QuestOptions | undefined {
|
|
38
|
+
if (_getMetaUrl()) return undefined; // dev mode: SDK resolves paths itself
|
|
39
|
+
return {
|
|
40
|
+
circuitWasmPath: join(__dirname, "zk", "answer_proof.wasm"),
|
|
41
|
+
zkeyPath: join(__dirname, "zk", "answer_proof_final.zkey"),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
31
45
|
const DEFAULT_QUEST_RELAY_URL = process.env.QUEST_RELAY_URL || "https://quest-api.nara.build/";
|
|
32
46
|
|
|
33
47
|
// ─── Anchor error parsing ────────────────────────────────────────
|
|
@@ -178,7 +192,7 @@ async function handleQuestAnswer(
|
|
|
178
192
|
|
|
179
193
|
let proof;
|
|
180
194
|
try {
|
|
181
|
-
proof = await generateProof(answer, quest.answerHash, wallet.publicKey, quest.round);
|
|
195
|
+
proof = await generateProof(answer, quest.answerHash, wallet.publicKey, quest.round, getZkOptions());
|
|
182
196
|
} catch (err: any) {
|
|
183
197
|
if (err.message?.includes("Assert Failed")) {
|
|
184
198
|
printError("Wrong answer");
|