@bankr/cli 0.1.0-beta.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/README.md +92 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +260 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/cancel.d.ts +2 -0
- package/dist/commands/cancel.d.ts.map +1 -0
- package/dist/commands/cancel.js +25 -0
- package/dist/commands/cancel.js.map +1 -0
- package/dist/commands/capabilities.d.ts +2 -0
- package/dist/commands/capabilities.d.ts.map +1 -0
- package/dist/commands/capabilities.js +162 -0
- package/dist/commands/capabilities.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +56 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/llm.d.ts +12 -0
- package/dist/commands/llm.d.ts.map +1 -0
- package/dist/commands/llm.js +280 -0
- package/dist/commands/llm.js.map +1 -0
- package/dist/commands/login.d.ts +4 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +122 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +2 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +13 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/prompt.d.ts +2 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/prompt.js +56 -0
- package/dist/commands/prompt.js.map +1 -0
- package/dist/commands/sign.d.ts +10 -0
- package/dist/commands/sign.d.ts.map +1 -0
- package/dist/commands/sign.js +67 -0
- package/dist/commands/sign.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +45 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/submit.d.ts +20 -0
- package/dist/commands/submit.d.ts.map +1 -0
- package/dist/commands/submit.js +124 -0
- package/dist/commands/submit.js.map +1 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +75 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +113 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +94 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +18 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +66 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/output.d.ts +32 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +82 -0
- package/dist/lib/output.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { getJobStatus } from "../lib/api.js";
|
|
2
|
+
import { requireApiKey } from "../lib/config.js";
|
|
3
|
+
import * as output from "../lib/output.js";
|
|
4
|
+
export async function statusCommand(jobId) {
|
|
5
|
+
requireApiKey();
|
|
6
|
+
const spin = output.spinner("Fetching job status...");
|
|
7
|
+
try {
|
|
8
|
+
const status = await getJobStatus(jobId);
|
|
9
|
+
spin.stop();
|
|
10
|
+
output.label("Job", status.jobId);
|
|
11
|
+
output.label("Status", output.formatStatus(status.status));
|
|
12
|
+
output.label("Prompt", `"${status.prompt}"`);
|
|
13
|
+
output.label("Created", status.createdAt);
|
|
14
|
+
if (status.startedAt) {
|
|
15
|
+
output.label("Started", status.startedAt);
|
|
16
|
+
}
|
|
17
|
+
if (status.completedAt) {
|
|
18
|
+
output.label("Completed", status.completedAt);
|
|
19
|
+
}
|
|
20
|
+
if (status.cancelledAt) {
|
|
21
|
+
output.label("Cancelled", status.cancelledAt);
|
|
22
|
+
}
|
|
23
|
+
if (status.processingTime) {
|
|
24
|
+
output.label("Duration", output.formatDuration(status.processingTime));
|
|
25
|
+
}
|
|
26
|
+
if (status.response) {
|
|
27
|
+
console.log();
|
|
28
|
+
console.log(status.response);
|
|
29
|
+
}
|
|
30
|
+
if (status.error) {
|
|
31
|
+
console.log();
|
|
32
|
+
output.error(status.error);
|
|
33
|
+
}
|
|
34
|
+
if (status.transactions && status.transactions.length > 0) {
|
|
35
|
+
console.log();
|
|
36
|
+
output.dim(`${status.transactions.length} transaction(s) attached.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
spin.fail("Failed to fetch job status");
|
|
41
|
+
output.error(err.message);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,aAAa,EAAE,CAAC;IAEhB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface SubmitOptions {
|
|
2
|
+
to: string;
|
|
3
|
+
chainId: string;
|
|
4
|
+
value?: string;
|
|
5
|
+
data?: string;
|
|
6
|
+
gas?: string;
|
|
7
|
+
gasPrice?: string;
|
|
8
|
+
maxFeePerGas?: string;
|
|
9
|
+
maxPriorityFeePerGas?: string;
|
|
10
|
+
nonce?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
noWait?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function submitCommand(opts: SubmitOptions): Promise<void>;
|
|
15
|
+
export declare function submitJsonCommand(json: string, opts: {
|
|
16
|
+
noWait?: boolean;
|
|
17
|
+
description?: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=submit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0BD,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDtE;AAGD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDrH"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { submit } from "../lib/api.js";
|
|
2
|
+
import * as output from "../lib/output.js";
|
|
3
|
+
function displayResult(result) {
|
|
4
|
+
if (!result.success) {
|
|
5
|
+
output.error(result.error || "Submission failed");
|
|
6
|
+
if (result.transactionHash) {
|
|
7
|
+
output.keyValue("Transaction Hash", result.transactionHash);
|
|
8
|
+
}
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
output.success("Transaction submitted");
|
|
12
|
+
console.log();
|
|
13
|
+
output.keyValue("Transaction Hash", result.transactionHash || "");
|
|
14
|
+
output.keyValue("Status", result.status || "unknown");
|
|
15
|
+
output.keyValue("Signer", result.signer);
|
|
16
|
+
output.keyValue("Chain ID", result.chainId.toString());
|
|
17
|
+
if (result.blockNumber) {
|
|
18
|
+
output.keyValue("Block Number", result.blockNumber);
|
|
19
|
+
}
|
|
20
|
+
if (result.gasUsed) {
|
|
21
|
+
output.keyValue("Gas Used", result.gasUsed);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export async function submitCommand(opts) {
|
|
25
|
+
// Validate required fields
|
|
26
|
+
if (!opts.to) {
|
|
27
|
+
output.error("--to is required");
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
if (!opts.chainId) {
|
|
31
|
+
output.error("--chain-id is required");
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
const chainId = parseInt(opts.chainId, 10);
|
|
35
|
+
if (isNaN(chainId)) {
|
|
36
|
+
output.error("--chain-id must be a number");
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
let nonce;
|
|
40
|
+
if (opts.nonce) {
|
|
41
|
+
nonce = parseInt(opts.nonce, 10);
|
|
42
|
+
if (isNaN(nonce)) {
|
|
43
|
+
output.error("--nonce must be a number");
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const request = {
|
|
48
|
+
transaction: {
|
|
49
|
+
to: opts.to,
|
|
50
|
+
chainId,
|
|
51
|
+
value: opts.value,
|
|
52
|
+
data: opts.data,
|
|
53
|
+
gas: opts.gas,
|
|
54
|
+
gasPrice: opts.gasPrice,
|
|
55
|
+
maxFeePerGas: opts.maxFeePerGas,
|
|
56
|
+
maxPriorityFeePerGas: opts.maxPriorityFeePerGas,
|
|
57
|
+
nonce,
|
|
58
|
+
},
|
|
59
|
+
description: opts.description,
|
|
60
|
+
waitForConfirmation: !opts.noWait,
|
|
61
|
+
};
|
|
62
|
+
// Execute submission with spinner
|
|
63
|
+
const spinner = output.spinner(opts.noWait ? "Submitting transaction..." : "Submitting and waiting for confirmation...");
|
|
64
|
+
try {
|
|
65
|
+
const result = await submit(request);
|
|
66
|
+
spinner.stop();
|
|
67
|
+
displayResult(result);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
spinner.stop();
|
|
71
|
+
output.error(err.message);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Alternative: submit from JSON
|
|
76
|
+
export async function submitJsonCommand(json, opts) {
|
|
77
|
+
let transaction;
|
|
78
|
+
try {
|
|
79
|
+
transaction = JSON.parse(json);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
output.error("Invalid JSON. Expected: {to, chainId, value?, data?}");
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
if (!transaction || typeof transaction !== "object" || Array.isArray(transaction)) {
|
|
86
|
+
output.error("Invalid JSON. Expected object: {to, chainId, value?, data?}");
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
// Validate required fields
|
|
90
|
+
if (!transaction.to) {
|
|
91
|
+
output.error("Transaction must have 'to' field");
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
if (transaction.chainId === undefined) {
|
|
95
|
+
output.error("Transaction must have 'chainId' field");
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
if (typeof transaction.chainId !== "number" || isNaN(transaction.chainId)) {
|
|
99
|
+
output.error("Transaction 'chainId' must be a number");
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
if (transaction.nonce !== undefined && (typeof transaction.nonce !== "number" || isNaN(transaction.nonce))) {
|
|
103
|
+
output.error("Transaction 'nonce' must be a number");
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
const request = {
|
|
107
|
+
transaction,
|
|
108
|
+
description: opts.description,
|
|
109
|
+
waitForConfirmation: !opts.noWait,
|
|
110
|
+
};
|
|
111
|
+
// Execute submission with spinner
|
|
112
|
+
const spinner = output.spinner(opts.noWait ? "Submitting transaction..." : "Submitting and waiting for confirmation...");
|
|
113
|
+
try {
|
|
114
|
+
const result = await submit(request);
|
|
115
|
+
spinner.stop();
|
|
116
|
+
displayResult(result);
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
spinner.stop();
|
|
120
|
+
output.error(err.message);
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=submit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2C,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAgB3C,SAAS,aAAa,CAAC,MAAsB;IAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAmB;IACrD,2BAA2B;IAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,WAAW,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,KAAK;SACN;QACD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,mBAAmB,EAAE,CAAC,IAAI,CAAC,MAAM;KAClC,CAAC;IAEF,kCAAkC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,4CAA4C,CACzF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAgD;IACpG,IAAI,WAAW,CAAC;IAChB,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3G,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,WAAW;QACX,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,mBAAmB,EAAE,CAAC,IAAI,CAAC,MAAM;KAClC,CAAC;IAEF,kCAAkC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,4CAA4C,CACzF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAWA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAuFnD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { existsSync } from "fs";
|
|
2
|
+
import { getApiKey, getApiUrl, getConfigPath, isCustomApiUrl, } from "../lib/config.js";
|
|
3
|
+
import { getUserInfo } from "../lib/api.js";
|
|
4
|
+
import * as output from "../lib/output.js";
|
|
5
|
+
export async function whoamiCommand() {
|
|
6
|
+
const apiKey = getApiKey();
|
|
7
|
+
const apiUrl = getApiUrl();
|
|
8
|
+
const configPath = getConfigPath();
|
|
9
|
+
if (!apiKey) {
|
|
10
|
+
output.error("Not authenticated. Run `bankr login` to set up your Bankr API key.");
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
const source = process.env.BANKR_API_KEY ? "env (BANKR_API_KEY)" : configPath;
|
|
14
|
+
output.label("Bankr API Key", output.maskApiKey(apiKey));
|
|
15
|
+
output.label("Bankr API URL", apiUrl);
|
|
16
|
+
if (isCustomApiUrl()) {
|
|
17
|
+
output.warn("Using a non-official Bankr API URL");
|
|
18
|
+
}
|
|
19
|
+
output.label("Source", source);
|
|
20
|
+
if (existsSync(configPath)) {
|
|
21
|
+
output.label("Config", configPath);
|
|
22
|
+
}
|
|
23
|
+
console.log();
|
|
24
|
+
const spin = output.spinner("Checking Bankr API connection...");
|
|
25
|
+
try {
|
|
26
|
+
const res = await fetch(`${apiUrl}/_health`, {
|
|
27
|
+
headers: { "X-API-Key": apiKey },
|
|
28
|
+
});
|
|
29
|
+
if (res.ok) {
|
|
30
|
+
spin.succeed("Bankr API connection OK");
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
spin.fail(`Bankr API returned ${res.status}`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
spin.fail(`Could not reach Bankr API: ${err.message}`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Fetch user profile info
|
|
42
|
+
const profileSpin = output.spinner("Fetching account info...");
|
|
43
|
+
try {
|
|
44
|
+
const info = await getUserInfo();
|
|
45
|
+
profileSpin.succeed("Account info loaded");
|
|
46
|
+
console.log();
|
|
47
|
+
output.label("Wallets", "");
|
|
48
|
+
for (const w of info.wallets) {
|
|
49
|
+
console.log(` ${w.chain.toUpperCase().padEnd(8)} ${w.address}`);
|
|
50
|
+
}
|
|
51
|
+
if (info.socialAccounts.length > 0) {
|
|
52
|
+
console.log();
|
|
53
|
+
output.label("Social Accounts", "");
|
|
54
|
+
for (const s of info.socialAccounts) {
|
|
55
|
+
const displayPlatform = s.platform === "twitter" ? "x (twitter)" : s.platform;
|
|
56
|
+
console.log(` ${displayPlatform.padEnd(12)} ${s.username ?? output.fmt.dim("(no username)")}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
console.log();
|
|
60
|
+
const clubStatus = info.bankrClub.active
|
|
61
|
+
? `Active (${info.bankrClub.subscriptionType ?? "unknown"})`
|
|
62
|
+
: "Inactive";
|
|
63
|
+
output.label("Bankr Club", clubStatus);
|
|
64
|
+
if (info.refCode) {
|
|
65
|
+
output.label("Referral Code", info.refCode);
|
|
66
|
+
}
|
|
67
|
+
const { score, rank } = info.leaderboard;
|
|
68
|
+
const rankStr = rank ? ` (#${rank})` : "";
|
|
69
|
+
output.label("Score", `${score}${rankStr}`);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
profileSpin.fail(`Could not fetch account info: ${err.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { clearConfig, DEFAULT_API_URL, getApiKey, getApiUrl, readConfig, setConfigPath, writeConfig, } from "./lib/config.js";
|
|
2
|
+
export type { BankrConfig } from "./lib/config.js";
|
|
3
|
+
export { cancelJob, getJobStatus, getUserInfo, pollJob, submitPrompt, validateApiKey, } from "./lib/api.js";
|
|
4
|
+
export type { JobStatusResponse, PromptResponse, UserInfoResponse, } from "./lib/api.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
export interface UserInfoResponse {
|
|
2
|
+
success: boolean;
|
|
3
|
+
wallets: {
|
|
4
|
+
chain: string;
|
|
5
|
+
address: string;
|
|
6
|
+
}[];
|
|
7
|
+
socialAccounts: {
|
|
8
|
+
platform: string;
|
|
9
|
+
username?: string;
|
|
10
|
+
}[];
|
|
11
|
+
refCode?: string;
|
|
12
|
+
bankrClub: {
|
|
13
|
+
active: boolean;
|
|
14
|
+
subscriptionType?: string;
|
|
15
|
+
renewOrCancelOn?: number;
|
|
16
|
+
};
|
|
17
|
+
leaderboard: {
|
|
18
|
+
score: number;
|
|
19
|
+
rank?: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface PromptResponse {
|
|
23
|
+
success: boolean;
|
|
24
|
+
jobId: string;
|
|
25
|
+
status: string;
|
|
26
|
+
message: string;
|
|
27
|
+
}
|
|
28
|
+
export interface JobStatusResponse {
|
|
29
|
+
success: boolean;
|
|
30
|
+
jobId: string;
|
|
31
|
+
status: "pending" | "processing" | "completed" | "failed" | "cancelled";
|
|
32
|
+
prompt: string;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
processingTime?: number;
|
|
35
|
+
response?: string;
|
|
36
|
+
error?: string;
|
|
37
|
+
startedAt?: string;
|
|
38
|
+
completedAt?: string;
|
|
39
|
+
cancelledAt?: string;
|
|
40
|
+
transactions?: unknown[];
|
|
41
|
+
richData?: unknown[];
|
|
42
|
+
cancellable?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export declare function submitPrompt(prompt: string): Promise<PromptResponse>;
|
|
45
|
+
export declare function getJobStatus(jobId: string): Promise<JobStatusResponse>;
|
|
46
|
+
export declare function cancelJob(jobId: string): Promise<JobStatusResponse>;
|
|
47
|
+
export declare function validateApiKey(): Promise<boolean>;
|
|
48
|
+
export declare function getUserInfo(): Promise<UserInfoResponse>;
|
|
49
|
+
export declare function pollJob(jobId: string, opts?: {
|
|
50
|
+
interval?: number;
|
|
51
|
+
maxAttempts?: number;
|
|
52
|
+
onStatus?: (status: JobStatusResponse) => void;
|
|
53
|
+
}): Promise<JobStatusResponse>;
|
|
54
|
+
export type SignatureType = "personal_sign" | "eth_signTypedData_v4" | "eth_signTransaction";
|
|
55
|
+
export interface SignRequest {
|
|
56
|
+
signatureType: SignatureType;
|
|
57
|
+
message?: string;
|
|
58
|
+
typedData?: {
|
|
59
|
+
domain: Record<string, unknown>;
|
|
60
|
+
types: Record<string, {
|
|
61
|
+
name: string;
|
|
62
|
+
type: string;
|
|
63
|
+
}[]>;
|
|
64
|
+
primaryType: string;
|
|
65
|
+
message: Record<string, unknown>;
|
|
66
|
+
};
|
|
67
|
+
transaction?: {
|
|
68
|
+
to: string;
|
|
69
|
+
chainId: number;
|
|
70
|
+
value?: string;
|
|
71
|
+
data?: string;
|
|
72
|
+
gas?: string;
|
|
73
|
+
gasPrice?: string;
|
|
74
|
+
maxFeePerGas?: string;
|
|
75
|
+
maxPriorityFeePerGas?: string;
|
|
76
|
+
nonce?: number;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export interface SignResponse {
|
|
80
|
+
success: boolean;
|
|
81
|
+
signature?: string;
|
|
82
|
+
signer: string;
|
|
83
|
+
signatureType: SignatureType;
|
|
84
|
+
error?: string;
|
|
85
|
+
}
|
|
86
|
+
export declare function sign(request: SignRequest): Promise<SignResponse>;
|
|
87
|
+
export interface SubmitRequest {
|
|
88
|
+
transaction: {
|
|
89
|
+
to: string;
|
|
90
|
+
chainId: number;
|
|
91
|
+
value?: string;
|
|
92
|
+
data?: string;
|
|
93
|
+
gas?: string;
|
|
94
|
+
gasPrice?: string;
|
|
95
|
+
maxFeePerGas?: string;
|
|
96
|
+
maxPriorityFeePerGas?: string;
|
|
97
|
+
nonce?: number;
|
|
98
|
+
};
|
|
99
|
+
description?: string;
|
|
100
|
+
waitForConfirmation?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface SubmitResponse {
|
|
103
|
+
success: boolean;
|
|
104
|
+
transactionHash?: string;
|
|
105
|
+
status?: "success" | "reverted" | "pending";
|
|
106
|
+
blockNumber?: string;
|
|
107
|
+
gasUsed?: string;
|
|
108
|
+
signer: string;
|
|
109
|
+
chainId: number;
|
|
110
|
+
error?: string;
|
|
111
|
+
}
|
|
112
|
+
export declare function submit(request: SubmitRequest): Promise<SubmitResponse>;
|
|
113
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { getApiUrl, requireApiKey } from "./config.js";
|
|
2
|
+
const TERMINAL_STATUSES = [
|
|
3
|
+
"completed",
|
|
4
|
+
"failed",
|
|
5
|
+
"cancelled",
|
|
6
|
+
];
|
|
7
|
+
function isTerminalStatus(status) {
|
|
8
|
+
return TERMINAL_STATUSES.includes(status);
|
|
9
|
+
}
|
|
10
|
+
function authHeaders() {
|
|
11
|
+
return {
|
|
12
|
+
"X-API-Key": requireApiKey(),
|
|
13
|
+
"Content-Type": "application/json",
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async function handleResponse(res) {
|
|
17
|
+
if (!res.ok) {
|
|
18
|
+
const body = (await res
|
|
19
|
+
.json()
|
|
20
|
+
.catch(() => ({ message: res.statusText })));
|
|
21
|
+
const msg = body.message || body.error || res.statusText;
|
|
22
|
+
throw new Error(`API error (${res.status}): ${msg}`);
|
|
23
|
+
}
|
|
24
|
+
return res.json();
|
|
25
|
+
}
|
|
26
|
+
export async function submitPrompt(prompt) {
|
|
27
|
+
const res = await fetch(`${getApiUrl()}/agent/prompt`, {
|
|
28
|
+
method: "POST",
|
|
29
|
+
headers: authHeaders(),
|
|
30
|
+
body: JSON.stringify({ prompt }),
|
|
31
|
+
});
|
|
32
|
+
return handleResponse(res);
|
|
33
|
+
}
|
|
34
|
+
export async function getJobStatus(jobId) {
|
|
35
|
+
const res = await fetch(`${getApiUrl()}/agent/job/${jobId}`, {
|
|
36
|
+
headers: authHeaders(),
|
|
37
|
+
});
|
|
38
|
+
return handleResponse(res);
|
|
39
|
+
}
|
|
40
|
+
export async function cancelJob(jobId) {
|
|
41
|
+
const res = await fetch(`${getApiUrl()}/agent/job/${jobId}/cancel`, {
|
|
42
|
+
method: "POST",
|
|
43
|
+
headers: authHeaders(),
|
|
44
|
+
});
|
|
45
|
+
return handleResponse(res);
|
|
46
|
+
}
|
|
47
|
+
export async function validateApiKey() {
|
|
48
|
+
try {
|
|
49
|
+
const res = await fetch(`${getApiUrl()}/_health`, {
|
|
50
|
+
headers: { "X-API-Key": requireApiKey() },
|
|
51
|
+
});
|
|
52
|
+
return res.ok;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export async function getUserInfo() {
|
|
59
|
+
const res = await fetch(`${getApiUrl()}/agent/me`, {
|
|
60
|
+
headers: authHeaders(),
|
|
61
|
+
});
|
|
62
|
+
return handleResponse(res);
|
|
63
|
+
}
|
|
64
|
+
export async function pollJob(jobId, opts = {}) {
|
|
65
|
+
const { interval = 2000, maxAttempts = 150, onStatus } = opts;
|
|
66
|
+
let attempts = 0;
|
|
67
|
+
while (attempts < maxAttempts) {
|
|
68
|
+
const status = await getJobStatus(jobId);
|
|
69
|
+
onStatus?.(status);
|
|
70
|
+
if (isTerminalStatus(status.status)) {
|
|
71
|
+
return status;
|
|
72
|
+
}
|
|
73
|
+
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
74
|
+
attempts++;
|
|
75
|
+
}
|
|
76
|
+
throw new Error(`Polling timed out after ${maxAttempts} attempts`);
|
|
77
|
+
}
|
|
78
|
+
export async function sign(request) {
|
|
79
|
+
const res = await fetch(`${getApiUrl()}/agent/sign`, {
|
|
80
|
+
method: "POST",
|
|
81
|
+
headers: authHeaders(),
|
|
82
|
+
body: JSON.stringify(request),
|
|
83
|
+
});
|
|
84
|
+
return handleResponse(res);
|
|
85
|
+
}
|
|
86
|
+
export async function submit(request) {
|
|
87
|
+
const res = await fetch(`${getApiUrl()}/agent/submit`, {
|
|
88
|
+
method: "POST",
|
|
89
|
+
headers: authHeaders(),
|
|
90
|
+
body: JSON.stringify(request),
|
|
91
|
+
});
|
|
92
|
+
return handleResponse(res);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA4CvD,MAAM,iBAAiB,GAAqB;IAC1C,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAwB,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;QACL,WAAW,EAAE,aAAa,EAAE;QAC5B,cAAc,EAAE,kBAAkB;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAI,GAAa;IAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG;aACpB,IAAI,EAAE;aACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAA2B,CAAC;QACzE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,OAAO,cAAc,CAAiB,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa;IAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,cAAc,KAAK,EAAE,EAAE;QAC3D,OAAO,EAAE,WAAW,EAAE;KACvB,CAAC,CAAC;IACH,OAAO,cAAc,CAAoB,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa;IAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,cAAc,KAAK,SAAS,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW,EAAE;KACvB,CAAC,CAAC;IACH,OAAO,cAAc,CAAoB,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,UAAU,EAAE;YAChD,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;SAC1C,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,WAAW,EAAE;QACjD,OAAO,EAAE,WAAW,EAAE;KACvB,CAAC,CAAC;IACH,OAAO,cAAc,CAAmB,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,OAII,EAAE;IAEN,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,WAAW,GAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC9D,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;QAEnB,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,WAAW,CAAC,CAAC;AACrE,CAAC;AAuCD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,aAAa,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,cAAc,CAAe,GAAG,CAAC,CAAC;AAC3C,CAAC;AA+BD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB;IACjD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW,EAAE;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,cAAc,CAAiB,GAAG,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface BankrConfig {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
apiUrl?: string;
|
|
4
|
+
llmUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function setConfigPath(path: string): void;
|
|
7
|
+
export declare function getConfigPath(): string;
|
|
8
|
+
export declare const DEFAULT_API_URL = "https://api.bankr.bot";
|
|
9
|
+
export declare const DEFAULT_LLM_URL = "https://llm.bankr.bot";
|
|
10
|
+
export declare function readConfig(): BankrConfig;
|
|
11
|
+
export declare function writeConfig(config: BankrConfig): void;
|
|
12
|
+
export declare function clearConfig(): void;
|
|
13
|
+
export declare function getApiKey(): string | undefined;
|
|
14
|
+
export declare function getApiUrl(): string;
|
|
15
|
+
export declare function getLlmUrl(): string;
|
|
16
|
+
export declare function isCustomApiUrl(): boolean;
|
|
17
|
+
export declare function requireApiKey(): string;
|
|
18
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AASvD,wBAAgB,UAAU,IAAI,WAAW,CAYxC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAMrD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAQtC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync, } from "fs";
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import { dirname, join } from "path";
|
|
4
|
+
let configPathOverride;
|
|
5
|
+
const DEFAULT_CONFIG_FILE = join(homedir(), ".bankr", "config.json");
|
|
6
|
+
export function setConfigPath(path) {
|
|
7
|
+
configPathOverride = path;
|
|
8
|
+
}
|
|
9
|
+
export function getConfigPath() {
|
|
10
|
+
return configPathOverride || process.env.BANKR_CONFIG || DEFAULT_CONFIG_FILE;
|
|
11
|
+
}
|
|
12
|
+
export const DEFAULT_API_URL = "https://api.bankr.bot";
|
|
13
|
+
export const DEFAULT_LLM_URL = "https://llm.bankr.bot";
|
|
14
|
+
function ensureConfigDir() {
|
|
15
|
+
const configDir = dirname(getConfigPath());
|
|
16
|
+
if (!existsSync(configDir)) {
|
|
17
|
+
mkdirSync(configDir, { recursive: true, mode: 0o700 });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function readConfig() {
|
|
21
|
+
const configFile = getConfigPath();
|
|
22
|
+
if (!existsSync(configFile)) {
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
const raw = readFileSync(configFile, "utf-8");
|
|
26
|
+
try {
|
|
27
|
+
return JSON.parse(raw);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
console.warn(`Warning: Could not parse ${configFile}. Using defaults.`);
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function writeConfig(config) {
|
|
35
|
+
ensureConfigDir();
|
|
36
|
+
writeFileSync(getConfigPath(), JSON.stringify(config, null, 2) + "\n", {
|
|
37
|
+
encoding: "utf-8",
|
|
38
|
+
mode: 0o600,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function clearConfig() {
|
|
42
|
+
const configFile = getConfigPath();
|
|
43
|
+
if (existsSync(configFile)) {
|
|
44
|
+
unlinkSync(configFile);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function getApiKey() {
|
|
48
|
+
return process.env.BANKR_API_KEY || readConfig().apiKey;
|
|
49
|
+
}
|
|
50
|
+
export function getApiUrl() {
|
|
51
|
+
return process.env.BANKR_API_URL || readConfig().apiUrl || DEFAULT_API_URL;
|
|
52
|
+
}
|
|
53
|
+
export function getLlmUrl() {
|
|
54
|
+
return process.env.BANKR_LLM_URL || readConfig().llmUrl || DEFAULT_LLM_URL;
|
|
55
|
+
}
|
|
56
|
+
export function isCustomApiUrl() {
|
|
57
|
+
return getApiUrl() !== DEFAULT_API_URL;
|
|
58
|
+
}
|
|
59
|
+
export function requireApiKey() {
|
|
60
|
+
const key = getApiKey();
|
|
61
|
+
if (!key) {
|
|
62
|
+
throw new Error("Not authenticated. Run `bankr login` to set up your Bankr API key.");
|
|
63
|
+
}
|
|
64
|
+
return key;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|