@aura-protocol/cli 0.1.2 → 0.3.0
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 +84 -67
- package/bin/aura.js +0 -0
- package/dist/commands/confidential.d.ts +1 -1
- package/dist/commands/confidential.js +276 -597
- package/dist/commands/confidential.js.map +1 -1
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.js +26 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +1 -1
- package/dist/commands/dashboard.js +6 -7
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/dwallet.d.ts +1 -1
- package/dist/commands/dwallet.js +52 -41
- package/dist/commands/dwallet.js.map +1 -1
- package/dist/commands/execution.d.ts +1 -1
- package/dist/commands/execution.js +111 -175
- package/dist/commands/execution.js.map +1 -1
- package/dist/commands/features.d.ts +1 -1
- package/dist/commands/features.js +15 -10
- package/dist/commands/features.js.map +1 -1
- package/dist/commands/generated.d.ts +20 -0
- package/dist/commands/generated.js +61 -0
- package/dist/commands/generated.js.map +1 -0
- package/dist/commands/governance.d.ts +1 -1
- package/dist/commands/governance.js +113 -99
- package/dist/commands/governance.js.map +1 -1
- package/dist/commands/helpers.d.ts +5 -2
- package/dist/commands/helpers.js +79 -16
- package/dist/commands/helpers.js.map +1 -1
- package/dist/commands/instruction-exec.d.ts +27 -0
- package/dist/commands/instruction-exec.js +171 -0
- package/dist/commands/instruction-exec.js.map +1 -0
- package/dist/commands/instruction.d.ts +9 -0
- package/dist/commands/instruction.js +81 -0
- package/dist/commands/instruction.js.map +1 -0
- package/dist/commands/pda.d.ts +1 -1
- package/dist/commands/pda.js +15 -7
- package/dist/commands/pda.js.map +1 -1
- package/dist/commands/treasury.d.ts +1 -1
- package/dist/commands/treasury.js +201 -186
- package/dist/commands/treasury.js.map +1 -1
- package/dist/core/config.d.ts +35 -0
- package/dist/core/config.js +97 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/context.d.ts +51 -0
- package/dist/core/context.js +60 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/errors.d.ts +38 -0
- package/dist/core/errors.js +138 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/network.d.ts +18 -0
- package/dist/core/network.js +38 -0
- package/dist/core/network.js.map +1 -0
- package/dist/core/runner.d.ts +45 -0
- package/dist/core/runner.js +219 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/security.d.ts +28 -0
- package/dist/core/security.js +83 -0
- package/dist/core/security.js.map +1 -0
- package/dist/core/wallet.d.ts +2 -0
- package/dist/core/wallet.js +21 -0
- package/dist/core/wallet.js.map +1 -0
- package/dist/ika.d.ts +0 -9
- package/dist/ika.js +0 -48
- package/dist/ika.js.map +1 -1
- package/dist/index.js +56 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/domain.d.ts +16 -0
- package/dist/lib/domain.js +88 -0
- package/dist/lib/domain.js.map +1 -0
- package/dist/lib/ika.d.ts +81 -0
- package/dist/lib/ika.js +192 -0
- package/dist/lib/ika.js.map +1 -0
- package/dist/lib/instructions.d.ts +79 -0
- package/dist/lib/instructions.js +421 -0
- package/dist/lib/instructions.js.map +1 -0
- package/dist/lib/protocol.d.ts +99 -0
- package/dist/lib/protocol.js +327 -0
- package/dist/lib/protocol.js.map +1 -0
- package/dist/lib/treasury-view.d.ts +11 -0
- package/dist/lib/treasury-view.js +126 -0
- package/dist/lib/treasury-view.js.map +1 -0
- package/dist/output.js +0 -3
- package/dist/output.js.map +1 -1
- package/dist/program-instructions.d.ts +1 -1
- package/dist/protocol.d.ts +0 -1
- package/dist/protocol.js +0 -7
- package/dist/protocol.js.map +1 -1
- package/dist/treasury-view.js +1 -1
- package/dist/treasury-view.js.map +1 -1
- package/dist/ui/dashboard.d.ts +7 -0
- package/dist/ui/dashboard.js +99 -0
- package/dist/ui/dashboard.js.map +1 -0
- package/dist/ui/format.d.ts +9 -0
- package/dist/ui/format.js +92 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/output.d.ts +58 -0
- package/dist/ui/output.js +208 -0
- package/dist/ui/output.js.map +1 -0
- package/dist/ui/theme.d.ts +52 -0
- package/dist/ui/theme.js +110 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.d.ts +1 -1
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.js +36 -13
- package/dist/vendor/encrypt/generated/grpc/encrypt_service.js.map +1 -1
- package/dist/vendor/encrypt/grpc.d.ts +2 -2
- package/dist/vendor/encrypt/grpc.js +1 -3
- package/dist/vendor/encrypt/grpc.js.map +1 -1
- package/dist/vendor/ika/bcs-types.js +107 -50
- package/dist/vendor/ika/bcs-types.js.map +1 -1
- package/dist/vendor/ika/generated/grpc/ika_dwallet.d.ts +1 -1
- package/dist/vendor/ika/generated/grpc/ika_dwallet.js +14 -4
- package/dist/vendor/ika/generated/grpc/ika_dwallet.js.map +1 -1
- package/dist/vendor/ika/grpc.d.ts +1 -1
- package/dist/vendor/ika/grpc.js +49 -24
- package/dist/vendor/ika/grpc.js.map +1 -1
- package/package.json +16 -13
- package/dist/ascii.d.ts +0 -1
- package/dist/ascii.js +0 -2
- package/dist/ascii.js.map +0 -1
package/dist/treasury-view.js
CHANGED
|
@@ -20,7 +20,7 @@ function renderConfidential(account) {
|
|
|
20
20
|
return undefined;
|
|
21
21
|
}
|
|
22
22
|
const table = createTable(["Confidential", "Value"]);
|
|
23
|
-
table.push(["Daily limit ct", formatPubkey(guardrails.dailyLimitCiphertext)], ["Per-tx limit ct", formatPubkey(guardrails.perTxLimitCiphertext)], ["Spent today ct", formatPubkey(guardrails.spentTodayCiphertext)]
|
|
23
|
+
table.push(["Daily limit ct", formatPubkey(guardrails.dailyLimitCiphertext)], ["Per-tx limit ct", formatPubkey(guardrails.perTxLimitCiphertext)], ["Spent today ct", formatPubkey(guardrails.spentTodayCiphertext)]);
|
|
24
24
|
return table.toString();
|
|
25
25
|
}
|
|
26
26
|
function renderDwallets(account) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treasury-view.js","sourceRoot":"","sources":["../src/treasury-view.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"treasury-view.js","sourceRoot":"","sources":["../src/treasury-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { accounts } from "@aura-protocol/sdk-ts";
|
|
3
|
+
import { PublicKey } from "@solana/web3.js";
|
|
4
|
+
import { Box, render, Text, useApp, useInput } from "ink";
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
import { getActivePendingProposal, getMessageApprovalState, parseCiphertextVerified, parseDecryptionReady, } from "../lib/protocol.js";
|
|
7
|
+
import { renderTreasurySections } from "../lib/treasury-view.js";
|
|
8
|
+
import { formatTimestamp } from "./format.js";
|
|
9
|
+
import { createTable } from "./output.js";
|
|
10
|
+
async function buildLivePanel(ctx, account) {
|
|
11
|
+
const pending = getActivePendingProposal(account);
|
|
12
|
+
if (!pending) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const table = createTable(["Live", "Value"]);
|
|
16
|
+
if (pending.policyOutputCiphertextAccount) {
|
|
17
|
+
const info = await ctx.connection.getAccountInfo(new PublicKey(pending.policyOutputCiphertextAccount), "confirmed");
|
|
18
|
+
table.push([
|
|
19
|
+
"Policy output verified",
|
|
20
|
+
parseCiphertextVerified(info) ? "Yes" : "No",
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
if (pending.decryptionRequest?.requestAccount) {
|
|
24
|
+
const info = await ctx.connection.getAccountInfo(new PublicKey(pending.decryptionRequest.requestAccount), "confirmed");
|
|
25
|
+
table.push(["Decryption ready", parseDecryptionReady(info) ? "Yes" : "No"]);
|
|
26
|
+
}
|
|
27
|
+
if (pending.signatureRequest?.messageApprovalAccount) {
|
|
28
|
+
const state = await getMessageApprovalState(ctx.connection, new PublicKey(pending.signatureRequest.messageApprovalAccount));
|
|
29
|
+
table.push(["Message approval", state]);
|
|
30
|
+
}
|
|
31
|
+
return table.length > 0 ? table.toString() : undefined;
|
|
32
|
+
}
|
|
33
|
+
async function readSnapshot(ctx, treasury) {
|
|
34
|
+
const account = await accounts.fetchTreasuryAccount(ctx.client, treasury);
|
|
35
|
+
return {
|
|
36
|
+
treasury,
|
|
37
|
+
account,
|
|
38
|
+
livePanel: await buildLivePanel(ctx, account),
|
|
39
|
+
refreshedAt: new Date(),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function Section(props) {
|
|
43
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, marginBottom: 1, children: [_jsx(Text, { color: "cyanBright", children: props.title }), _jsx(Text, { children: props.body })] }));
|
|
44
|
+
}
|
|
45
|
+
function DashboardApp(props) {
|
|
46
|
+
const { exit } = useApp();
|
|
47
|
+
const [snapshot, setSnapshot] = useState(null);
|
|
48
|
+
const [error, setError] = useState(null);
|
|
49
|
+
const [_refreshCount, setRefreshCount] = useState(0);
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
let active = true;
|
|
52
|
+
let timer;
|
|
53
|
+
const refresh = async () => {
|
|
54
|
+
try {
|
|
55
|
+
const next = await readSnapshot(props.ctx, props.treasury);
|
|
56
|
+
if (!active) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
setSnapshot(next);
|
|
60
|
+
setError(null);
|
|
61
|
+
}
|
|
62
|
+
catch (nextError) {
|
|
63
|
+
if (!active) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
setError(nextError instanceof Error ? nextError.message : String(nextError));
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
void refresh();
|
|
70
|
+
timer = setInterval(() => {
|
|
71
|
+
void refresh();
|
|
72
|
+
}, props.intervalMs);
|
|
73
|
+
return () => {
|
|
74
|
+
active = false;
|
|
75
|
+
if (timer) {
|
|
76
|
+
clearInterval(timer);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}, [props.ctx, props.intervalMs, props.treasury]);
|
|
80
|
+
useInput((input, key) => {
|
|
81
|
+
if (input === "q" || key.escape || (key.ctrl && input === "c")) {
|
|
82
|
+
exit();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (input === "r") {
|
|
86
|
+
setRefreshCount((value) => value + 1);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
if (!snapshot) {
|
|
90
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyanBright", children: "AURA Dashboard" }), _jsx(Text, { children: error ? `Loading failed: ${error}` : "Loading treasury state..." })] }));
|
|
91
|
+
}
|
|
92
|
+
const sections = renderTreasurySections(snapshot.treasury, snapshot.account);
|
|
93
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { color: "cyanBright", children: "AURA Dashboard" }), _jsxs(Text, { children: [snapshot.account.agentId, " | ", snapshot.treasury.toBase58(), " | refreshed", " ", formatTimestamp(Math.floor(snapshot.refreshedAt.getTime() / 1000))] }), _jsx(Text, { color: "gray", children: "Press r to refresh, q or Esc to quit." })] }), error ? (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "red", children: ["Last refresh failed: ", error] }) })) : null, _jsx(Section, { title: "Overview", body: sections.overview }), _jsx(Section, { title: "Policy", body: sections.policy }), sections.confidential ? (_jsx(Section, { title: "Confidential", body: sections.confidential })) : null, sections.pending ? (_jsx(Section, { title: "Pending", body: sections.pending })) : null, snapshot.livePanel ? (_jsx(Section, { title: "Live", body: snapshot.livePanel })) : null, sections.dwallets ? (_jsx(Section, { title: "dWallets", body: sections.dwallets })) : null, sections.governance ? (_jsx(Section, { title: "Governance", body: sections.governance })) : null] }));
|
|
94
|
+
}
|
|
95
|
+
export async function runDashboard(options) {
|
|
96
|
+
const app = render(_jsx(DashboardApp, { ctx: options.ctx, treasury: options.treasury, intervalMs: options.intervalMs }), { exitOnCtrlC: true });
|
|
97
|
+
await app.waitUntilExit();
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/ui/dashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
export declare function formatUsd(value: unknown): string;
|
|
3
|
+
export declare function formatPercentBps(value: unknown): string;
|
|
4
|
+
export declare function formatPubkey(value: PublicKey | string | null | undefined, options?: {
|
|
5
|
+
shorten?: boolean;
|
|
6
|
+
}): string;
|
|
7
|
+
export declare function formatTimestamp(value: unknown): string;
|
|
8
|
+
export declare function formatRelativeSeconds(targetSeconds: unknown): string;
|
|
9
|
+
export declare function formatNullable(value: unknown): string;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import BN from "bn.js";
|
|
3
|
+
const usdFormatter = new Intl.NumberFormat("en-US", {
|
|
4
|
+
style: "currency",
|
|
5
|
+
currency: "USD",
|
|
6
|
+
minimumFractionDigits: 2,
|
|
7
|
+
maximumFractionDigits: 2,
|
|
8
|
+
});
|
|
9
|
+
function asBigInt(value) {
|
|
10
|
+
if (value === null || value === undefined) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
if (typeof value === "bigint") {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === "number") {
|
|
17
|
+
return BigInt(Math.trunc(value));
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
20
|
+
return BigInt(value);
|
|
21
|
+
}
|
|
22
|
+
if (BN.isBN(value)) {
|
|
23
|
+
return BigInt(value.toString());
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
export function formatUsd(value) {
|
|
28
|
+
const normalized = asBigInt(value);
|
|
29
|
+
if (normalized === null) {
|
|
30
|
+
return "—";
|
|
31
|
+
}
|
|
32
|
+
return usdFormatter.format(Number(normalized));
|
|
33
|
+
}
|
|
34
|
+
export function formatPercentBps(value) {
|
|
35
|
+
const normalized = asBigInt(value);
|
|
36
|
+
if (normalized === null) {
|
|
37
|
+
return "—";
|
|
38
|
+
}
|
|
39
|
+
return `${(Number(normalized) / 100).toFixed(2)}%`;
|
|
40
|
+
}
|
|
41
|
+
export function formatPubkey(value, options = {}) {
|
|
42
|
+
if (!value) {
|
|
43
|
+
return "—";
|
|
44
|
+
}
|
|
45
|
+
const base58 = value instanceof PublicKey ? value.toBase58() : value;
|
|
46
|
+
if (options.shorten === false || base58.length <= 12) {
|
|
47
|
+
return base58;
|
|
48
|
+
}
|
|
49
|
+
return `${base58.slice(0, 4)}…${base58.slice(-4)}`;
|
|
50
|
+
}
|
|
51
|
+
export function formatTimestamp(value) {
|
|
52
|
+
const normalized = asBigInt(value);
|
|
53
|
+
if (normalized === null) {
|
|
54
|
+
return "—";
|
|
55
|
+
}
|
|
56
|
+
const millis = Number(normalized) * 1000;
|
|
57
|
+
return new Date(millis).toLocaleString("en-US", {
|
|
58
|
+
year: "numeric",
|
|
59
|
+
month: "short",
|
|
60
|
+
day: "2-digit",
|
|
61
|
+
hour: "2-digit",
|
|
62
|
+
minute: "2-digit",
|
|
63
|
+
second: "2-digit",
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export function formatRelativeSeconds(targetSeconds) {
|
|
67
|
+
const normalized = asBigInt(targetSeconds);
|
|
68
|
+
if (normalized === null) {
|
|
69
|
+
return "—";
|
|
70
|
+
}
|
|
71
|
+
const diff = Number(normalized) - Math.floor(Date.now() / 1000);
|
|
72
|
+
const abs = Math.abs(diff);
|
|
73
|
+
const hours = Math.floor(abs / 3600);
|
|
74
|
+
const minutes = Math.floor((abs % 3600) / 60);
|
|
75
|
+
const seconds = abs % 60;
|
|
76
|
+
const parts = [
|
|
77
|
+
hours > 0 ? `${hours}h` : null,
|
|
78
|
+
minutes > 0 ? `${minutes}m` : null,
|
|
79
|
+
`${seconds}s`,
|
|
80
|
+
].filter(Boolean);
|
|
81
|
+
return diff >= 0 ? `in ${parts.join(" ")}` : `${parts.join(" ")} ago`;
|
|
82
|
+
}
|
|
83
|
+
export function formatNullable(value) {
|
|
84
|
+
if (value === null || value === undefined || value === "") {
|
|
85
|
+
return "—";
|
|
86
|
+
}
|
|
87
|
+
if (typeof value === "boolean") {
|
|
88
|
+
return value ? "Yes" : "No";
|
|
89
|
+
}
|
|
90
|
+
return String(value);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal output primitives: JSON emission, banners, color-block headers,
|
|
3
|
+
* panels/boxes, key-value rendering, tables, spinners, and status lines.
|
|
4
|
+
*
|
|
5
|
+
* Every command renders through this module (and {@link ./theme}) so the CLI
|
|
6
|
+
* has a single, consistent voice. Respects `--json` and `--quiet`.
|
|
7
|
+
*/
|
|
8
|
+
import { type TransactionInstruction } from "@solana/web3.js";
|
|
9
|
+
import { type BlockKind } from "./theme.js";
|
|
10
|
+
export interface OutputOptions {
|
|
11
|
+
json: boolean;
|
|
12
|
+
quiet: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface SpinnerHandle {
|
|
15
|
+
setText(text: string): void;
|
|
16
|
+
succeed(message?: string): void;
|
|
17
|
+
fail(message?: string): void;
|
|
18
|
+
stop(): void;
|
|
19
|
+
}
|
|
20
|
+
export declare const ACTIVE_DEVELOPMENT_WARNING = "AURA is under active development. Program instructions, account layouts, policy semantics, SDK APIs, and deployment behavior may change before a stable audited release.";
|
|
21
|
+
/** Recursively converts SDK/web3 values (PublicKey, BN, Buffer) into JSON-safe data. */
|
|
22
|
+
export declare function serializeForJson(value: unknown): unknown;
|
|
23
|
+
/** Prints a value as pretty JSON unless `--quiet` is set. */
|
|
24
|
+
export declare function emitJson(output: OutputOptions, value: unknown): void;
|
|
25
|
+
/** Prints the top-level `AURA :: <title>` banner with an optional subtitle. */
|
|
26
|
+
export declare function printBanner(output: OutputOptions, title: string, subtitle?: string): void;
|
|
27
|
+
/** Prints a labeled section header chip, e.g. a magenta ` POLICY ` tag. */
|
|
28
|
+
export declare function printSection(output: OutputOptions, label: string, kind?: BlockKind): void;
|
|
29
|
+
/** Prints a thin divider rule. */
|
|
30
|
+
export declare function divider(output: OutputOptions, width?: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Renders a bordered panel to a string. Useful for transaction previews and
|
|
33
|
+
* security warnings where the content should visually stand apart.
|
|
34
|
+
*/
|
|
35
|
+
export declare function renderPanel(title: string, lines: string[], kind?: BlockKind): string;
|
|
36
|
+
/** Prints a bordered panel unless `--json`/`--quiet`. */
|
|
37
|
+
export declare function printPanel(output: OutputOptions, title: string, lines: string[], kind?: BlockKind): void;
|
|
38
|
+
/** Formats `[label, value]` rows into aligned `label value` lines. */
|
|
39
|
+
export declare function keyValueLines(rows: [string, string][]): string[];
|
|
40
|
+
export declare function createTable(head: string[]): any;
|
|
41
|
+
export declare function printTable(output: OutputOptions, table: {
|
|
42
|
+
toString(): string;
|
|
43
|
+
}): void;
|
|
44
|
+
export declare function printSuccess(output: OutputOptions, message: string): void;
|
|
45
|
+
export declare function printInfo(output: OutputOptions, message: string): void;
|
|
46
|
+
export declare function printWarn(output: OutputOptions, message: string): void;
|
|
47
|
+
export declare function printDanger(output: OutputOptions, message: string): void;
|
|
48
|
+
export declare function printNote(output: OutputOptions, message: string): void;
|
|
49
|
+
export declare function startSpinner(output: OutputOptions, text: string): SpinnerHandle;
|
|
50
|
+
export declare function serializeInstruction(instruction: TransactionInstruction): {
|
|
51
|
+
programId: string;
|
|
52
|
+
accounts: {
|
|
53
|
+
pubkey: string;
|
|
54
|
+
isSigner: boolean;
|
|
55
|
+
isWritable: boolean;
|
|
56
|
+
}[];
|
|
57
|
+
dataBase64: string;
|
|
58
|
+
};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal output primitives: JSON emission, banners, color-block headers,
|
|
3
|
+
* panels/boxes, key-value rendering, tables, spinners, and status lines.
|
|
4
|
+
*
|
|
5
|
+
* Every command renders through this module (and {@link ./theme}) so the CLI
|
|
6
|
+
* has a single, consistent voice. Respects `--json` and `--quiet`.
|
|
7
|
+
*/
|
|
8
|
+
import { PublicKey } from "@solana/web3.js";
|
|
9
|
+
import BN from "bn.js";
|
|
10
|
+
import Table from "cli-table3";
|
|
11
|
+
import ora from "ora";
|
|
12
|
+
import { block, style, symbol } from "./theme.js";
|
|
13
|
+
export const ACTIVE_DEVELOPMENT_WARNING = "AURA is under active development. Program instructions, account layouts, policy semantics, SDK APIs, and deployment behavior may change before a stable audited release.";
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// JSON serialization
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
/** Recursively converts SDK/web3 values (PublicKey, BN, Buffer) into JSON-safe data. */
|
|
18
|
+
export function serializeForJson(value) {
|
|
19
|
+
if (value instanceof PublicKey) {
|
|
20
|
+
return value.toBase58();
|
|
21
|
+
}
|
|
22
|
+
if (value &&
|
|
23
|
+
typeof value === "object" &&
|
|
24
|
+
"toBase58" in value &&
|
|
25
|
+
typeof value.toBase58 === "function") {
|
|
26
|
+
return value.toBase58();
|
|
27
|
+
}
|
|
28
|
+
if (BN.isBN(value)) {
|
|
29
|
+
return value.toString();
|
|
30
|
+
}
|
|
31
|
+
if (Buffer.isBuffer(value)) {
|
|
32
|
+
return value.toString("base64");
|
|
33
|
+
}
|
|
34
|
+
if (Array.isArray(value)) {
|
|
35
|
+
return value.map((item) => serializeForJson(item));
|
|
36
|
+
}
|
|
37
|
+
if (value && typeof value === "object") {
|
|
38
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
|
|
39
|
+
key,
|
|
40
|
+
serializeForJson(entry),
|
|
41
|
+
]));
|
|
42
|
+
}
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
/** Prints a value as pretty JSON unless `--quiet` is set. */
|
|
46
|
+
export function emitJson(output, value) {
|
|
47
|
+
if (!output.quiet) {
|
|
48
|
+
console.log(JSON.stringify(serializeForJson(value), null, 2));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Headers and structure
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
/** Prints the top-level `AURA :: <title>` banner with an optional subtitle. */
|
|
55
|
+
export function printBanner(output, title, subtitle) {
|
|
56
|
+
if (output.quiet || output.json) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const head = `${block("AURA", "primary")} ${style.bold(title)}`;
|
|
60
|
+
console.log(subtitle ? `${head} ${style.muted(subtitle)}` : head);
|
|
61
|
+
}
|
|
62
|
+
/** Prints a labeled section header chip, e.g. a magenta ` POLICY ` tag. */
|
|
63
|
+
export function printSection(output, label, kind = "accent") {
|
|
64
|
+
if (output.quiet || output.json) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
console.log(`\n${block(label, kind)}`);
|
|
68
|
+
}
|
|
69
|
+
/** Prints a thin divider rule. */
|
|
70
|
+
export function divider(output, width = 56) {
|
|
71
|
+
if (output.quiet || output.json) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
console.log(style.muted("─".repeat(width)));
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Panels / boxes
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
const BORDER = {
|
|
80
|
+
primary: style.primary,
|
|
81
|
+
accent: style.accent,
|
|
82
|
+
success: style.success,
|
|
83
|
+
warn: style.warn,
|
|
84
|
+
danger: style.danger,
|
|
85
|
+
info: style.info,
|
|
86
|
+
muted: style.muted,
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Renders a bordered panel to a string. Useful for transaction previews and
|
|
90
|
+
* security warnings where the content should visually stand apart.
|
|
91
|
+
*/
|
|
92
|
+
export function renderPanel(title, lines, kind = "primary") {
|
|
93
|
+
const paint = BORDER[kind];
|
|
94
|
+
const visibleWidth = (text) =>
|
|
95
|
+
// Strip ANSI escapes when measuring width for alignment.
|
|
96
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: stripping ANSI
|
|
97
|
+
text.replace(/\u001b\[[0-9;]*m/g, "").length;
|
|
98
|
+
const titleWidth = visibleWidth(title);
|
|
99
|
+
const contentWidth = Math.max(titleWidth, ...lines.map((line) => visibleWidth(line)), 24);
|
|
100
|
+
const top = paint(`╭─ ${style.bold(title)} ${"─".repeat(Math.max(0, contentWidth - titleWidth))}╮`);
|
|
101
|
+
const bottom = paint(`╰${"─".repeat(contentWidth + 3)}╯`);
|
|
102
|
+
const body = lines.map((line) => {
|
|
103
|
+
const pad = " ".repeat(Math.max(0, contentWidth - visibleWidth(line)));
|
|
104
|
+
return `${paint("│")} ${line}${pad} ${paint("│")}`;
|
|
105
|
+
});
|
|
106
|
+
return [top, ...body, bottom].join("\n");
|
|
107
|
+
}
|
|
108
|
+
/** Prints a bordered panel unless `--json`/`--quiet`. */
|
|
109
|
+
export function printPanel(output, title, lines, kind = "primary") {
|
|
110
|
+
if (output.quiet || output.json) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log(renderPanel(title, lines, kind));
|
|
114
|
+
}
|
|
115
|
+
/** Formats `[label, value]` rows into aligned `label value` lines. */
|
|
116
|
+
export function keyValueLines(rows) {
|
|
117
|
+
const labelWidth = Math.max(0, ...rows.map(([label]) => label.length));
|
|
118
|
+
return rows.map(([label, value]) => `${style.muted(label.padEnd(labelWidth))} ${value}`);
|
|
119
|
+
}
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
// Tables
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// cli-table3 has loose typings; the factory returns its Table instance.
|
|
124
|
+
// biome-ignore lint/suspicious/noExplicitAny: cli-table3 Table type
|
|
125
|
+
export function createTable(head) {
|
|
126
|
+
return new Table({
|
|
127
|
+
head,
|
|
128
|
+
style: { head: ["cyan"], border: ["gray"], compact: false },
|
|
129
|
+
wordWrap: true,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
export function printTable(output, table) {
|
|
133
|
+
if (output.quiet || output.json) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
console.log(table.toString());
|
|
137
|
+
}
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
// Status lines
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
export function printSuccess(output, message) {
|
|
142
|
+
if (output.quiet || output.json)
|
|
143
|
+
return;
|
|
144
|
+
console.log(`${style.success(symbol.success)} ${message}`);
|
|
145
|
+
}
|
|
146
|
+
export function printInfo(output, message) {
|
|
147
|
+
if (output.quiet || output.json)
|
|
148
|
+
return;
|
|
149
|
+
console.log(message);
|
|
150
|
+
}
|
|
151
|
+
export function printWarn(output, message) {
|
|
152
|
+
if (output.quiet || output.json)
|
|
153
|
+
return;
|
|
154
|
+
console.log(`${style.warn(symbol.warn)} ${style.warn(message)}`);
|
|
155
|
+
}
|
|
156
|
+
export function printDanger(output, message) {
|
|
157
|
+
if (output.quiet || output.json)
|
|
158
|
+
return;
|
|
159
|
+
console.log(`${style.danger(symbol.error)} ${style.danger(message)}`);
|
|
160
|
+
}
|
|
161
|
+
export function printNote(output, message) {
|
|
162
|
+
if (output.quiet || output.json)
|
|
163
|
+
return;
|
|
164
|
+
console.log(`${style.info(symbol.info)} ${style.muted(message)}`);
|
|
165
|
+
}
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
// Spinner
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
export function startSpinner(output, text) {
|
|
170
|
+
if (output.quiet || output.json || !process.stdout.isTTY) {
|
|
171
|
+
return {
|
|
172
|
+
setText() { },
|
|
173
|
+
succeed() { },
|
|
174
|
+
fail() { },
|
|
175
|
+
stop() { },
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
const spinner = ora({ text, color: "cyan" }).start();
|
|
179
|
+
return {
|
|
180
|
+
setText(nextText) {
|
|
181
|
+
spinner.text = nextText;
|
|
182
|
+
},
|
|
183
|
+
succeed(message) {
|
|
184
|
+
spinner.succeed(message);
|
|
185
|
+
},
|
|
186
|
+
fail(message) {
|
|
187
|
+
spinner.fail(message);
|
|
188
|
+
},
|
|
189
|
+
stop() {
|
|
190
|
+
spinner.stop();
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
// Instruction serialization (dry-run / JSON output)
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
export function serializeInstruction(instruction) {
|
|
198
|
+
return {
|
|
199
|
+
programId: instruction.programId.toBase58(),
|
|
200
|
+
accounts: instruction.keys.map((key) => ({
|
|
201
|
+
pubkey: key.pubkey.toBase58(),
|
|
202
|
+
isSigner: key.isSigner,
|
|
203
|
+
isWritable: key.isWritable,
|
|
204
|
+
})),
|
|
205
|
+
dataBase64: Buffer.from(instruction.data).toString("base64"),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/ui/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal theme: semantic colors, symbols, and color "blocks" (chips).
|
|
3
|
+
*
|
|
4
|
+
* The whole CLI renders through this module so the look stays consistent and
|
|
5
|
+
* color can be disabled in one place. Color is suppressed automatically when:
|
|
6
|
+
* - `NO_COLOR` is set (https://no-color.org/),
|
|
7
|
+
* - the `--no-color` flag is passed (wired in via {@link setColorEnabled}),
|
|
8
|
+
* - stdout is not a TTY (piped/redirected),
|
|
9
|
+
* unless `FORCE_COLOR` is set.
|
|
10
|
+
*/
|
|
11
|
+
/** Enables or disables ANSI color globally for the process. */
|
|
12
|
+
export declare function setColorEnabled(enabled: boolean): void;
|
|
13
|
+
/** Whether color output is currently enabled. */
|
|
14
|
+
export declare function isColorEnabled(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Semantic color styles. Always call through these rather than reaching for
|
|
17
|
+
* chalk directly so the `--no-color` / `NO_COLOR` toggle is always honored.
|
|
18
|
+
*/
|
|
19
|
+
export declare const style: {
|
|
20
|
+
readonly primary: (text: string) => string;
|
|
21
|
+
readonly accent: (text: string) => string;
|
|
22
|
+
readonly success: (text: string) => string;
|
|
23
|
+
readonly warn: (text: string) => string;
|
|
24
|
+
readonly danger: (text: string) => string;
|
|
25
|
+
readonly info: (text: string) => string;
|
|
26
|
+
readonly muted: (text: string) => string;
|
|
27
|
+
readonly bold: (text: string) => string;
|
|
28
|
+
readonly dim: (text: string) => string;
|
|
29
|
+
readonly underline: (text: string) => string;
|
|
30
|
+
readonly code: (text: string) => string;
|
|
31
|
+
};
|
|
32
|
+
/** Unicode glyphs used across the UI. */
|
|
33
|
+
export declare const symbol: {
|
|
34
|
+
readonly success: "✓";
|
|
35
|
+
readonly error: "✗";
|
|
36
|
+
readonly warn: "⚠";
|
|
37
|
+
readonly info: "ℹ";
|
|
38
|
+
readonly arrow: "→";
|
|
39
|
+
readonly bullet: "•";
|
|
40
|
+
readonly dot: "·";
|
|
41
|
+
readonly pointer: "❯";
|
|
42
|
+
readonly ellipsis: "…";
|
|
43
|
+
};
|
|
44
|
+
export type BlockKind = "primary" | "accent" | "success" | "warn" | "danger" | "info" | "muted";
|
|
45
|
+
/**
|
|
46
|
+
* Renders a filled "color block" / chip — an inverse-color label with one space
|
|
47
|
+
* of padding on each side, e.g. a teal ` AURA ` tag. Used for banners, section
|
|
48
|
+
* headers, and severity tags. Falls back to `[LABEL]` when color is disabled.
|
|
49
|
+
*/
|
|
50
|
+
export declare function block(label: string, kind?: BlockKind): string;
|
|
51
|
+
/** Maps a free-form label to a block kind for instruction maturity tags. */
|
|
52
|
+
export declare function maturityKind(maturity: string): BlockKind;
|