@intent-engine/cli 0.1.23 → 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.
Files changed (210) hide show
  1. package/assets/viperjs-judge.sha256 +1 -0
  2. package/assets/viperjs-judge.wasm +0 -0
  3. package/dist/src/admin-commands.d.ts +13 -0
  4. package/dist/src/admin-commands.js +185 -0
  5. package/dist/src/admin-commands.js.map +1 -0
  6. package/dist/src/agent/actions.d.ts +2 -0
  7. package/dist/src/agent/actions.js +1 -1
  8. package/dist/src/agent/actions.js.map +1 -1
  9. package/dist/src/agent/claims.js +13 -12
  10. package/dist/src/agent/claims.js.map +1 -1
  11. package/dist/src/agent/create.d.ts +1 -0
  12. package/dist/src/agent/create.js +9 -3
  13. package/dist/src/agent/create.js.map +1 -1
  14. package/dist/src/agent/mandate-agent.d.ts +2 -0
  15. package/dist/src/agent/mandate-agent.js +138 -0
  16. package/dist/src/agent/mandate-agent.js.map +1 -0
  17. package/dist/src/agent/mandate-grant.d.ts +2 -0
  18. package/dist/src/agent/mandate-grant.js +192 -0
  19. package/dist/src/agent/mandate-grant.js.map +1 -0
  20. package/dist/src/agent/mandate-revoke.d.ts +1 -0
  21. package/dist/src/agent/mandate-revoke.js +142 -0
  22. package/dist/src/agent/mandate-revoke.js.map +1 -0
  23. package/dist/src/agent/mandate-state.d.ts +33 -0
  24. package/dist/src/agent/mandate-state.js +85 -0
  25. package/dist/src/agent/mandate-state.js.map +1 -0
  26. package/dist/src/agent/mandate.d.ts +4 -26
  27. package/dist/src/agent/mandate.js +4 -479
  28. package/dist/src/agent/mandate.js.map +1 -1
  29. package/dist/src/agent/mcp.js +9 -3
  30. package/dist/src/agent/mcp.js.map +1 -1
  31. package/dist/src/agent/prepare.js +1 -1
  32. package/dist/src/agent/prepare.js.map +1 -1
  33. package/dist/src/agent/problems.d.ts +28 -1
  34. package/dist/src/agent/problems.js +47 -1
  35. package/dist/src/agent/problems.js.map +1 -1
  36. package/dist/src/agent/read.d.ts +12 -0
  37. package/dist/src/agent/read.js +20 -6
  38. package/dist/src/agent/read.js.map +1 -1
  39. package/dist/src/agent/registry.js +8 -1
  40. package/dist/src/agent/registry.js.map +1 -1
  41. package/dist/src/agent/relay.d.ts +2 -0
  42. package/dist/src/agent/relay.js +11 -3
  43. package/dist/src/agent/relay.js.map +1 -1
  44. package/dist/src/agent/reputation.d.ts +4 -0
  45. package/dist/src/agent/reputation.js +127 -0
  46. package/dist/src/agent/reputation.js.map +1 -0
  47. package/dist/src/agent/sales.d.ts +29 -0
  48. package/dist/src/agent/sales.js +248 -0
  49. package/dist/src/agent/sales.js.map +1 -0
  50. package/dist/src/agent/signed-prepare.d.ts +1 -0
  51. package/dist/src/agent/signed-prepare.js +138 -0
  52. package/dist/src/agent/signed-prepare.js.map +1 -0
  53. package/dist/src/agent/signed-relay.d.ts +25 -0
  54. package/dist/src/agent/signed-relay.js +69 -0
  55. package/dist/src/agent/signed-relay.js.map +1 -0
  56. package/dist/src/agent/signed-submit.d.ts +2 -0
  57. package/dist/src/agent/signed-submit.js +137 -0
  58. package/dist/src/agent/signed-submit.js.map +1 -0
  59. package/dist/src/agent/signed-terms.d.ts +85 -0
  60. package/dist/src/agent/signed-terms.js +84 -0
  61. package/dist/src/agent/signed-terms.js.map +1 -0
  62. package/dist/src/agent/signed.d.ts +4 -13
  63. package/dist/src/agent/signed.js +4 -361
  64. package/dist/src/agent/signed.js.map +1 -1
  65. package/dist/src/agent/wallet/account.d.ts +4 -0
  66. package/dist/src/agent/wallet/account.js +84 -0
  67. package/dist/src/agent/wallet/account.js.map +1 -0
  68. package/dist/src/agent/wallet/attest.d.ts +4 -0
  69. package/dist/src/agent/wallet/attest.js +178 -0
  70. package/dist/src/agent/wallet/attest.js.map +1 -0
  71. package/dist/src/agent/wallet/committee.d.ts +4 -0
  72. package/dist/src/agent/wallet/committee.js +155 -0
  73. package/dist/src/agent/wallet/committee.js.map +1 -0
  74. package/dist/src/agent/wallet/delivery.d.ts +13 -0
  75. package/dist/src/agent/wallet/delivery.js +171 -0
  76. package/dist/src/agent/wallet/delivery.js.map +1 -0
  77. package/dist/src/agent/wallet/escrow.d.ts +7 -0
  78. package/dist/src/agent/wallet/escrow.js +164 -0
  79. package/dist/src/agent/wallet/escrow.js.map +1 -0
  80. package/dist/src/agent/wallet/fills.d.ts +27 -0
  81. package/dist/src/agent/wallet/fills.js +80 -0
  82. package/dist/src/agent/wallet/fills.js.map +1 -0
  83. package/dist/src/agent/wallet/guard.d.ts +57 -0
  84. package/dist/src/agent/wallet/guard.js +205 -0
  85. package/dist/src/agent/wallet/guard.js.map +1 -0
  86. package/dist/src/agent/wallet/offer.d.ts +50 -0
  87. package/dist/src/agent/wallet/offer.js +80 -0
  88. package/dist/src/agent/wallet/offer.js.map +1 -0
  89. package/dist/src/agent/wallet/receipt.d.ts +42 -0
  90. package/dist/src/agent/wallet/receipt.js +102 -0
  91. package/dist/src/agent/wallet/receipt.js.map +1 -0
  92. package/dist/src/agent/wallet/record.d.ts +31 -0
  93. package/dist/src/agent/wallet/record.js +178 -0
  94. package/dist/src/agent/wallet/record.js.map +1 -0
  95. package/dist/src/agent/wallet/releases.d.ts +40 -0
  96. package/dist/src/agent/wallet/releases.js +245 -0
  97. package/dist/src/agent/wallet/releases.js.map +1 -0
  98. package/dist/src/agent/wallet/split.d.ts +10 -0
  99. package/dist/src/agent/wallet/split.js +271 -0
  100. package/dist/src/agent/wallet/split.js.map +1 -0
  101. package/dist/src/agent/wallet/trade.d.ts +14 -0
  102. package/dist/src/agent/wallet/trade.js +243 -0
  103. package/dist/src/agent/wallet/trade.js.map +1 -0
  104. package/dist/src/agent/wallet/wait.d.ts +5 -0
  105. package/dist/src/agent/wallet/wait.js +99 -0
  106. package/dist/src/agent/wallet/wait.js.map +1 -0
  107. package/dist/src/agent/wallet.d.ts +19 -73
  108. package/dist/src/agent/wallet.js +30 -1322
  109. package/dist/src/agent/wallet.js.map +1 -1
  110. package/dist/src/arg-options.d.ts +405 -0
  111. package/dist/src/arg-options.js +361 -0
  112. package/dist/src/arg-options.js.map +1 -0
  113. package/dist/src/arg-usage.d.ts +7 -0
  114. package/dist/src/arg-usage.js +60 -0
  115. package/dist/src/arg-usage.js.map +1 -0
  116. package/dist/src/arg-values.d.ts +47 -0
  117. package/dist/src/arg-values.js +284 -0
  118. package/dist/src/arg-values.js.map +1 -0
  119. package/dist/src/args.d.ts +7 -545
  120. package/dist/src/args.js +103 -926
  121. package/dist/src/args.js.map +1 -1
  122. package/dist/src/artifact.d.ts +28 -0
  123. package/dist/src/artifact.js +103 -0
  124. package/dist/src/artifact.js.map +1 -0
  125. package/dist/src/check-process.d.ts +46 -0
  126. package/dist/src/check-process.js +416 -0
  127. package/dist/src/check-process.js.map +1 -0
  128. package/dist/src/command-builders.d.ts +37 -0
  129. package/dist/src/command-builders.js +216 -0
  130. package/dist/src/command-builders.js.map +1 -0
  131. package/dist/src/command-types.d.ts +285 -0
  132. package/dist/src/command-types.js +2 -0
  133. package/dist/src/command-types.js.map +1 -0
  134. package/dist/src/commands.d.ts +7 -43
  135. package/dist/src/commands.js +76 -457
  136. package/dist/src/commands.js.map +1 -1
  137. package/dist/src/committee-commands.d.ts +31 -0
  138. package/dist/src/committee-commands.js +167 -0
  139. package/dist/src/committee-commands.js.map +1 -0
  140. package/dist/src/event-feed.d.ts +13 -0
  141. package/dist/src/event-feed.js +46 -0
  142. package/dist/src/event-feed.js.map +1 -0
  143. package/dist/src/flow-commands.d.ts +8 -0
  144. package/dist/src/flow-commands.js +116 -0
  145. package/dist/src/flow-commands.js.map +1 -0
  146. package/dist/src/flows.d.ts +6 -0
  147. package/dist/src/flows.js +84 -10
  148. package/dist/src/flows.js.map +1 -1
  149. package/dist/src/host-judge.d.ts +11 -0
  150. package/dist/src/host-judge.js +120 -0
  151. package/dist/src/host-judge.js.map +1 -0
  152. package/dist/src/job-commands.d.ts +9 -0
  153. package/dist/src/job-commands.js +89 -0
  154. package/dist/src/job-commands.js.map +1 -0
  155. package/dist/src/judge-errors.d.ts +12 -0
  156. package/dist/src/judge-errors.js +16 -0
  157. package/dist/src/judge-errors.js.map +1 -0
  158. package/dist/src/judge.d.ts +25 -16
  159. package/dist/src/judge.js +179 -103
  160. package/dist/src/judge.js.map +1 -1
  161. package/dist/src/main.d.ts +5 -1
  162. package/dist/src/main.js +36 -9
  163. package/dist/src/main.js.map +1 -1
  164. package/dist/src/monitor-args.d.ts +11 -0
  165. package/dist/src/monitor-args.js +58 -0
  166. package/dist/src/monitor-args.js.map +1 -0
  167. package/dist/src/monitor-fills.d.ts +13 -0
  168. package/dist/src/monitor-fills.js +56 -0
  169. package/dist/src/monitor-fills.js.map +1 -0
  170. package/dist/src/monitor.d.ts +60 -0
  171. package/dist/src/monitor.js +295 -0
  172. package/dist/src/monitor.js.map +1 -0
  173. package/dist/src/order-builders.d.ts +10 -0
  174. package/dist/src/order-builders.js +172 -0
  175. package/dist/src/order-builders.js.map +1 -0
  176. package/dist/src/render.d.ts +1 -0
  177. package/dist/src/render.js +9 -0
  178. package/dist/src/render.js.map +1 -1
  179. package/dist/src/reputation-commands.d.ts +8 -0
  180. package/dist/src/reputation-commands.js +20 -0
  181. package/dist/src/reputation-commands.js.map +1 -0
  182. package/dist/src/runtime.d.ts +22 -0
  183. package/dist/src/runtime.js +2 -0
  184. package/dist/src/runtime.js.map +1 -0
  185. package/dist/src/sandbox.d.ts +46 -0
  186. package/dist/src/sandbox.js +142 -0
  187. package/dist/src/sandbox.js.map +1 -0
  188. package/dist/src/solve-commands.d.ts +25 -0
  189. package/dist/src/solve-commands.js +175 -0
  190. package/dist/src/solve-commands.js.map +1 -0
  191. package/dist/src/tokens.js +2 -1
  192. package/dist/src/tokens.js.map +1 -1
  193. package/dist/src/trust-args.d.ts +6 -0
  194. package/dist/src/trust-args.js +76 -0
  195. package/dist/src/trust-args.js.map +1 -0
  196. package/dist/src/version.d.ts +1 -1
  197. package/dist/src/version.js +1 -1
  198. package/dist/src/viper.d.ts +66 -0
  199. package/dist/src/viper.js +282 -0
  200. package/dist/src/viper.js.map +1 -0
  201. package/dist/src/wallet.d.ts +4 -1
  202. package/dist/src/wallet.js +25 -5
  203. package/dist/src/wallet.js.map +1 -1
  204. package/package.json +18 -7
  205. package/dist/src/events.d.ts +0 -8
  206. package/dist/src/events.js +0 -43
  207. package/dist/src/events.js.map +0 -1
  208. package/dist/src/transport.d.ts +0 -208
  209. package/dist/src/transport.js +0 -441
  210. package/dist/src/transport.js.map +0 -1
