@intent-engine/cli 0.1.26 → 0.1.27
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/assets/viperjs-judge.sha256 +1 -0
- package/assets/viperjs-judge.wasm +0 -0
- package/dist/src/admin-commands.d.ts +2 -1
- package/dist/src/admin-commands.js +47 -2
- package/dist/src/admin-commands.js.map +1 -1
- package/dist/src/agent/create.js +3 -1
- package/dist/src/agent/create.js.map +1 -1
- package/dist/src/agent/mandate-agent.js +3 -1
- package/dist/src/agent/mandate-agent.js.map +1 -1
- package/dist/src/agent/mcp.js +2 -0
- package/dist/src/agent/mcp.js.map +1 -1
- package/dist/src/agent/problems.d.ts +15 -0
- package/dist/src/agent/problems.js +15 -0
- package/dist/src/agent/problems.js.map +1 -1
- package/dist/src/agent/registry.js +2 -0
- package/dist/src/agent/registry.js.map +1 -1
- package/dist/src/agent/reputation.d.ts +4 -0
- package/dist/src/agent/reputation.js +127 -0
- package/dist/src/agent/reputation.js.map +1 -0
- package/dist/src/agent/sales.d.ts +1 -1
- package/dist/src/agent/sales.js +4 -4
- package/dist/src/agent/sales.js.map +1 -1
- package/dist/src/agent/signed-prepare.js +2 -5
- package/dist/src/agent/signed-prepare.js.map +1 -1
- package/dist/src/agent/signed-relay.d.ts +1 -1
- package/dist/src/agent/signed-relay.js +2 -1
- package/dist/src/agent/signed-relay.js.map +1 -1
- package/dist/src/agent/signed-submit.js +2 -2
- package/dist/src/agent/signed-submit.js.map +1 -1
- package/dist/src/agent/wallet/committee.d.ts +4 -0
- package/dist/src/agent/wallet/committee.js +155 -0
- package/dist/src/agent/wallet/committee.js.map +1 -0
- package/dist/src/agent/wallet/releases.js +12 -3
- package/dist/src/agent/wallet/releases.js.map +1 -1
- package/dist/src/agent/wallet.d.ts +1 -0
- package/dist/src/agent/wallet.js +6 -0
- package/dist/src/agent/wallet.js.map +1 -1
- package/dist/src/arg-options.d.ts +74 -2
- package/dist/src/arg-options.js +53 -2
- package/dist/src/arg-options.js.map +1 -1
- package/dist/src/arg-usage.d.ts +2 -2
- package/dist/src/arg-usage.js +10 -3
- package/dist/src/arg-usage.js.map +1 -1
- package/dist/src/arg-values.d.ts +1 -1
- package/dist/src/arg-values.js +10 -6
- package/dist/src/arg-values.js.map +1 -1
- package/dist/src/args.js +48 -3
- package/dist/src/args.js.map +1 -1
- package/dist/src/artifact.d.ts +7 -1
- package/dist/src/artifact.js +23 -9
- package/dist/src/artifact.js.map +1 -1
- package/dist/src/check-process.d.ts +7 -0
- package/dist/src/check-process.js +78 -0
- package/dist/src/check-process.js.map +1 -1
- package/dist/src/command-types.d.ts +59 -1
- package/dist/src/commands.js +17 -1
- package/dist/src/commands.js.map +1 -1
- package/dist/src/committee-commands.d.ts +31 -0
- package/dist/src/committee-commands.js +167 -0
- package/dist/src/committee-commands.js.map +1 -0
- package/dist/src/host-judge.d.ts +11 -0
- package/dist/src/host-judge.js +120 -0
- package/dist/src/host-judge.js.map +1 -0
- package/dist/src/judge.d.ts +15 -1
- package/dist/src/judge.js +75 -19
- package/dist/src/judge.js.map +1 -1
- package/dist/src/main.d.ts +1 -0
- package/dist/src/main.js +11 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/monitor-args.d.ts +11 -0
- package/dist/src/monitor-args.js +58 -0
- package/dist/src/monitor-args.js.map +1 -0
- package/dist/src/monitor-fills.d.ts +13 -0
- package/dist/src/monitor-fills.js +56 -0
- package/dist/src/monitor-fills.js.map +1 -0
- package/dist/src/monitor.d.ts +60 -0
- package/dist/src/monitor.js +295 -0
- package/dist/src/monitor.js.map +1 -0
- package/dist/src/reputation-commands.d.ts +8 -0
- package/dist/src/reputation-commands.js +20 -0
- package/dist/src/reputation-commands.js.map +1 -0
- package/dist/src/sandbox.d.ts +46 -0
- package/dist/src/sandbox.js +142 -0
- package/dist/src/sandbox.js.map +1 -0
- package/dist/src/solve-commands.js +12 -8
- package/dist/src/solve-commands.js.map +1 -1
- package/dist/src/trust-args.d.ts +6 -0
- package/dist/src/trust-args.js +76 -0
- package/dist/src/trust-args.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/viper.d.ts +66 -0
- package/dist/src/viper.js +282 -0
- package/dist/src/viper.js.map +1 -0
- package/package.json +9 -7
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Values } from "./arg-options.js";
|
|
2
|
+
export declare const SANDBOX_IMAGE = "node:22-bookworm-slim@sha256:c3de60bf2f9dd0ac6370e6117950ff62d6e339527e7472301c9c78a017978392";
|
|
3
|
+
export declare const SANDBOX_MEMORY = "1g";
|
|
4
|
+
export declare const SANDBOX_CPUS = "1";
|
|
5
|
+
export declare const SANDBOX_PIDS = 256;
|
|
6
|
+
export declare const SANDBOX_TMP = "256m";
|
|
7
|
+
export declare const SANDBOX_USER = "65534:65534";
|
|
8
|
+
export declare const SANDBOX_ROOT = "/judge";
|
|
9
|
+
export declare const SANDBOX_HOME = "/tmp";
|
|
10
|
+
export declare const SANDBOX_KINDS: readonly ["docker", "viper", "none"];
|
|
11
|
+
export type SandboxKind = (typeof SANDBOX_KINDS)[number];
|
|
12
|
+
export type Sandbox = {
|
|
13
|
+
kind: "none";
|
|
14
|
+
} | {
|
|
15
|
+
kind: "viper";
|
|
16
|
+
} | {
|
|
17
|
+
kind: "docker";
|
|
18
|
+
image: string;
|
|
19
|
+
memory: string;
|
|
20
|
+
cpus: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const SANDBOX_NEEDED = "--sandbox must be docker, viper or none";
|
|
23
|
+
export declare const VIPER_TAKES_NO_RUN = "--sandbox viper judges the cases in the spec's judge-cases block, so it takes no --run and no --check";
|
|
24
|
+
export declare const IMAGE_NEEDS_DIGEST = "--sandbox-image must name an image by its digest, as <name>@sha256:<64 hex>; a reference without a digest is refused";
|
|
25
|
+
export declare const MEMORY_FORMAT = "--sandbox-memory must be a whole number of megabytes or gigabytes, such as 512m or 2g";
|
|
26
|
+
export declare const CPUS_FORMAT = "--sandbox-cpus must be a number of CPUs above 0, such as 1 or 1.5";
|
|
27
|
+
export declare const DOCKER_ENV: readonly ["DOCKER_HOST", "DOCKER_CONTEXT", "DOCKER_CONFIG", "DOCKER_CERT_PATH", "DOCKER_TLS_VERIFY", "XDG_RUNTIME_DIR"];
|
|
28
|
+
export declare const sandboxOnly: (option: string) => string;
|
|
29
|
+
export declare function sandboxOf(values: Values): Sandbox;
|
|
30
|
+
export declare function dockerEnv(base: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
31
|
+
export declare const dockerMissing: (reason: string) => string;
|
|
32
|
+
export declare const imageMissing: (image: string, reason: string) => string;
|
|
33
|
+
export declare const NO_SANDBOX = "warning: --sandbox none ran the check with your own rights: it could read your files and keys and use your network";
|
|
34
|
+
export declare function sandboxReady(sandbox: Sandbox, env: NodeJS.ProcessEnv): Promise<void>;
|
|
35
|
+
export declare const containerName: () => string;
|
|
36
|
+
export type Mounted = {
|
|
37
|
+
root: string;
|
|
38
|
+
path: string;
|
|
39
|
+
spec: string;
|
|
40
|
+
check: string | undefined;
|
|
41
|
+
};
|
|
42
|
+
export declare const insideOf: (root: string, host: string) => string;
|
|
43
|
+
export declare function containerArgs(sandbox: Extract<Sandbox, {
|
|
44
|
+
kind: "docker";
|
|
45
|
+
}>, copy: Mounted, sha256: string, run: string): string[];
|
|
46
|
+
export declare function shareable(path: string): Promise<void>;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { chmod, readdir, stat } from "node:fs/promises";
|
|
3
|
+
import { join, posix, relative, sep } from "node:path";
|
|
4
|
+
import { UsageError } from "./arg-values.js";
|
|
5
|
+
import { CHECK_ENV, docker, ENV_ARTIFACT_PATH, ENV_ARTIFACT_SHA256, ENV_SPEC_PATH } from "./check-process.js";
|
|
6
|
+
import { JudgeRefused } from "./judge-errors.js";
|
|
7
|
+
export const SANDBOX_IMAGE = "node:22-bookworm-slim@sha256:c3de60bf2f9dd0ac6370e6117950ff62d6e339527e7472301c9c78a017978392";
|
|
8
|
+
export const SANDBOX_MEMORY = "1g";
|
|
9
|
+
export const SANDBOX_CPUS = "1";
|
|
10
|
+
export const SANDBOX_PIDS = 256;
|
|
11
|
+
export const SANDBOX_TMP = "256m";
|
|
12
|
+
export const SANDBOX_USER = "65534:65534";
|
|
13
|
+
export const SANDBOX_ROOT = "/judge";
|
|
14
|
+
export const SANDBOX_HOME = "/tmp";
|
|
15
|
+
export const SANDBOX_KINDS = ["docker", "viper", "none"];
|
|
16
|
+
export const SANDBOX_NEEDED = "--sandbox must be docker, viper or none";
|
|
17
|
+
export const VIPER_TAKES_NO_RUN = "--sandbox viper judges the cases in the spec's judge-cases block, so it takes no --run and no --check";
|
|
18
|
+
export const IMAGE_NEEDS_DIGEST = "--sandbox-image must name an image by its digest, as <name>@sha256:<64 hex>; a reference without a digest is refused";
|
|
19
|
+
export const MEMORY_FORMAT = "--sandbox-memory must be a whole number of megabytes or gigabytes, such as 512m or 2g";
|
|
20
|
+
export const CPUS_FORMAT = "--sandbox-cpus must be a number of CPUs above 0, such as 1 or 1.5";
|
|
21
|
+
export const DOCKER_ENV = ["DOCKER_HOST", "DOCKER_CONTEXT", "DOCKER_CONFIG", "DOCKER_CERT_PATH", "DOCKER_TLS_VERIFY", "XDG_RUNTIME_DIR"];
|
|
22
|
+
const DIGESTED = /^[a-z0-9][a-z0-9._/:-]*@sha256:[0-9a-f]{64}$/;
|
|
23
|
+
const MEMORY = /^[1-9]\d{0,5}[mg]$/;
|
|
24
|
+
const CPUS = /^\d{1,3}(\.\d{1,2})?$/;
|
|
25
|
+
const SANDBOX_ONLY = ["sandbox-image", "sandbox-memory", "sandbox-cpus"];
|
|
26
|
+
const READABLE = 0o444;
|
|
27
|
+
const SEARCHABLE = 0o755;
|
|
28
|
+
export const sandboxOnly = (option) => `--${option} applies only with --sandbox docker`;
|
|
29
|
+
export function sandboxOf(values) {
|
|
30
|
+
const kind = values.sandbox ?? "docker";
|
|
31
|
+
if (!SANDBOX_KINDS.includes(kind)) {
|
|
32
|
+
throw new UsageError(SANDBOX_NEEDED);
|
|
33
|
+
}
|
|
34
|
+
if (kind === "none" || kind === "viper") {
|
|
35
|
+
const given = SANDBOX_ONLY.find((option) => values[option] !== undefined);
|
|
36
|
+
if (given !== undefined) {
|
|
37
|
+
throw new UsageError(sandboxOnly(given));
|
|
38
|
+
}
|
|
39
|
+
if (kind === "viper" && (values.run !== undefined || values.check !== undefined)) {
|
|
40
|
+
throw new UsageError(VIPER_TAKES_NO_RUN);
|
|
41
|
+
}
|
|
42
|
+
return { kind };
|
|
43
|
+
}
|
|
44
|
+
const image = values["sandbox-image"] ?? SANDBOX_IMAGE;
|
|
45
|
+
if (!DIGESTED.test(image)) {
|
|
46
|
+
throw new UsageError(IMAGE_NEEDS_DIGEST);
|
|
47
|
+
}
|
|
48
|
+
const memory = values["sandbox-memory"] ?? SANDBOX_MEMORY;
|
|
49
|
+
if (!MEMORY.test(memory)) {
|
|
50
|
+
throw new UsageError(MEMORY_FORMAT);
|
|
51
|
+
}
|
|
52
|
+
const cpus = values["sandbox-cpus"] ?? SANDBOX_CPUS;
|
|
53
|
+
if (!CPUS.test(cpus) || Number(cpus) <= 0) {
|
|
54
|
+
throw new UsageError(CPUS_FORMAT);
|
|
55
|
+
}
|
|
56
|
+
return { kind: "docker", image, memory, cpus };
|
|
57
|
+
}
|
|
58
|
+
export function dockerEnv(base) {
|
|
59
|
+
const env = {};
|
|
60
|
+
for (const key of [...CHECK_ENV, ...DOCKER_ENV]) {
|
|
61
|
+
const value = base[key];
|
|
62
|
+
if (value !== undefined) {
|
|
63
|
+
env[key] = value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return env;
|
|
67
|
+
}
|
|
68
|
+
const DOCKER_INSTALL = ["https:", "", "docs.docker.com", "engine", "install", ""].join("/");
|
|
69
|
+
export const dockerMissing = (reason) => `docker is not available (${reason || "no answer"}), so the check cannot run in its sandbox and nothing was run or paid; install Docker from ${DOCKER_INSTALL} and start it, or pass --sandbox none to run the check with your own rights, files, keys and network`;
|
|
70
|
+
export const imageMissing = (image, reason) => `docker could not pull ${image} (${reason || "no answer"}); nothing was run or paid`;
|
|
71
|
+
export const NO_SANDBOX = "warning: --sandbox none ran the check with your own rights: it could read your files and keys and use your network";
|
|
72
|
+
export async function sandboxReady(sandbox, env) {
|
|
73
|
+
if (sandbox.kind !== "docker") {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const server = await docker(["version", "--format", "{{.Server.Version}}"], env);
|
|
77
|
+
if (server.status !== 0) {
|
|
78
|
+
throw new JudgeRefused(dockerMissing(server.out));
|
|
79
|
+
}
|
|
80
|
+
if ((await docker(["image", "inspect", "--format", "{{.Id}}", sandbox.image], env)).status === 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const pulled = await docker(["pull", sandbox.image], env, true);
|
|
84
|
+
if (pulled.status !== 0) {
|
|
85
|
+
throw new JudgeRefused(imageMissing(sandbox.image, pulled.out));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export const containerName = () => `judge-${randomBytes(8).toString("hex")}`;
|
|
89
|
+
export const insideOf = (root, host) => posix.join(SANDBOX_ROOT, ...relative(root, host).split(sep));
|
|
90
|
+
export function containerArgs(sandbox, copy, sha256, run) {
|
|
91
|
+
const shared = ["work", "spec", ...(copy.check === undefined ? [] : ["check"])];
|
|
92
|
+
return [
|
|
93
|
+
"--network",
|
|
94
|
+
"none",
|
|
95
|
+
"--read-only",
|
|
96
|
+
"--cap-drop",
|
|
97
|
+
"ALL",
|
|
98
|
+
"--security-opt",
|
|
99
|
+
"no-new-privileges",
|
|
100
|
+
"--user",
|
|
101
|
+
SANDBOX_USER,
|
|
102
|
+
"--pids-limit",
|
|
103
|
+
String(SANDBOX_PIDS),
|
|
104
|
+
"--memory",
|
|
105
|
+
sandbox.memory,
|
|
106
|
+
"--memory-swap",
|
|
107
|
+
sandbox.memory,
|
|
108
|
+
"--cpus",
|
|
109
|
+
sandbox.cpus,
|
|
110
|
+
"--tmpfs",
|
|
111
|
+
`/tmp:rw,exec,nosuid,nodev,size=${SANDBOX_TMP}`,
|
|
112
|
+
...shared.flatMap((dir) => ["--mount", `type=bind,source=${join(copy.root, dir)},target=${posix.join(SANDBOX_ROOT, dir)},readonly`]),
|
|
113
|
+
"--workdir",
|
|
114
|
+
SANDBOX_ROOT,
|
|
115
|
+
"--env",
|
|
116
|
+
`HOME=${SANDBOX_HOME}`,
|
|
117
|
+
"--env",
|
|
118
|
+
`${ENV_SPEC_PATH}=${insideOf(copy.root, copy.spec)}`,
|
|
119
|
+
"--env",
|
|
120
|
+
`${ENV_ARTIFACT_PATH}=${insideOf(copy.root, copy.path)}`,
|
|
121
|
+
"--env",
|
|
122
|
+
`${ENV_ARTIFACT_SHA256}=${sha256}`,
|
|
123
|
+
"--entrypoint",
|
|
124
|
+
"/bin/sh",
|
|
125
|
+
sandbox.image,
|
|
126
|
+
"-c",
|
|
127
|
+
run,
|
|
128
|
+
];
|
|
129
|
+
}
|
|
130
|
+
export async function shareable(path) {
|
|
131
|
+
for (const entry of await readdir(path, { withFileTypes: true })) {
|
|
132
|
+
const full = join(path, entry.name);
|
|
133
|
+
if (entry.isDirectory()) {
|
|
134
|
+
await chmod(full, SEARCHABLE);
|
|
135
|
+
await shareable(full);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
await chmod(full, ((await stat(full)).mode & 0o777) | READABLE);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getIntentDecoder, IntentStatus } from "@intent-engine/core";
|
|
2
|
-
import { decodeLookupTable, issuePricer, backoff, jitoBundles, jupiterPricer, remembering, tick, tipAccount, } from "@intent-engine/solver";
|
|
2
|
+
import { decodeLookupTable, landings, issuePricer, backoff, jitoBundles, jupiterPricer, remembering, tick, tipAccount, } from "@intent-engine/solver";
|
|
3
3
|
import { chainTime, createdAccount, loadConfig, tokenAmountOf, tokenProgramOf, } from "@intent-engine/client";
|
|
4
4
|
import { priceOf, withPriority } from "./compute.js";
|
|
5
5
|
const SOLVER_ROUTE_ACCOUNTS = 40;
|
|
@@ -43,6 +43,7 @@ export async function watchSolve(command, interval, runtime, emit) {
|
|
|
43
43
|
backoff: held,
|
|
44
44
|
send: command.jito === undefined ? async (wire) => ({ signature: await transport.submitWire(wire), confirmed: false }) : options.send,
|
|
45
45
|
};
|
|
46
|
+
const failedOnChain = async (signature) => command.jito === undefined && (await transport.transactionOf?.(signature))?.failed === true;
|
|
46
47
|
const changes = runtime.intentChanges(command.url);
|
|
47
48
|
const inFlight = new Map();
|
|
48
49
|
const failing = new Map();
|
|
@@ -64,18 +65,21 @@ export async function watchSolve(command, interval, runtime, emit) {
|
|
|
64
65
|
emit({ at: now, scan: "changed", unreadable: decoded.unreadable });
|
|
65
66
|
}
|
|
66
67
|
const listed = decoded.intents;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
const lost = await landings(inFlight, now, listed, failedOnChain, held);
|
|
69
|
+
if (full) {
|
|
70
|
+
for (const [intent, flight] of inFlight) {
|
|
71
|
+
if (flight.until <= now) {
|
|
72
|
+
inFlight.delete(intent);
|
|
73
|
+
}
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
const due = listed.filter(({ address }) => !inFlight.has(address));
|
|
73
77
|
const { filled, sent, failed } = await tick({ ...live, chain: { ...chain, intents: async () => due } });
|
|
74
|
-
for (const { intent } of sent) {
|
|
75
|
-
inFlight.set(intent, now + IN_FLIGHT_SECONDS);
|
|
78
|
+
for (const { intent, signature } of sent) {
|
|
79
|
+
inFlight.set(intent, { until: now + IN_FLIGHT_SECONDS, signature });
|
|
76
80
|
}
|
|
77
|
-
if (filled.length + sent.length + failed.length > 0) {
|
|
78
|
-
emit({ at: now, scan: full ? "full" : "changed", ms: Math.round(performance.now() - began), filled, sent, failed });
|
|
81
|
+
if (filled.length + sent.length + failed.length + lost.length > 0) {
|
|
82
|
+
emit({ at: now, scan: full ? "full" : "changed", ms: Math.round(performance.now() - began), filled, sent, failed: [...lost, ...failed] });
|
|
79
83
|
acted += filled.length + sent.length;
|
|
80
84
|
}
|
|
81
85
|
for (const [intent, at] of failing) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solve-commands.js","sourceRoot":"","sources":["../../src/solve-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,
|
|
1
|
+
{"version":3,"file":"solve-commands.js","sourceRoot":"","sources":["../../src/solve-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Values } from "./arg-options.js";
|
|
2
|
+
import type { Command, Remote } from "./command-types.js";
|
|
3
|
+
export declare const COMMITTEE_SUBS = "committee needs create, show, vote or release";
|
|
4
|
+
export declare function committeeOf(sub: string | undefined, remote: Remote, values: Values): Command;
|
|
5
|
+
export declare function reputationOf(sub: string | undefined, remote: Remote, values: Values): Command;
|
|
6
|
+
export declare function feedbackOf(sub: string | undefined, remote: Remote, values: Values): Command;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { MAX_COMMITTEE_MEMBERS, MAX_FEEDBACK_SCORE } from "@intent-engine/core";
|
|
2
|
+
import { addressList, key, noSub, parseBounded, required, sha256Of, u64, UsageError } from "./arg-values.js";
|
|
3
|
+
import { maxPagesOf } from "./command-builders.js";
|
|
4
|
+
export const COMMITTEE_SUBS = "committee needs create, show, vote or release";
|
|
5
|
+
function votesOf(values) {
|
|
6
|
+
const votes = values.vote ?? [];
|
|
7
|
+
if (votes.length === 0) {
|
|
8
|
+
throw new UsageError("committee release needs at least one --vote <file>");
|
|
9
|
+
}
|
|
10
|
+
return votes;
|
|
11
|
+
}
|
|
12
|
+
function membersOf(values) {
|
|
13
|
+
const members = addressList(required(values, "members"), "members");
|
|
14
|
+
if (members.length > MAX_COMMITTEE_MEMBERS) {
|
|
15
|
+
throw new UsageError(`--members takes at most ${MAX_COMMITTEE_MEMBERS} addresses`);
|
|
16
|
+
}
|
|
17
|
+
return members;
|
|
18
|
+
}
|
|
19
|
+
export function committeeOf(sub, remote, values) {
|
|
20
|
+
switch (sub) {
|
|
21
|
+
case "create": {
|
|
22
|
+
const members = membersOf(values);
|
|
23
|
+
return {
|
|
24
|
+
name: "committee-create",
|
|
25
|
+
...remote,
|
|
26
|
+
keypair: required(values, "keypair"),
|
|
27
|
+
yes: values.yes === true,
|
|
28
|
+
members,
|
|
29
|
+
threshold: parseBounded(required(values, "threshold"), "threshold", members.length, 1),
|
|
30
|
+
feeWallet: key(values, "fee-wallet"),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
case "show":
|
|
34
|
+
return { name: "committee-show", ...remote, committee: key(values, "committee") };
|
|
35
|
+
case "vote":
|
|
36
|
+
return {
|
|
37
|
+
name: "committee-vote",
|
|
38
|
+
...remote,
|
|
39
|
+
keypair: required(values, "keypair"),
|
|
40
|
+
yes: values.yes === true,
|
|
41
|
+
owner: key(values, "owner"),
|
|
42
|
+
nonce: u64(values, "nonce"),
|
|
43
|
+
payTo: key(values, "pay-to"),
|
|
44
|
+
result: u64(values, "result"),
|
|
45
|
+
out: values.out,
|
|
46
|
+
};
|
|
47
|
+
case "release":
|
|
48
|
+
return {
|
|
49
|
+
name: "committee-release",
|
|
50
|
+
...remote,
|
|
51
|
+
keypair: required(values, "keypair"),
|
|
52
|
+
yes: values.yes === true,
|
|
53
|
+
votes: votesOf(values),
|
|
54
|
+
sha256: values.sha256 === undefined ? undefined : sha256Of(values.sha256),
|
|
55
|
+
};
|
|
56
|
+
default:
|
|
57
|
+
throw new UsageError(COMMITTEE_SUBS);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function reputationOf(sub, remote, values) {
|
|
61
|
+
noSub(sub);
|
|
62
|
+
return { name: "reputation", ...remote, worker: key(values, "worker"), maxPages: maxPagesOf(values) };
|
|
63
|
+
}
|
|
64
|
+
export function feedbackOf(sub, remote, values) {
|
|
65
|
+
noSub(sub);
|
|
66
|
+
return {
|
|
67
|
+
name: "feedback",
|
|
68
|
+
...remote,
|
|
69
|
+
keypair: required(values, "keypair"),
|
|
70
|
+
yes: values.yes === true,
|
|
71
|
+
intent: key(values, "intent"),
|
|
72
|
+
score: parseBounded(required(values, "score"), "score", MAX_FEEDBACK_SCORE),
|
|
73
|
+
note: values.note === undefined ? undefined : sha256Of(values.note, "--note must be the note's sha256 as 64 hex digits"),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=trust-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-args.js","sourceRoot":"","sources":["../../src/trust-args.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.27";
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.1.
|
|
1
|
+
export const VERSION = "0.1.27";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export declare const VIPER_WASM_SHA256 = "c039ca2a8d2eb26701ccd704e4b0d26bef9cefa13a90a951d51d776867de7c7d";
|
|
2
|
+
export declare const VIPER_ENGINE_COMMIT = "d2bccdb8f77f78bddf07fad22ec76bfedbfbbf0f";
|
|
3
|
+
export declare const CASES_FENCE = "judge-cases";
|
|
4
|
+
export declare const DEFAULT_STEPS = 10000000;
|
|
5
|
+
export declare const DEFAULT_HEAP: number;
|
|
6
|
+
export declare const MAX_STEPS = 1000000000;
|
|
7
|
+
export declare const MAX_HEAP: number;
|
|
8
|
+
export declare const MAX_CASES = 10000;
|
|
9
|
+
export declare const MAX_ARGUMENTS = 64;
|
|
10
|
+
export declare const OUTPUT_BYTES: number;
|
|
11
|
+
export declare const DIAGNOSTIC_BYTES: number;
|
|
12
|
+
export declare const REPORTED_FAILURES = 20;
|
|
13
|
+
export declare const CLOCK_FROM: number;
|
|
14
|
+
export declare const CLOCK_TO: number;
|
|
15
|
+
export declare const SEED_LIMIT: number;
|
|
16
|
+
export type Primitive = null | boolean | number | string;
|
|
17
|
+
export type Case = {
|
|
18
|
+
args: Primitive[];
|
|
19
|
+
expected: Primitive;
|
|
20
|
+
};
|
|
21
|
+
export type Cases = {
|
|
22
|
+
steps: number;
|
|
23
|
+
heap: number;
|
|
24
|
+
seed: number | undefined;
|
|
25
|
+
clock: number | undefined;
|
|
26
|
+
cases: Case[];
|
|
27
|
+
};
|
|
28
|
+
export type Run = {
|
|
29
|
+
seed: number;
|
|
30
|
+
clock: number;
|
|
31
|
+
};
|
|
32
|
+
export type CaseVerdict = "pass" | "wrong" | "not-primitive" | "threw" | "stopped" | "no-module" | "engine" | "crashed";
|
|
33
|
+
export type CaseResult = {
|
|
34
|
+
verdict: CaseVerdict;
|
|
35
|
+
detail?: Primitive;
|
|
36
|
+
};
|
|
37
|
+
export type Failure = {
|
|
38
|
+
case: number;
|
|
39
|
+
verdict: CaseVerdict;
|
|
40
|
+
detail?: Primitive;
|
|
41
|
+
};
|
|
42
|
+
export type Judged = {
|
|
43
|
+
total: number;
|
|
44
|
+
passed: number;
|
|
45
|
+
failures: Failure[];
|
|
46
|
+
seed: number;
|
|
47
|
+
clock: number;
|
|
48
|
+
};
|
|
49
|
+
export declare const casesMissing: (count: number) => string;
|
|
50
|
+
export declare function casesOf(spec: Uint8Array): Cases;
|
|
51
|
+
export declare const runOf: (cases: Cases) => Run;
|
|
52
|
+
export declare function encodeInput(source: string, cases: Cases, run: Run): Buffer;
|
|
53
|
+
export declare function decodeOutput(bytes: Buffer, expected: number): CaseResult[];
|
|
54
|
+
export declare function summarize(results: CaseResult[], run: Run): Judged;
|
|
55
|
+
export declare function wasmPath(): string;
|
|
56
|
+
export declare function pinnedWasm(path?: string): Promise<Buffer>;
|
|
57
|
+
export declare const RUNNER = "\nconst chunks = [];\nfor await (const chunk of process.stdin) chunks.push(chunk);\nconst all = Buffer.concat(chunks);\nconst length = all.readUInt32LE(0);\nconst module = await WebAssembly.compile(all.subarray(4, 4 + length));\nif (WebAssembly.Module.imports(module).length !== 0) process.exit(3);\nconst { exports } = await WebAssembly.instantiate(module, {});\nconst input = all.subarray(4 + length);\nconst at = exports.input(input.length);\nnew Uint8Array(exports.memory.buffer, at, input.length).set(input);\nconst produced = exports.run();\nprocess.stdout.write(Buffer.from(new Uint8Array(exports.memory.buffer, exports.output(), produced)));\n";
|
|
58
|
+
export declare const permissionFlag: () => string;
|
|
59
|
+
export type Ran = {
|
|
60
|
+
output: Buffer;
|
|
61
|
+
exitCode: number | null;
|
|
62
|
+
timedOut: boolean;
|
|
63
|
+
diagnostic: string;
|
|
64
|
+
};
|
|
65
|
+
export declare function runViper(wasm: Buffer, input: Buffer, timeoutSeconds: number): Promise<Ran>;
|
|
66
|
+
export declare function judgeViper(wasm: Buffer, source: Uint8Array, cases: Cases, timeoutSeconds: number): Promise<Judged>;
|