@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,3 +1,12 @@
1
+ export function redactUrl(url) {
2
+ try {
3
+ const parsed = new URL(url);
4
+ return [parsed.protocol, "", parsed.host].join("/");
5
+ }
6
+ catch {
7
+ return "an unparseable url";
8
+ }
9
+ }
1
10
  export function render(value) {
2
11
  return JSON.stringify(value, (_, v) => typeof v === "bigint" ? v.toString() : v instanceof Uint8Array ? Buffer.from(v).toString("hex") : v, 2);
3
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Transport } from "@intent-engine/client";
2
+ import type { Command } from "./command-types.js";
3
+ import type { Runtime } from "./runtime.js";
4
+ type ReputationCommand = Extract<Command, {
5
+ name: "reputation" | "feedback";
6
+ }>;
7
+ export declare function reputationCommand(command: ReputationCommand, runtime: Runtime, transport: Transport): Promise<object>;
8
+ export {};
@@ -0,0 +1,20 @@
1
+ import { createClient, feedbackInstructions } from "@intent-engine/client";
2
+ import { previewed } from "./admin-commands.js";
3
+ export async function reputationCommand(command, runtime, transport) {
4
+ switch (command.name) {
5
+ case "reputation":
6
+ return createClient({ url: command.url, transport }).reputation(command.worker, { pages: command.maxPages });
7
+ case "feedback": {
8
+ const owner = await runtime.loadSigner(command.keypair);
9
+ const input = { owner, intent: command.intent, score: command.score, ...(command.note === undefined ? {} : { note: command.note }) };
10
+ const instructions = await feedbackInstructions(transport, input);
11
+ const summary = [
12
+ `Rates: the work released by escrow ${command.intent} ${command.score} out of 100, signed by its owner ${owner.address}`,
13
+ ...(command.note === undefined ? [] : [`Links: the note with sha256 ${command.note}`]),
14
+ "Counts: once; the owner's first feedback on an escrow is the one that counts",
15
+ ];
16
+ return previewed(transport, instructions, owner, { intent: command.intent, score: command.score, summary }, command.yes);
17
+ }
18
+ }
19
+ }
20
+ //# sourceMappingURL=reputation-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation-commands.js","sourceRoot":"","sources":["../../src/reputation-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAkB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMhD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA0B,EAAE,OAAgB,EAAE,SAAoB;IACxG,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/G,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACrI,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG;gBACd,sCAAsC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,oCAAoC,KAAK,CAAC,OAAO,EAAE;gBACxH,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,+BAA+B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtF,8EAA8E;aAC/E,CAAC;YACF,OAAO,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3H,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { KeyPairSigner } from "@solana/kit";
2
+ import type { Fetch } from "@intent-engine/solver";
3
+ import type { McpServer } from "@modelcontextprotocol/server";
4
+ import type { IntentChanges, Transport } from "@intent-engine/client";
5
+ import type { SaleBook } from "./agent/sales.js";
6
+ import type { Env } from "./command-types.js";
7
+ export type Runtime = {
8
+ transport(url: string): Transport;
9
+ intentChanges(url: string): IntentChanges;
10
+ loadSigner(path: string): Promise<KeyPairSigner>;
11
+ readText(path: string): Promise<string>;
12
+ sleep(seconds: number): Promise<boolean>;
13
+ env: Env;
14
+ writeText(path: string, text: string): Promise<void>;
15
+ saveText(path: string, text: string, secret: boolean): Promise<void>;
16
+ home: string;
17
+ now(): bigint;
18
+ fetch: Fetch;
19
+ entropy(): number;
20
+ serve(server: McpServer): Promise<void>;
21
+ saleBook?: SaleBook;
22
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":""}
@@ -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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"}
@@ -0,0 +1,25 @@
1
+ import type { Address } from "@solana/kit";
2
+ import { type Intent } from "@intent-engine/core";
3
+ import { type SolverOptions } from "@intent-engine/solver";
4
+ import { type ProgramAccount, type Transport } from "@intent-engine/client";
5
+ import type { Command } from "./command-types.js";
6
+ import type { Runtime } from "./runtime.js";
7
+ export declare const ENV_JUPITER_KEY = "JUPITER_API_KEY";
8
+ export declare const JUPITER_DOMAIN = "jup.ag";
9
+ export declare function jupiterHost(url: string): boolean;
10
+ export declare const SOLVER_TABLE_NEXT = "put these in an address lookup table you own (solana address-lookup-table create, then extend with them) and pass it to solve with --lookup-table";
11
+ export type SolveCommand = Extract<Command, {
12
+ name: "solve";
13
+ }>;
14
+ export declare const IN_FLIGHT_SECONDS = 90n;
15
+ export declare const REFRESH_AFTER_SECONDS = 60n;
16
+ export declare function decodedChanges(changed: readonly ProgramAccount[]): {
17
+ intents: {
18
+ address: Address;
19
+ intent: Intent;
20
+ }[];
21
+ unreadable: Address[];
22
+ };
23
+ export declare function stillOpen(transport: Transport, intents: readonly Address[]): Promise<Address[]>;
24
+ export declare function watchSolve(command: SolveCommand, interval: number, runtime: Runtime, emit: (value: object) => void): Promise<number>;
25
+ export declare function solverOptions(command: SolveCommand, runtime: Runtime, transport: Transport): Promise<SolverOptions>;
@@ -0,0 +1,175 @@
1
+ import { getIntentDecoder, IntentStatus } from "@intent-engine/core";
2
+ import { decodeLookupTable, landings, issuePricer, backoff, jitoBundles, jupiterPricer, remembering, tick, tipAccount, } from "@intent-engine/solver";
3
+ import { chainTime, createdAccount, loadConfig, tokenAmountOf, tokenProgramOf, } from "@intent-engine/client";
4
+ import { priceOf, withPriority } from "./compute.js";
5
+ const SOLVER_ROUTE_ACCOUNTS = 40;
6
+ export const ENV_JUPITER_KEY = "JUPITER_API_KEY";
7
+ export const JUPITER_DOMAIN = "jup.ag";
8
+ export function jupiterHost(url) {
9
+ const host = new URL(url).hostname;
10
+ return host === JUPITER_DOMAIN || host.endsWith(`.${JUPITER_DOMAIN}`);
11
+ }
12
+ export const SOLVER_TABLE_NEXT = "put these in an address lookup table you own (solana address-lookup-table create, then extend with them) and pass it to solve with --lookup-table";
13
+ export const IN_FLIGHT_SECONDS = 90n;
14
+ export const REFRESH_AFTER_SECONDS = 60n;
15
+ export function decodedChanges(changed) {
16
+ const intents = [];
17
+ const unreadable = [];
18
+ for (const { address, data } of changed) {
19
+ try {
20
+ intents.push({ address, intent: getIntentDecoder().decode(data) });
21
+ }
22
+ catch {
23
+ unreadable.push(address);
24
+ }
25
+ }
26
+ return { intents, unreadable };
27
+ }
28
+ export async function stillOpen(transport, intents) {
29
+ const views = await transport.getAccounts(intents);
30
+ return intents.filter((_, i) => {
31
+ const view = views[i];
32
+ return view !== null && view !== undefined && getIntentDecoder().decode(view.data).status === IntentStatus.Open;
33
+ });
34
+ }
35
+ export async function watchSolve(command, interval, runtime, emit) {
36
+ const transport = withPriority(runtime.transport(command.url), command.priority);
37
+ const options = await solverOptions(command, runtime, transport);
38
+ const chain = remembering(options.chain);
39
+ const held = backoff(interval, () => Number(runtime.now()) * 1_000);
40
+ const live = {
41
+ ...options,
42
+ chain,
43
+ backoff: held,
44
+ send: command.jito === undefined ? async (wire) => ({ signature: await transport.submitWire(wire), confirmed: false }) : options.send,
45
+ };
46
+ const failedOnChain = async (signature) => command.jito === undefined && (await transport.transactionOf?.(signature))?.failed === true;
47
+ const changes = runtime.intentChanges(command.url);
48
+ const inFlight = new Map();
49
+ const failing = new Map();
50
+ let scannedAt = null;
51
+ let acted = 0;
52
+ try {
53
+ for (let changed = []; changed !== null; changed = await changes.wait(interval)) {
54
+ const now = runtime.now();
55
+ const began = performance.now();
56
+ let full = false;
57
+ try {
58
+ full = changed.length === 0 || scannedAt === null || now - scannedAt >= BigInt(interval);
59
+ const decoded = full ? { intents: await chain.intents(), unreadable: [] } : decodedChanges(changed);
60
+ if (full) {
61
+ scannedAt = now;
62
+ held.retain(decoded.intents, await chain.now());
63
+ }
64
+ if (decoded.unreadable.length > 0) {
65
+ emit({ at: now, scan: "changed", unreadable: decoded.unreadable });
66
+ }
67
+ const listed = decoded.intents;
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
+ }
74
+ }
75
+ }
76
+ const due = listed.filter(({ address }) => !inFlight.has(address));
77
+ const { filled, sent, failed } = await tick({ ...live, chain: { ...chain, intents: async () => due } });
78
+ for (const { intent, signature } of sent) {
79
+ inFlight.set(intent, { until: now + IN_FLIGHT_SECONDS, signature });
80
+ }
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] });
83
+ acted += filled.length + sent.length;
84
+ }
85
+ for (const [intent, at] of failing) {
86
+ if (now - at >= REFRESH_AFTER_SECONDS * 10n) {
87
+ failing.delete(intent);
88
+ }
89
+ }
90
+ const open = await stillOpen(transport, failed.map((f) => f.intent));
91
+ const refresh = open.filter((intent) => {
92
+ const at = failing.get(intent);
93
+ return at === undefined || now - at >= REFRESH_AFTER_SECONDS;
94
+ });
95
+ if (refresh.length > 0) {
96
+ refresh.forEach((intent) => failing.set(intent, now));
97
+ chain.forget();
98
+ }
99
+ }
100
+ catch (error) {
101
+ chain.forget();
102
+ emit({ at: now, scan: full ? "full" : "changed", error: error instanceof Error ? error.message : String(error) });
103
+ }
104
+ }
105
+ }
106
+ finally {
107
+ changes.close();
108
+ }
109
+ return acted;
110
+ }
111
+ export async function solverOptions(command, runtime, transport) {
112
+ const solver = await runtime.loadSigner(command.keypair);
113
+ let latest;
114
+ const chain = {
115
+ config: async () => (await loadConfig(transport)).config,
116
+ intents: async () => (await transport.intents()).map(({ address, data }) => ({ address, intent: getIntentDecoder().decode(data) })),
117
+ now: () => chainTime(transport),
118
+ tokenProgram: (mint) => tokenProgramOf(transport, mint),
119
+ mintData: async (mint) => (await transport.getAccount(mint))?.data ?? null,
120
+ exists: async (address) => (await createdAccount(transport, address)) !== null,
121
+ tokenAmount: async (address) => tokenAmountOf((await transport.getAccount(address))?.data ?? null) ?? 0n,
122
+ lookupTables: async (addresses) => {
123
+ const tables = {};
124
+ for (const address of addresses) {
125
+ const view = await transport.getAccount(address);
126
+ if (view === null) {
127
+ throw new Error(`lookup table ${address} does not exist`);
128
+ }
129
+ tables[address] = decodeLookupTable(view.data);
130
+ }
131
+ return tables;
132
+ },
133
+ blockhash: async () => {
134
+ latest = await transport.latestBlockhash();
135
+ return latest;
136
+ },
137
+ };
138
+ const bundle = command.jito === undefined ? undefined : jitoBundles({ url: command.jito, fetch: runtime.fetch });
139
+ return {
140
+ chain,
141
+ pricer: command.jupiter === undefined
142
+ ? issuePricer(await Promise.all(command.issue.map(async (route) => ({ ...route, outputTokenProgram: await tokenProgramOf(transport, route.outputMint) }))))
143
+ : jupiterPricer({
144
+ baseUrl: command.jupiter,
145
+ fetch: runtime.fetch,
146
+ slippageBps: command.slippageBps,
147
+ maxAccounts: SOLVER_ROUTE_ACCOUNTS,
148
+ ...(runtime.env[ENV_JUPITER_KEY] === undefined || !jupiterHost(command.jupiter)
149
+ ? {}
150
+ : { apiKey: runtime.env[ENV_JUPITER_KEY] }),
151
+ ...(command.routeProgram === undefined ? {} : { swapPrograms: new Set([command.routeProgram]) }),
152
+ }),
153
+ solver,
154
+ strategy: { minProfit: command.minProfit, maxFeeBps: command.maxFeeBps },
155
+ maxSolCost: command.maxSolCost,
156
+ maxRent: command.maxRent,
157
+ tip: command.tipLamports === 0n ? null : { account: tipAccount(runtime.entropy()), lamports: command.tipLamports },
158
+ lookupTables: command.lookupTables,
159
+ unitPrice: (instructions) => priceOf(transport, command.priority, instructions),
160
+ simulate: async (wire, watch) => {
161
+ const simulated = await transport.simulate(wire, watch);
162
+ return { err: simulated.err, unitsConsumed: simulated.unitsConsumed, balances: simulated.accounts.map(tokenAmountOf) };
163
+ },
164
+ send: async (wire) => {
165
+ if (bundle !== undefined) {
166
+ return { signature: await bundle([wire]), confirmed: false };
167
+ }
168
+ if (latest === undefined) {
169
+ throw new Error("no blockhash was fetched for this transaction");
170
+ }
171
+ return { signature: await transport.sendWire(wire, latest), confirmed: true };
172
+ },
173
+ };
174
+ }
175
+ //# sourceMappingURL=solve-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solve-commands.js","sourceRoot":"","sources":["../../src/solve-commands.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { DEVNET_TEST_MINT, NATIVE_MINT } from "@intent-engine/core";
2
+ import { redactUrl } from "./render.js";
2
3
  export const DEVNET_URL = "https://api.devnet.solana.com";
3
- export const testTokenElsewhere = (url) => `TEST names the devnet test token; on ${url} pass the token's mint address`;
4
+ export const testTokenElsewhere = (url) => `TEST names the devnet test token; on ${redactUrl(url)} pass the token's mint address`;
4
5
  export function tokenNamed(text, url) {
5
6
  const name = text.toUpperCase();
6
7
  if (name === "SOL") {
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,wCAAwC,GAAG,gCAAgC,CAAC;AAE/H,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAqC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;AAElH,MAAM,UAAU,UAAU,CAAC,SAAkB,EAAE,UAAmB;IAChE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,OAAO,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACpH,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,wCAAwC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC;AAE1I,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAqC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;AAElH,MAAM,UAAU,UAAU,CAAC,SAAkB,EAAE,UAAmB;IAChE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,OAAO,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACpH,CAAC"}
@@ -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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"}