@@ -1 +1 @@
1
- export declare const VERSION = "0.1.23";
1
+ export declare const VERSION = "0.1.27";
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.1.23";
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>;
@@ -0,0 +1,282 @@
1
+ import { spawn } from "node:child_process";
2
+ import { createHash, randomInt } from "node:crypto";
3
+ import { existsSync } from "node:fs";
4
+ import { readFile } from "node:fs/promises";
5
+ import { fileURLToPath } from "node:url";
6
+ import { JudgeRefused } from "./judge-errors.js";
7
+ export const VIPER_WASM_SHA256 = "c039ca2a8d2eb26701ccd704e4b0d26bef9cefa13a90a951d51d776867de7c7d";
8
+ export const VIPER_ENGINE_COMMIT = "d2bccdb8f77f78bddf07fad22ec76bfedbfbbf0f";
9
+ export const CASES_FENCE = "judge-cases";
10
+ export const DEFAULT_STEPS = 10_000_000;
11
+ export const DEFAULT_HEAP = 64 * 1024 * 1024;
12
+ export const MAX_STEPS = 1_000_000_000;
13
+ export const MAX_HEAP = 256 * 1024 * 1024;
14
+ export const MAX_CASES = 10_000;
15
+ export const MAX_ARGUMENTS = 64;
16
+ export const OUTPUT_BYTES = 8 * 1024 * 1024;
17
+ export const DIAGNOSTIC_BYTES = 64 * 1024;
18
+ export const REPORTED_FAILURES = 20;
19
+ export const CLOCK_FROM = Date.UTC(2020, 0, 1);
20
+ export const CLOCK_TO = Date.UTC(2030, 0, 1);
21
+ export const SEED_LIMIT = 2 ** 48;
22
+ const VERDICTS = ["pass", "wrong", "not-primitive", "threw", "stopped", "no-module", "engine"];
23
+ const WIRE_VERSION = 1;
24
+ export const casesMissing = (count) => `--sandbox viper judges the cases in the spec, which must hold exactly one \`\`\`${CASES_FENCE} block of JSON; it holds ${count}`;
25
+ const refuse = (why) => {
26
+ throw new JudgeRefused(`the spec's ${CASES_FENCE} block ${why}; nothing was run or paid`);
27
+ };
28
+ const isPrimitive = (value) => value === null || typeof value === "boolean" || typeof value === "string" || (typeof value === "number" && Number.isFinite(value));
29
+ function bounded(value, name, fallback, max) {
30
+ if (value === undefined) {
31
+ return fallback;
32
+ }
33
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0 || value > max) {
34
+ return refuse(`has ${name} ${JSON.stringify(value)}, which is not a whole number from 0 to ${max}`);
35
+ }
36
+ return value;
37
+ }
38
+ export function casesOf(spec) {
39
+ const text = new TextDecoder().decode(spec);
40
+ const blocks = [...text.matchAll(new RegExp(`^\`\`\`${CASES_FENCE}[ \\t]*\\r?\\n([\\s\\S]*?)^\`\`\`[ \\t]*$`, "gm"))];
41
+ if (blocks.length !== 1) {
42
+ throw new JudgeRefused(casesMissing(blocks.length));
43
+ }
44
+ let parsed;
45
+ try {
46
+ parsed = JSON.parse(blocks[0]?.[1] ?? "");
47
+ }
48
+ catch (error) {
49
+ return refuse(`is not JSON: ${error instanceof Error ? error.message : String(error)}`);
50
+ }
51
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
52
+ return refuse("is not a JSON object");
53
+ }
54
+ const fields = parsed;
55
+ const unknown = Object.keys(fields).find((key) => !["steps", "heap", "seed", "clock", "cases"].includes(key));
56
+ if (unknown !== undefined) {
57
+ return refuse(`has a field ${JSON.stringify(unknown)} it does not know`);
58
+ }
59
+ const raw = fields["cases"];
60
+ if (!Array.isArray(raw) || raw.length === 0 || raw.length > MAX_CASES) {
61
+ return refuse(`must list from 1 to ${MAX_CASES} cases`);
62
+ }
63
+ const cases = raw.map((item, index) => {
64
+ const entry = typeof item === "object" && item !== null && !Array.isArray(item) ? item : undefined;
65
+ const args = entry?.["args"];
66
+ if (entry === undefined || Object.keys(entry).some((key) => key !== "args" && key !== "expected") || !("expected" in entry)) {
67
+ return refuse(`has case ${index}, which is not an object of args and expected`);
68
+ }
69
+ if (!Array.isArray(args) || args.length > MAX_ARGUMENTS || !args.every(isPrimitive)) {
70
+ return refuse(`has case ${index}, whose args are not a list of at most ${MAX_ARGUMENTS} JSON strings, numbers, booleans or nulls`);
71
+ }
72
+ if (!isPrimitive(entry["expected"])) {
73
+ return refuse(`has case ${index}, whose expected answer is not a JSON string, number, boolean or null`);
74
+ }
75
+ return { args, expected: entry["expected"] };
76
+ });
77
+ return {
78
+ steps: bounded(fields["steps"], "steps", DEFAULT_STEPS, MAX_STEPS),
79
+ heap: bounded(fields["heap"], "heap", DEFAULT_HEAP, MAX_HEAP),
80
+ seed: fields["seed"] === undefined ? undefined : bounded(fields["seed"], "seed", 1, Number.MAX_SAFE_INTEGER),
81
+ clock: fields["clock"] === undefined ? undefined : bounded(fields["clock"], "clock", 0, 8.64e15),
82
+ cases,
83
+ };
84
+ }
85
+ class Writer {
86
+ parts = [];
87
+ u32(n) {
88
+ const b = Buffer.alloc(4);
89
+ b.writeUInt32LE(n);
90
+ this.parts.push(b);
91
+ return this;
92
+ }
93
+ u64(n) {
94
+ const b = Buffer.alloc(8);
95
+ b.writeBigUInt64LE(BigInt(n));
96
+ this.parts.push(b);
97
+ return this;
98
+ }
99
+ f64(n) {
100
+ const b = Buffer.alloc(8);
101
+ b.writeDoubleLE(n);
102
+ this.parts.push(b);
103
+ return this;
104
+ }
105
+ string(text) {
106
+ const b = Buffer.from(text, "utf8");
107
+ this.u32(b.length);
108
+ this.parts.push(b);
109
+ return this;
110
+ }
111
+ byte(n) {
112
+ this.parts.push(Buffer.from([n]));
113
+ return this;
114
+ }
115
+ value(v) {
116
+ if (v === null)
117
+ return this.byte(1);
118
+ if (v === false)
119
+ return this.byte(2);
120
+ if (v === true)
121
+ return this.byte(3);
122
+ if (typeof v === "number")
123
+ return this.byte(4).f64(v);
124
+ return this.byte(5).string(v);
125
+ }
126
+ bytes() {
127
+ return Buffer.concat(this.parts);
128
+ }
129
+ }
130
+ export const runOf = (cases) => ({
131
+ seed: cases.seed ?? randomInt(1, SEED_LIMIT),
132
+ clock: cases.clock ?? randomInt(CLOCK_FROM, CLOCK_TO),
133
+ });
134
+ export function encodeInput(source, cases, run) {
135
+ const writer = new Writer().u32(WIRE_VERSION).u64(cases.steps).u64(cases.heap).u64(run.seed).f64(run.clock).string(source).u32(cases.cases.length);
136
+ for (const item of cases.cases) {
137
+ writer.u32(item.args.length);
138
+ item.args.forEach((arg) => writer.value(arg));
139
+ writer.value(item.expected);
140
+ }
141
+ return writer.bytes();
142
+ }
143
+ export function decodeOutput(bytes, expected) {
144
+ let at = 0;
145
+ const need = (count) => {
146
+ if (at + count > bytes.length)
147
+ throw new JudgeRefused("the viper judge answered a truncated verdict; nothing was paid");
148
+ };
149
+ const u8 = () => (need(1), bytes.readUInt8(at++));
150
+ const u32 = () => (need(4), (at += 4), bytes.readUInt32LE(at - 4));
151
+ const string = () => {
152
+ const length = u32();
153
+ need(length);
154
+ at += length;
155
+ return bytes.toString("utf8", at - length, at);
156
+ };
157
+ const value = () => {
158
+ const tag = u8();
159
+ if (tag === 4) {
160
+ need(8);
161
+ at += 8;
162
+ return bytes.readDoubleLE(at - 8);
163
+ }
164
+ if (tag === 5)
165
+ return string();
166
+ return [null, null, false, true][tag] ?? null;
167
+ };
168
+ if (u32() !== WIRE_VERSION || u8() !== 0) {
169
+ throw new JudgeRefused("the viper judge refused its own input; nothing was paid");
170
+ }
171
+ const count = u32();
172
+ if (count !== expected) {
173
+ throw new JudgeRefused(`the viper judge answered ${count} verdicts for ${expected} cases; nothing was paid`);
174
+ }
175
+ const results = [];
176
+ for (let n = 0; n < count; n += 1) {
177
+ const verdict = VERDICTS[u8()];
178
+ if (verdict === undefined)
179
+ throw new JudgeRefused("the viper judge answered a verdict it does not have; nothing was paid");
180
+ const detail = verdict === "wrong" ? value() : verdict === "threw" || verdict === "no-module" ? string() : undefined;
181
+ results.push(detail === undefined ? { verdict } : { verdict, detail });
182
+ }
183
+ if (at !== bytes.length) {
184
+ throw new JudgeRefused("the viper judge answered more than its verdicts; nothing was paid");
185
+ }
186
+ return results;
187
+ }
188
+ export function summarize(results, run) {
189
+ const failures = results.flatMap((result, index) => (result.verdict === "pass" ? [] : [{ case: index, ...result }]));
190
+ return { total: results.length, passed: results.length - failures.length, failures: failures.slice(0, REPORTED_FAILURES), ...run };
191
+ }
192
+ export function wasmPath() {
193
+ const candidates = ["../assets/viperjs-judge.wasm", "../../assets/viperjs-judge.wasm"].map((relative) => fileURLToPath(new URL(relative, import.meta.url)));
194
+ return candidates.find((path) => existsSync(path)) ?? candidates[0];
195
+ }
196
+ export async function pinnedWasm(path = wasmPath()) {
197
+ let bytes;
198
+ try {
199
+ bytes = await readFile(path);
200
+ }
201
+ catch {
202
+ throw new JudgeRefused(`the viper judge module ${path} is missing; reinstall the CLI. Nothing was run or paid`);
203
+ }
204
+ const sha256 = createHash("sha256").update(bytes).digest("hex");
205
+ if (sha256 !== VIPER_WASM_SHA256) {
206
+ throw new JudgeRefused(`the viper judge module ${path} has sha256 ${sha256}, not the pinned ${VIPER_WASM_SHA256}; nothing was run or paid`);
207
+ }
208
+ return bytes;
209
+ }
210
+ export const RUNNER = `
211
+ const chunks = [];
212
+ for await (const chunk of process.stdin) chunks.push(chunk);
213
+ const all = Buffer.concat(chunks);
214
+ const length = all.readUInt32LE(0);
215
+ const module = await WebAssembly.compile(all.subarray(4, 4 + length));
216
+ if (WebAssembly.Module.imports(module).length !== 0) process.exit(3);
217
+ const { exports } = await WebAssembly.instantiate(module, {});
218
+ const input = all.subarray(4 + length);
219
+ const at = exports.input(input.length);
220
+ new Uint8Array(exports.memory.buffer, at, input.length).set(input);
221
+ const produced = exports.run();
222
+ process.stdout.write(Buffer.from(new Uint8Array(exports.memory.buffer, exports.output(), produced)));
223
+ `;
224
+ export const permissionFlag = () => (process.allowedNodeEnvironmentFlags.has("--permission") ? "--permission" : "--experimental-permission");
225
+ export function runViper(wasm, input, timeoutSeconds) {
226
+ return new Promise((done) => {
227
+ const child = spawn(process.execPath, [permissionFlag(), "--input-type=module", "-e", RUNNER], { env: {}, stdio: ["pipe", "pipe", "pipe"], windowsHide: true });
228
+ const out = [];
229
+ let outBytes = 0;
230
+ let diagnostic = "";
231
+ let timedOut = false;
232
+ let over = false;
233
+ const timer = setTimeout(() => {
234
+ timedOut = true;
235
+ child.kill("SIGKILL");
236
+ }, timeoutSeconds * 1000);
237
+ child.stdout.on("data", (chunk) => {
238
+ outBytes += chunk.length;
239
+ if (outBytes > OUTPUT_BYTES) {
240
+ over = true;
241
+ child.kill("SIGKILL");
242
+ return;
243
+ }
244
+ out.push(chunk);
245
+ });
246
+ child.stderr.on("data", (chunk) => {
247
+ if (diagnostic.length < DIAGNOSTIC_BYTES)
248
+ diagnostic += chunk.toString("utf8").slice(0, DIAGNOSTIC_BYTES - diagnostic.length);
249
+ });
250
+ child.stdin.on("error", () => undefined);
251
+ const length = Buffer.alloc(4);
252
+ length.writeUInt32LE(wasm.length);
253
+ child.stdin.end(Buffer.concat([length, wasm, input]));
254
+ child.once("error", (error) => {
255
+ clearTimeout(timer);
256
+ done({ output: Buffer.alloc(0), exitCode: null, timedOut, diagnostic: error.message });
257
+ });
258
+ child.once("close", (code) => {
259
+ clearTimeout(timer);
260
+ done({ output: over ? Buffer.alloc(0) : Buffer.concat(out), exitCode: over ? null : code, timedOut, diagnostic });
261
+ });
262
+ });
263
+ }
264
+ export async function judgeViper(wasm, source, cases, timeoutSeconds) {
265
+ let text;
266
+ try {
267
+ text = new TextDecoder("utf-8", { fatal: true }).decode(source);
268
+ }
269
+ catch {
270
+ throw new JudgeRefused("--artifact is not UTF-8 text, so it is not a module the viper judge can run; nothing was paid");
271
+ }
272
+ const run = runOf(cases);
273
+ const ran = await runViper(wasm, encodeInput(text, cases, run), timeoutSeconds);
274
+ if (ran.timedOut) {
275
+ return { total: cases.cases.length, passed: 0, failures: [{ case: 0, verdict: "stopped", detail: `the judge did not finish within ${timeoutSeconds} s` }], ...run };
276
+ }
277
+ if (ran.exitCode !== 0) {
278
+ return { total: cases.cases.length, passed: 0, failures: [{ case: 0, verdict: "crashed", detail: `the judge process ended with exit code ${ran.exitCode}: ${ran.diagnostic.trim().slice(0, 256)}` }], ...run };
279
+ }
280
+ return summarize(decodeOutput(ran.output, cases.cases.length), run);
281
+ }
282
+ //# sourceMappingURL=viper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viper.js","sourceRoot":"","sources":["../../src/viper.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,10 @@ export declare const FAUCET = "https://github.com/MerlijnW70/solive/issues/new?t
17
17
  export declare const FUNDED = "your wallet is ready; try offering 0.05 SOL for at least 5 TEST";
