@intent-engine/cli 0.1.26 → 0.1.28

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 (116) 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 +2 -1
  4. package/dist/src/admin-commands.js +47 -2
  5. package/dist/src/admin-commands.js.map +1 -1
  6. package/dist/src/agent/create.js +3 -1
  7. package/dist/src/agent/create.js.map +1 -1
  8. package/dist/src/agent/mandate-agent.js +3 -1
  9. package/dist/src/agent/mandate-agent.js.map +1 -1
  10. package/dist/src/agent/mcp.js +3 -0
  11. package/dist/src/agent/mcp.js.map +1 -1
  12. package/dist/src/agent/problems.d.ts +15 -0
  13. package/dist/src/agent/problems.js +15 -0
  14. package/dist/src/agent/problems.js.map +1 -1
  15. package/dist/src/agent/profile.d.ts +4 -0
  16. package/dist/src/agent/profile.js +129 -0
  17. package/dist/src/agent/profile.js.map +1 -0
  18. package/dist/src/agent/registry.js +6 -0
  19. package/dist/src/agent/registry.js.map +1 -1
  20. package/dist/src/agent/reputation.d.ts +4 -0
  21. package/dist/src/agent/reputation.js +127 -0
  22. package/dist/src/agent/reputation.js.map +1 -0
  23. package/dist/src/agent/sales.d.ts +1 -1
  24. package/dist/src/agent/sales.js +4 -4
  25. package/dist/src/agent/sales.js.map +1 -1
  26. package/dist/src/agent/signed-prepare.js +2 -5
  27. package/dist/src/agent/signed-prepare.js.map +1 -1
  28. package/dist/src/agent/signed-relay.d.ts +1 -1
  29. package/dist/src/agent/signed-relay.js +2 -1
  30. package/dist/src/agent/signed-relay.js.map +1 -1
  31. package/dist/src/agent/signed-submit.js +2 -2
  32. package/dist/src/agent/signed-submit.js.map +1 -1
  33. package/dist/src/agent/wallet/committee.d.ts +4 -0
  34. package/dist/src/agent/wallet/committee.js +155 -0
  35. package/dist/src/agent/wallet/committee.js.map +1 -0
  36. package/dist/src/agent/wallet/releases.js +12 -3
  37. package/dist/src/agent/wallet/releases.js.map +1 -1
  38. package/dist/src/agent/wallet.d.ts +1 -0
  39. package/dist/src/agent/wallet.js +10 -0
  40. package/dist/src/agent/wallet.js.map +1 -1
  41. package/dist/src/agent/work-claims.d.ts +3 -0
  42. package/dist/src/agent/work-claims.js +138 -0
  43. package/dist/src/agent/work-claims.js.map +1 -0
  44. package/dist/src/arg-options.d.ts +501 -3
  45. package/dist/src/arg-options.js +76 -3
  46. package/dist/src/arg-options.js.map +1 -1
  47. package/dist/src/arg-usage.d.ts +2 -2
  48. package/dist/src/arg-usage.js +13 -4
  49. package/dist/src/arg-usage.js.map +1 -1
  50. package/dist/src/arg-values.d.ts +1 -1
  51. package/dist/src/arg-values.js +10 -6
  52. package/dist/src/arg-values.js.map +1 -1
  53. package/dist/src/args.d.ts +1 -6
  54. package/dist/src/args.js +51 -68
  55. package/dist/src/args.js.map +1 -1
  56. package/dist/src/artifact.d.ts +14 -1
  57. package/dist/src/artifact.js +57 -16
  58. package/dist/src/artifact.js.map +1 -1
  59. package/dist/src/check-process.d.ts +7 -0
  60. package/dist/src/check-process.js +78 -0
  61. package/dist/src/check-process.js.map +1 -1
  62. package/dist/src/claim-commands.d.ts +12 -0
  63. package/dist/src/claim-commands.js +170 -0
  64. package/dist/src/claim-commands.js.map +1 -0
  65. package/dist/src/clusters.d.ts +6 -0
  66. package/dist/src/clusters.js +15 -0
  67. package/dist/src/clusters.js.map +1 -0
  68. package/dist/src/command-types.d.ts +101 -4
  69. package/dist/src/commands.js +27 -1
  70. package/dist/src/commands.js.map +1 -1
  71. package/dist/src/committee-commands.d.ts +31 -0
  72. package/dist/src/committee-commands.js +167 -0
  73. package/dist/src/committee-commands.js.map +1 -0
  74. package/dist/src/host-judge.d.ts +11 -0
  75. package/dist/src/host-judge.js +120 -0
  76. package/dist/src/host-judge.js.map +1 -0
  77. package/dist/src/job-args.d.ts +4 -0
  78. package/dist/src/job-args.js +67 -0
  79. package/dist/src/job-args.js.map +1 -0
  80. package/dist/src/job-commands.js +3 -1
  81. package/dist/src/job-commands.js.map +1 -1
  82. package/dist/src/judge.d.ts +17 -1
  83. package/dist/src/judge.js +81 -19
  84. package/dist/src/judge.js.map +1 -1
  85. package/dist/src/main.d.ts +1 -0
  86. package/dist/src/main.js +11 -0
  87. package/dist/src/main.js.map +1 -1
  88. package/dist/src/monitor-args.d.ts +11 -0
  89. package/dist/src/monitor-args.js +58 -0
  90. package/dist/src/monitor-args.js.map +1 -0
  91. package/dist/src/monitor-fills.d.ts +13 -0
  92. package/dist/src/monitor-fills.js +56 -0
  93. package/dist/src/monitor-fills.js.map +1 -0
  94. package/dist/src/monitor.d.ts +60 -0
  95. package/dist/src/monitor.js +295 -0
  96. package/dist/src/monitor.js.map +1 -0
  97. package/dist/src/release-simulation.d.ts +18 -0
  98. package/dist/src/release-simulation.js +45 -0
  99. package/dist/src/release-simulation.js.map +1 -0
  100. package/dist/src/reputation-commands.d.ts +8 -0
  101. package/dist/src/reputation-commands.js +20 -0
  102. package/dist/src/reputation-commands.js.map +1 -0
  103. package/dist/src/sandbox.d.ts +46 -0
  104. package/dist/src/sandbox.js +142 -0
  105. package/dist/src/sandbox.js.map +1 -0
  106. package/dist/src/solve-commands.js +12 -8
  107. package/dist/src/solve-commands.js.map +1 -1
  108. package/dist/src/trust-args.d.ts +12 -0
  109. package/dist/src/trust-args.js +177 -0
  110. package/dist/src/trust-args.js.map +1 -0
  111. package/dist/src/version.d.ts +1 -1
  112. package/dist/src/version.js +1 -1
  113. package/dist/src/viper.d.ts +66 -0
  114. package/dist/src/viper.js +282 -0
  115. package/dist/src/viper.js.map +1 -0
  116. package/package.json +9 -7
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intent-engine/cli",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "Command line and MCP server for the intent engine on Solana",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,7 +14,9 @@
14
14
  },