18
18
  export declare const AIRDROP_REFUSED = "the airdrop was refused; request devnet SOL for this address at https://github.com/MerlijnW70/solive/issues/new?template=faucet.yml or https://faucet.solana.com, then set up again";
19
19
  export declare const SEND_SOL = "send SOL to this address, then run setup again";
20
+ export declare function expandHome(path: string, home: string): string;
20
21
  export declare function withSettings(files: Files, given: Env): Promise<Env>;
21
- export declare function setup(transport: Transport, files: Files, url: string, keypair: string | undefined): Promise<object>;
22
+ export declare const savedDefault: (url: string) => string;
23
+ export declare const keptDefault: (saved: string) => string;
24
+ export declare function setup(transport: Transport, files: Files, url: string, keypair: string | undefined, keepSavedUrl?: boolean): Promise<object>;
22
25
  export declare function defaultMints(url: string): Address[];
23
26
  export declare function balances(transport: Transport, owner: Address, mints: readonly Address[]): Promise<object>;
@@ -4,6 +4,7 @@ import { DEVNET_TEST_MINT, findAssociatedTokenAddress, formatAmount, NATIVE_MINT
4
4
  import { createdAccount, mintOf } from "@intent-engine/client";
5
5
  import { CLUSTERS, ENV_KEYPAIR, ENV_URL, UsageError } from "./args.js";
6
6
  import { SOL_DECIMALS } from "./agent/read.js";
7
+ import { redactUrl } from "./render.js";
7
8
  import { DEVNET_URL } from "./tokens.js";
8
9
  export const LAMPORTS_PER_SOL = 1000000000n;
9
10
  const FUND_BELOW = LAMPORTS_PER_SOL / 2n;
@@ -17,6 +18,12 @@ export const FAUCET = `${PRODUCT_REPOSITORY}/issues/new?template=faucet.yml`;
17
18
  export const FUNDED = "your wallet is ready; try offering 0.05 SOL for at least 5 TEST";
18
19
  export const AIRDROP_REFUSED = `the airdrop was refused; request devnet SOL for this address at ${FAUCET} or ${PUBLIC_FAUCET}, then set up again`;
19
20
  export const SEND_SOL = "send SOL to this address, then run setup again";
21
+ export function expandHome(path, home) {
22
+ if (path === "~") {
23
+ return home;
24
+ }
25
+ return /^~[\\/]/.test(path) ? `${home}${path.slice(1)}` : path;
26
+ }
20
27
  const set = (value) => (value === "" ? undefined : value);
21
28
  export async function withSettings(files, given) {
22
29
  const env = { ...given, [ENV_URL]: set(given[ENV_URL]), [ENV_KEYPAIR]: set(given[ENV_KEYPAIR]) };
@@ -44,6 +51,7 @@ export async function withSettings(files, given) {
44
51
  const { url, keypair } = saved;
45
52
  return { ...env, [ENV_URL]: env[ENV_URL] ?? url, [ENV_KEYPAIR]: env[ENV_KEYPAIR] ?? keypair };
46
53
  }
54
+ const alreadyExists = (error) => error !== null && typeof error === "object" && "code" in error && error.code === "EEXIST";
47
55
  async function walletAt(files, path) {
48
56
  try {
49
57
  await files.readText(path);
@@ -51,16 +59,27 @@ async function walletAt(files, path) {
51
59
  catch {
52
60
  const seed = crypto.getRandomValues(new Uint8Array(32));
53
61
  const signer = await createKeyPairSignerFromPrivateKeyBytes(seed);
54
- await files.saveText(path, JSON.stringify([...seed, ...getAddressEncoder().encode(signer.address)]), true);
62
+ try {
63
+ await files.saveText(path, JSON.stringify([...seed, ...getAddressEncoder().encode(signer.address)]), true);
64
+ }
65
+ catch (error) {
66
+ if (!alreadyExists(error)) {
67
+ throw error;
68
+ }
69
+ return { signer: await files.loadSigner(path), created: false };
70
+ }
55
71
  return { signer: await files.loadSigner(path), created: true };
56
72
  }
57
73
  return { signer: await files.loadSigner(path), created: false };
58
74
  }
59
75
  const lamportsOf = async (transport, owner) => (await transport.getAccount(owner))?.lamports ?? 0n;
60
- export async function setup(transport, files, url, keypair) {
61
- const path = keypair ?? defaultWallet(files.home);
76
+ export const savedDefault = (url) => `saved ${redactUrl(url)} as the default RPC for later CLI commands`;
77
+ export const keptDefault = (saved) => `left the saved default RPC ${redactUrl(saved)} unchanged`;
78
+ export async function setup(transport, files, url, keypair, keepSavedUrl = false) {
79
+ const path = expandHome(keypair ?? defaultWallet(files.home), files.home);
62
80
  const { signer, created } = await walletAt(files, path);
63
- await files.saveText(settingsPath(files.home), `${JSON.stringify({ url, keypair: path }, null, 2)}\n`, false);
81
+ const saved = keepSavedUrl ? (await withSettings(files, {}))[ENV_URL] : undefined;
82
+ await files.saveText(settingsPath(files.home), `${JSON.stringify({ url: saved ?? url, keypair: path }, null, 2)}\n`, false);
64
83
  let held = await lamportsOf(transport, signer.address);
65
84
  let next = FUNDED;
66
85
  if (held < FUND_BELOW) {
@@ -81,7 +100,8 @@ export async function setup(transport, files, url, keypair) {
81
100
  address: signer.address,
82
101
  keypair: path,
83
102
  created,
84
- url,
103
+ url: redactUrl(url),
104
+ settings: saved === undefined ? savedDefault(url) : keptDefault(saved),
85
105
  sol: formatAmount(held, SOL_DECIMALS),
86
106
  next,
87
107
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,22 @@
1
1
  {
2
2
  "name": "@intent-engine/cli",
3
- "version": "0.1.23",
3
+ "version": "0.1.27",
4
4
  "description": "Command line and MCP server for the intent engine on Solana",
5
5
  "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/MerlijnW70/solive.git",
9
+ "directory": "packages/cli"
10
+ },
11
+ "homepage": "https://github.com/MerlijnW70/solive#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/MerlijnW70/solive/issues"
14
+ },
6
15
  "type": "module",
7
16
  "files": [
8
- "dist/src"
17
+ "dist/src",
18
+ "assets/viperjs-judge.wasm",
19
+ "assets/viperjs-judge.sha256"
9
20
  ],
10
21
  "engines": {
11
22
  "node": ">=22.12.0"
@@ -21,9 +32,9 @@
21
32
  "@solana-program/system": "0.14.1",
22
33
  "@solana-program/token": "0.16.1",
23
34
  "@solana/kit": "8.4.0",
24
- "@intent-engine/core": "0.1.23",
25
- "@intent-engine/client": "0.1.23",
26
- "@intent-engine/solver": "0.1.23"
35
+ "@intent-engine/client": "0.1.27",
36
+ "@intent-engine/core": "0.1.27",
37
+ "@intent-engine/solver": "0.1.27"
27
38
  },
28
39
  "devDependencies": {
29
40
  "@modelcontextprotocol/client": "2.3.1",
@@ -34,8 +45,8 @@
34
45
  "vitest": "5.0.3"
35
46
  },
36
47
  "scripts": {
37
- "build": "tsc -p tsconfig.build.json",
48
+ "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json",
38
49
  "typecheck": "tsc -p tsconfig.json --noEmit",
39
- "test": "vitest run --fsModuleCache"
50
+ "test": "vitest run --fsModuleCache --config ./vitest.setup.ts"
40
51
  }
41
52
  }
@@ -1,8 +0,0 @@
1
- export declare const EVENT_IX_TAG: Uint8Array<ArrayBuffer>;
2
- export declare const NOTABLE: Set<string>;
3
- export type DecodedEvent = {
4
- name: string;
5
- notable: boolean;
6
- fields: object;
7
- };
8
- export declare function decodeEvent(data: Uint8Array): DecodedEvent | null;
@@ -1,43 +0,0 @@
1
- import { IntentEngineEvent, identifyIntentEngineEvent, parseAdminAcceptedEvent, parseAdminProposedEvent, parseConfigInitializedEvent, parseConfigUpdatedEvent, parseFillBegunEvent, parseFillEndedEvent, parseIntentAttestedEvent, parseIntentCancelledEvent, parseIntentClosedEvent, parseIntentCreatedEvent, parseIntentExpiredEvent, parseIntentFilledEvent, parseNonceAdvancedEvent, parsePauseLoweredEvent, parsePauseRaisedEvent, parseUserInitializedEvent, } from "@intent-engine/core";
2
- export const EVENT_IX_TAG = new Uint8Array([0xe4, 0xa5, 0x45, 0xea, 0x51, 0xcb, 0x9a, 0x1d]);
3
- const PARSERS = {
4
- AdminAccepted: parseAdminAcceptedEvent,
5
- AdminProposed: parseAdminProposedEvent,
6
- ConfigInitialized: parseConfigInitializedEvent,
7
- ConfigUpdated: parseConfigUpdatedEvent,
8
- FillBegun: parseFillBegunEvent,
9
- FillEnded: parseFillEndedEvent,
10
- IntentAttested: parseIntentAttestedEvent,
11
- IntentCancelled: parseIntentCancelledEvent,
12
- IntentClosed: parseIntentClosedEvent,
13
- IntentCreated: parseIntentCreatedEvent,
14
- IntentExpired: parseIntentExpiredEvent,
15
- IntentFilled: parseIntentFilledEvent,
16
- NonceAdvanced: parseNonceAdvancedEvent,
17
- PauseLowered: parsePauseLoweredEvent,
18
- PauseRaised: parsePauseRaisedEvent,
19
- UserInitialized: parseUserInitializedEvent,
20
- };
21
- export const NOTABLE = new Set([
22
- "AdminAccepted",
23
- "AdminProposed",
24
- "ConfigInitialized",
25
- "ConfigUpdated",
26
- "PauseLowered",
27
- "PauseRaised",
28
- ]);
29
- export function decodeEvent(data) {
30
- if (data.length < EVENT_IX_TAG.length || !EVENT_IX_TAG.every((b, i) => data[i] === b)) {
31
- return null;
32
- }
33
- const body = data.subarray(EVENT_IX_TAG.length);
34
- let name;
35
- try {
36
- name = IntentEngineEvent[identifyIntentEngineEvent(body)];
37
- }
38
- catch {
39
- return null;
40
- }
41
- return { name, notable: NOTABLE.has(name), fields: PARSERS[name](body) };
42
- }
43
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAI7F,MAAM,OAAO,GAAoD;IAC/D,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,uBAAuB;IACtC,iBAAiB,EAAE,2BAA2B;IAC9C,aAAa,EAAE,uBAAuB;IACtC,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,cAAc,EAAE,wBAAwB;IACxC,eAAe,EAAE,yBAAyB;IAC1C,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,uBAAuB;IACtC,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,YAAY,EAAE,sBAAsB;IACpC,WAAW,EAAE,qBAAqB;IAClC,eAAe,EAAE,yBAAyB;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IAC7B,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,aAAa;CACd,CAAC,CAAC;AAIH,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,IAAe,CAAC;IACpB,IAAI,CAAC;QACH,IAAI,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC"}