15
15
  "type": "module",
16
16
  "files": [
17
- "dist/src"
17
+ "dist/src",
18
+ "assets/viperjs-judge.wasm",
19
+ "assets/viperjs-judge.sha256"
18
20
  ],
19
21
  "engines": {
20
22
  "node": ">=22.12.0"
@@ -29,10 +31,10 @@
29
31
  "@modelcontextprotocol/server": "2.3.1",
30
32
  "@solana-program/system": "0.14.1",
31
33
  "@solana-program/token": "0.16.1",
32
- "@solana/kit": "^8.4.0",
33
- "@intent-engine/solver": "0.1.26",
34
- "@intent-engine/core": "0.1.26",
35
- "@intent-engine/client": "0.1.26"
34
+ "@solana/kit": "8.4.0",
35
+ "@intent-engine/solver": "0.1.28",
36
+ "@intent-engine/client": "0.1.28",
37
+ "@intent-engine/core": "0.1.28"
36
38
  },
37
39
  "devDependencies": {
38
40
  "@modelcontextprotocol/client": "2.3.1",
@@ -45,6 +47,6 @@
45
47
  "scripts": {
46
48
  "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json",
47
49
  "typecheck": "tsc -p tsconfig.json --noEmit",
48
- "test": "vitest run --fsModuleCache --testTimeout=30000"
50
+ "test": "vitest run --fsModuleCache --config ./vitest.setup.ts"
49
51
  }
50
52
  }