@six5536/smllm-wasm 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,7 +23,7 @@ engine:
23
23
  ```js
24
24
  import init, { Engine, memoryStorage } from "@six5536/smllm-wasm"; // or from "@six5536/smllm-wasm/bundler"
25
25
 
26
- await init(); // the bundler build needs no init
26
+ await init(); // in a browser or Node.js, while the bundler build needs no init
27
27
  const compiled = await (await fetch("machines.json")).json(); // `smllm compile`
28
28
  const engine = new Engine(
29
29
  compiled,
@@ -65,6 +65,11 @@ host leaves the method out:
65
65
  - `read(file)` reads a prompt file. `smllm compile` inlines prompt files, so a host rarely needs
66
66
  this method.
67
67
  - `isMatch(pattern, value)` matches a pattern. By default, it uses `new RegExp`.
68
+ - `checkJson(schema, value)` checks a `json` param's value against its schema, and returns one
69
+ message for each error, such as `at /steps: [] has fewer than 1 item`, or none when the value
70
+ passes. The engine refuses an event whose value has errors. The package has no validator of its
71
+ own, so give it one of yours, such as Ajv's. Without `checkJson`, the engine takes the value
72
+ unchecked, and `unsupported()` names each `json` param with a schema.
68
73
  - `now()` returns the time. By default, it uses `Date.now`.
69
74
  - `random()` returns a random number. By default, it uses `crypto.getRandomValues`.
70
75
  - `history(machine, id, entry)` and `put(kind, key, record)` receive writes. By default, the
@@ -157,9 +162,12 @@ model that the host calls through the Messages API with no tools. The host shows
157
162
  state, reads its answer as one event, runs its own checks, and fires the results. Four methods
158
163
  serve it, and none of them changes anything:
159
164
 
160
- - `hostView(key)` returns `{ location, model, host }`: where the session is, the events that the
161
- model can fire, and the events that only the host fires. Each event has its `name`,
162
- `description`, and `params`, and a JSON param has its bundled `schema` as an object.
165
+ - `hostView(key)` returns `{ location, model, host, invoke }`: where the session is, the events
166
+ that the model can fire, the events that only the host fires, and the host's work that the
167
+ state invokes. Each event has its `name`, `description`, and `params`, and a JSON param has its
168
+ bundled `schema` as an object. Each `invoke` has its `src`, the name of the work, and its
169
+ `input`, an object of fixed values, if the machine gives one: run the work, then fire its result
170
+ with `fireAsHost`.
163
171
  - `stateText(key, { schemas })` returns the state's text for the model: its instructions, the
164
172
  model's events with their params, and a request to answer with one event as JSON. Each JSON
165
173
  param shows its schema, unless `schemas` is `false`.
@@ -170,38 +178,50 @@ serve it, and none of them changes anything:
170
178
  JavaScript values ready for `fire`, or `{ ok: false, error }`, whose error the host sends back
171
179
  to the model as it stands. Every malformed answer gets the same error.
172
180
 
173
- This loop runs a machine from start to end. The machine is an extractor builder for bank
174
- statements, which is in the `examples/extractor` folder of the smllm repository. The model
175
- answers with an extractor, a JSON value with a schema, or asks for more pages. The host checks
176
- the extractor and fires `checks_passed` or `checks_failed`, and the machine gives up after five
177
- attempts:
181
+ This loop runs a machine from start to end. The machine triages support tickets, and is in the
182
+ `examples/ticket-triage` folder of the smllm repository. The model answers with a triage, a JSON
183
+ value with a schema, or asks for the customer's earlier tickets. The host checks the triage and
184
+ fires `checks_passed` or `checks_failed`, and the machine gives up after five attempts:
178
185
 
179
186
  ```js
180
187
  const engine = new Engine(compiled, {}, memoryStorage());
181
188
  // A keyless `enter` creates the session and starts the machine in one call.
182
- const { session } = engine.fire(undefined, "enter", { stateMachine: "extractor-build" });
189
+ const { session } = engine.fire(undefined, "enter", { stateMachine: "ticket-triage" });
183
190
  for (;;) {
184
191
  const view = engine.hostView(session);
185
192
  if (view.location.machine === null) break; // a final state: the session is idle again
186
193
  if (view.model.length > 0) {
187
- let prompt = `${engine.stateText(session)}\n${statement}`;
194
+ let prompt = `${engine.stateText(session)}\n${ticket}`;
188
195
  for (;;) {
189
196
  const answer = engine.checkAnswer(session, await askModel(prompt)); // your adapter
190
197
  if (answer.ok) {
191
198
  engine.fire(session, answer.event, answer.params); // the model chose the event
192
- if (answer.event === "extractor") extractor = answer.params.json;
199
+ if (answer.event === "triage") triage = answer.params.json;
193
200
  break;
194
201
  }
195
202
  prompt = answer.error; // the refusal, as it stands; count it as an attempt
196
203
  }
204
+ } else if (view.invoke.length > 0) {
205
+ // The state names its work, so the host finds its code by name, not by the state's.
206
+ for (const { src, input } of view.invoke) await work[src](session, input);
197
207
  } else {
198
- const errors = await runChecks(extractor); // your checks, which can be async
199
- if (errors.length === 0) engine.fireAsHost(session, "checks_passed");
200
- else engine.fireAsHost(session, "checks_failed", { errors: errors.join("\n") });
208
+ throw new Error(`nothing to do in ${view.location.state}`); // a person's step: wait for them
201
209
  }
202
210
  }
203
211
  ```
204
212
 
213
+ `work` maps each `src` to the host's code, which fires the work's result:
214
+
215
+ ```js
216
+ const work = {
217
+ async runChecks(session) {
218
+ const errors = await runChecks(triage, ticket); // your checks, which can be async
219
+ if (errors.length === 0) engine.fireAsHost(session, "checks_passed");
220
+ else engine.fireAsHost(session, "checks_failed", { errors: errors.join("\n") });
221
+ },
222
+ };
223
+ ```
224
+
205
225
  The model is never offered a built-in event, such as `yield`, `pause`, or `unmatched`, or a
206
226
  host-only event, because those belong to whoever drives the session, which here is the host. The
207
227
  host fires them as it needs them. An outcome that the model can choose, such as "I can't do this"
@@ -211,7 +231,7 @@ One machine can mix the model's steps, the host's deterministic steps, and a per
211
231
  state that offers the model events is a step of the model. A state whose events are all the
212
232
  host's is a step of the host, such as `CHECKING`, or a person's step, such as an approval for
213
233
  which the host fires the person's decision. A state that offers both lists is a step of the model
214
- that the host can interrupt: the extractor builder's `READ` offers the host `timed_out`, which the
234
+ that the host can interrupt: the ticket triage's `READ` offers the host `timed_out`, which the
215
235
  host fires when the model takes too long.
216
236
 
217
237
  ## Run in Node
package/dist/index.d.ts CHANGED
@@ -1,6 +1,11 @@
1
- import init, { Engine as Raw, initSync } from "../wasm/web/smllm_wasm.js";
1
+ import load, { Engine as Raw, initSync } from "../wasm/web/smllm_wasm.js";
2
2
  import { Engine as Base } from "./wrap.js";
3
- export default init;
3
+ type Input = Parameters<typeof load>[0];
4
+ /**
5
+ * Load the engine's WebAssembly once. Without an argument, a browser fetches
6
+ * the package's file, and Node.js, which can't fetch a `file:` URL, reads it.
7
+ */
8
+ export default function init(input?: Input): ReturnType<typeof load>;
4
9
  export { initSync };
5
10
  export type * from "./types.js";
6
11
  export { memoryStorage } from "./storage.js";
package/dist/index.js CHANGED
@@ -1,8 +1,23 @@
1
1
  // smllm-wasm for browsers and Node (the web build): call `init()` (or
2
2
  // `initSync`) once, then use `Engine`. The string API is `smllm-wasm/raw`.
3
- import init, { Engine as Raw, initSync } from "../wasm/web/smllm_wasm.js";
3
+ import load, { Engine as Raw, initSync } from "../wasm/web/smllm_wasm.js";
4
4
  import { Engine as Base } from "./wrap.js";
5
- export default init;
5
+ // sokf-implements: WASM-6_AC-2
6
+ /**
7
+ * Load the engine's WebAssembly once. Without an argument, a browser fetches
8
+ * the package's file, and Node.js, which can't fetch a `file:` URL, reads it.
9
+ */
10
+ export default async function init(input) {
11
+ const node = globalThis.process?.versions?.node;
12
+ if (input === undefined && node) {
13
+ // A variable keeps a bundler for the browser from resolving `node:fs`.
14
+ const fs = "node:fs/promises";
15
+ const { readFile } = (await import(/* @vite-ignore */ fs));
16
+ const file = new URL("../wasm/web/smllm_wasm_bg.wasm", import.meta.url);
17
+ return load({ module_or_path: await readFile(file) });
18
+ }
19
+ return load(input);
20
+ }
6
21
  export { initSync };
7
22
  export { memoryStorage } from "./storage.js";
8
23
  /** smllm's engine over compiled machines (`smllm compile` output). */
package/dist/types.d.ts CHANGED
@@ -96,6 +96,9 @@ export interface AuditEntry {
96
96
  * A command's `params.cwd` is relative to the compiled config file (`nodeHost`'s `configDir`).
97
97
  * - `read`: prompt files (`smllm compile` inlines them, so rarely needed).
98
98
  * - `isMatch`: `new RegExp(pattern).test(value)` by default.
99
+ * - `checkJson`: the errors of a `json` param's value against its schema, one message each, such as
100
+ * `at /steps: [] has fewer than 1 item`, and none when the value passes. Without it, the engine takes
101
+ * the value unchecked, and `unsupported()` names each such param.
99
102
  * - `now`, `random`: `Date.now()` and `crypto.getRandomValues` by default.
100
103
  * - `history`: each history entry as it happens; dropped by default.
101
104
  * - `put`: each session, binding and instance as it is saved (write-through storage); dropped by default.
@@ -111,6 +114,7 @@ export interface Host {
111
114
  run?(kind: string, params: Record<string, unknown>, env: Record<string, string>, cwd: string): string | void;
112
115
  read?(file: string): string | undefined;
113
116
  isMatch?(pattern: string, value: string): boolean;
117
+ checkJson?(schema: Record<string, unknown> | boolean, value: unknown): string[];
114
118
  now?(): number;
115
119
  random?(): number;
116
120
  history?(machine: string, id: string, entry: HistoryEntry): void;
@@ -183,6 +187,13 @@ export interface HostView {
183
187
  location: Location;
184
188
  model: Offered[];
185
189
  host: Offered[];
190
+ /** The host's work that the state invokes: run each, and fire its result with `fireAsHost`. */
191
+ invoke: Invoked[];
192
+ }
193
+ /** One piece of the host's work that a state names with `invoke`: its name, and its fixed input. */
194
+ export interface Invoked {
195
+ src: string;
196
+ input?: Record<string, unknown>;
186
197
  }
187
198
  /** A model's answer, checked: the event and its params, ready for `fire`, or the refusal to send back to the model. */
188
199
  export type CheckedAnswer = {
package/dist/wrap.d.ts CHANGED
@@ -6,6 +6,8 @@ export interface RawHost {
6
6
  run(kind: string, params: string, env: string, cwd: string): string;
7
7
  read(file: string): string | undefined;
8
8
  isMatch(pattern: string, value: string): boolean;
9
+ checksJson(): boolean;
10
+ checkJson(schema: string, value: string): string;
9
11
  now(): number;
10
12
  random(): number;
11
13
  history(machine: string, id: string, entry: string): void;
package/dist/wrap.js CHANGED
@@ -10,6 +10,10 @@ function adapt(host) {
10
10
  run: (kind, params, env, cwd) => host.run ? (host.run(kind, parse(params), parse(env), cwd) ?? "") : `${kind} is not supported`,
11
11
  read: (file) => host.read?.(file) ?? undefined,
12
12
  isMatch: (pattern, value) => host.isMatch ? host.isMatch(pattern, value) : new RegExp(pattern).test(value),
13
+ checksJson: () => typeof host.checkJson === "function",
14
+ // `checksJson` guards the call; an answer that isn't a list of strings,
15
+ // such as `undefined`, reaches the engine as `null`, which refuses it.
16
+ checkJson: (schema, value) => JSON.stringify(host.checkJson(parse(schema), parse(value)) ?? null),
13
17
  now: () => (host.now ? host.now() : Date.now()),
14
18
  random: () => (host.random ? host.random() : crypto.getRandomValues(new Uint32Array(1))[0]),
15
19
  history: (machine, id, entry) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@six5536/smllm-wasm",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "smllm's engine as WebAssembly: run smllm state machines that drive an LLM agent, in a browser or Node.",
5
5
  "homepage": "https://github.com/six5536/smllm#readme",
6
6
  "repository": {
@@ -85,7 +85,8 @@ export class Engine {
85
85
  */
86
86
  tool(): string;
87
87
  /**
88
- * Guard and action kinds this host cannot run, as a JSON array.
88
+ * Guard and action kinds this host cannot run, and the `json` params
89
+ * whose schema it can't check, as a JSON array.
89
90
  */
90
91
  unsupported(): string;
91
92
  /**
@@ -484,7 +484,8 @@ export class Engine {
484
484
  }
485
485
  }
486
486
  /**
487
- * Guard and action kinds this host cannot run, as a JSON array.
487
+ * Guard and action kinds this host cannot run, and the `json` params
488
+ * whose schema it can't check, as a JSON array.
488
489
  * @returns {string}
489
490
  */
490
491
  unsupported() {
@@ -540,7 +541,7 @@ export function __wbg_Error_30c8987f7c2ed4e2(arg0, arg1) {
540
541
  const ret = Error(getStringFromWasm0(arg0, arg1));
541
542
  return addHeapObject(ret);
542
543
  }
543
- export function __wbg_String_a5249499d8036ec9(arg0, arg1) {
544
+ export function __wbg_String_ec1c3b3c84a9dbf3(arg0, arg1) {
544
545
  const ret = String(getObject(arg1));
545
546
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
546
547
  const len1 = WASM_VECTOR_LEN;
@@ -550,50 +551,61 @@ export function __wbg_String_a5249499d8036ec9(arg0, arg1) {
550
551
  export function __wbg___wbindgen_throw_41e9ee4f547fc59a(arg0, arg1) {
551
552
  throw new Error(getStringFromWasm0(arg0, arg1));
552
553
  }
553
- export function __wbg_audit_85f5bb21263e0644() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
554
+ export function __wbg_audit_3f3d51b1d1e18142() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
554
555
  getObject(arg0).audit(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
555
556
  }, arguments); }
556
- export function __wbg_check_e9ea28c77bd41729() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
557
+ export function __wbg_checkJson_db0e073c4512979f() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {
558
+ const ret = getObject(arg1).checkJson(getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5));
559
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
560
+ const len1 = WASM_VECTOR_LEN;
561
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
562
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
563
+ }, arguments); }
564
+ export function __wbg_check_de5a973b91a3d08f() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
557
565
  const ret = getObject(arg0).check(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), getStringFromWasm0(arg5, arg6), getStringFromWasm0(arg7, arg8));
558
566
  return ret;
559
567
  }, arguments); }
560
- export function __wbg_history_ba99161437b60e0e() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
568
+ export function __wbg_checksJson_5ef117e8db8590ab() { return handleError(function (arg0) {
569
+ const ret = getObject(arg0).checksJson();
570
+ return ret;
571
+ }, arguments); }
572
+ export function __wbg_history_a61a296671f238eb() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
561
573
  getObject(arg0).history(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), getStringFromWasm0(arg5, arg6));
562
574
  }, arguments); }
563
- export function __wbg_isMatch_57a619cdd9087ba8() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
575
+ export function __wbg_isMatch_b50cfd3c8781041a() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
564
576
  const ret = getObject(arg0).isMatch(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
565
577
  return ret;
566
578
  }, arguments); }
567
- export function __wbg_now_1a669daa685d184d() { return handleError(function (arg0) {
579
+ export function __wbg_now_5fc1c6c78f9f39d4() { return handleError(function (arg0) {
568
580
  const ret = getObject(arg0).now();
569
581
  return ret;
570
582
  }, arguments); }
571
- export function __wbg_put_8270908aa8f03c2a() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
583
+ export function __wbg_put_394e26bb364d9b76() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
572
584
  getObject(arg0).put(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), getStringFromWasm0(arg5, arg6));
573
585
  }, arguments); }
574
- export function __wbg_random_a2849827a284f2d5() { return handleError(function (arg0) {
586
+ export function __wbg_random_574ca462424bc88d() { return handleError(function (arg0) {
575
587
  const ret = getObject(arg0).random();
576
588
  return ret;
577
589
  }, arguments); }
578
- export function __wbg_read_e79d6ea23600ac6f() { return handleError(function (arg0, arg1, arg2, arg3) {
590
+ export function __wbg_read_6b92e086132ade25() { return handleError(function (arg0, arg1, arg2, arg3) {
579
591
  const ret = getObject(arg1).read(getStringFromWasm0(arg2, arg3));
580
592
  var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
581
593
  var len1 = WASM_VECTOR_LEN;
582
594
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
583
595
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
584
596
  }, arguments); }
585
- export function __wbg_run_e1681363901db5c8() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
597
+ export function __wbg_run_ee2ccf269a2b9186() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
586
598
  const ret = getObject(arg1).run(getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), getStringFromWasm0(arg6, arg7), getStringFromWasm0(arg8, arg9));
587
599
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
588
600
  const len1 = WASM_VECTOR_LEN;
589
601
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
590
602
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
591
603
  }, arguments); }
592
- export function __wbg_supports_5e904725127552cf() { return handleError(function (arg0, arg1, arg2) {
604
+ export function __wbg_supports_7b30783f132799d8() { return handleError(function (arg0, arg1, arg2) {
593
605
  const ret = getObject(arg0).supports(getStringFromWasm0(arg1, arg2));
594
606
  return ret;
595
607
  }, arguments); }
596
- export function __wbg_wantsAudit_27e6b386da9d3696() { return handleError(function (arg0) {
608
+ export function __wbg_wantsAudit_7c79e9f2578983f6() { return handleError(function (arg0) {
597
609
  const ret = getObject(arg0).wantsAudit();
598
610
  return ret;
599
611
  }, arguments); }
Binary file
@@ -85,7 +85,8 @@ export class Engine {
85
85
  */
86
86
  tool(): string;
87
87
  /**
88
- * Guard and action kinds this host cannot run, as a JSON array.
88
+ * Guard and action kinds this host cannot run, and the `json` params
89
+ * whose schema it can't check, as a JSON array.
89
90
  */
90
91
  unsupported(): string;
91
92
  /**
@@ -486,7 +486,8 @@ export class Engine {
486
486
  }
487
487
  }
488
488
  /**
489
- * Guard and action kinds this host cannot run, as a JSON array.
489
+ * Guard and action kinds this host cannot run, and the `json` params
490
+ * whose schema it can't check, as a JSON array.
490
491
  * @returns {string}
491
492
  */
492
493
  unsupported() {
@@ -545,7 +546,7 @@ function __wbg_get_imports() {
545
546
  const ret = Error(getStringFromWasm0(arg0, arg1));
546
547
  return addHeapObject(ret);
547
548
  },
548
- __wbg_String_a5249499d8036ec9: function(arg0, arg1) {
549
+ __wbg_String_ec1c3b3c84a9dbf3: function(arg0, arg1) {
549
550
  const ret = String(getObject(arg1));
550
551
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
551
552
  const len1 = WASM_VECTOR_LEN;
@@ -555,50 +556,61 @@ function __wbg_get_imports() {
555
556
  __wbg___wbindgen_throw_41e9ee4f547fc59a: function(arg0, arg1) {
556
557
  throw new Error(getStringFromWasm0(arg0, arg1));
557
558
  },
558
- __wbg_audit_85f5bb21263e0644: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
559
+ __wbg_audit_3f3d51b1d1e18142: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
559
560
  getObject(arg0).audit(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
560
561
  }, arguments); },
561
- __wbg_check_e9ea28c77bd41729: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
562
+ __wbg_checkJson_db0e073c4512979f: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {
563
+ const ret = getObject(arg1).checkJson(getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5));
564
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
565
+ const len1 = WASM_VECTOR_LEN;
566
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
567
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
568
+ }, arguments); },
569
+ __wbg_check_de5a973b91a3d08f: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
562
570
  const ret = getObject(arg0).check(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), getStringFromWasm0(arg5, arg6), getStringFromWasm0(arg7, arg8));
563
571
  return ret;
564
572
  }, arguments); },
565
- __wbg_history_ba99161437b60e0e: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
573
+ __wbg_checksJson_5ef117e8db8590ab: function() { return handleError(function (arg0) {
574
+ const ret = getObject(arg0).checksJson();
575
+ return ret;
576
+ }, arguments); },
577
+ __wbg_history_a61a296671f238eb: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
566
578
  getObject(arg0).history(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), getStringFromWasm0(arg5, arg6));
567
579
  }, arguments); },
568
- __wbg_isMatch_57a619cdd9087ba8: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
580
+ __wbg_isMatch_b50cfd3c8781041a: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
569
581
  const ret = getObject(arg0).isMatch(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
570
582
  return ret;
571
583
  }, arguments); },
572
- __wbg_now_1a669daa685d184d: function() { return handleError(function (arg0) {
584
+ __wbg_now_5fc1c6c78f9f39d4: function() { return handleError(function (arg0) {
573
585
  const ret = getObject(arg0).now();
574
586
  return ret;
575
587
  }, arguments); },
576
- __wbg_put_8270908aa8f03c2a: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
588
+ __wbg_put_394e26bb364d9b76: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
577
589
  getObject(arg0).put(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4), getStringFromWasm0(arg5, arg6));
578
590
  }, arguments); },
579
- __wbg_random_a2849827a284f2d5: function() { return handleError(function (arg0) {
591
+ __wbg_random_574ca462424bc88d: function() { return handleError(function (arg0) {
580
592
  const ret = getObject(arg0).random();
581
593
  return ret;
582
594
  }, arguments); },
583
- __wbg_read_e79d6ea23600ac6f: function() { return handleError(function (arg0, arg1, arg2, arg3) {
595
+ __wbg_read_6b92e086132ade25: function() { return handleError(function (arg0, arg1, arg2, arg3) {
584
596
  const ret = getObject(arg1).read(getStringFromWasm0(arg2, arg3));
585
597
  var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
586
598
  var len1 = WASM_VECTOR_LEN;
587
599
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
588
600
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
589
601
  }, arguments); },
590
- __wbg_run_e1681363901db5c8: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
602
+ __wbg_run_ee2ccf269a2b9186: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
591
603
  const ret = getObject(arg1).run(getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), getStringFromWasm0(arg6, arg7), getStringFromWasm0(arg8, arg9));
592
604
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
593
605
  const len1 = WASM_VECTOR_LEN;
594
606
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
595
607
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
596
608
  }, arguments); },
597
- __wbg_supports_5e904725127552cf: function() { return handleError(function (arg0, arg1, arg2) {
609
+ __wbg_supports_7b30783f132799d8: function() { return handleError(function (arg0, arg1, arg2) {
598
610
  const ret = getObject(arg0).supports(getStringFromWasm0(arg1, arg2));
599
611
  return ret;
600
612
  }, arguments); },
601
- __wbg_wantsAudit_27e6b386da9d3696: function() { return handleError(function (arg0) {
613
+ __wbg_wantsAudit_7c79e9f2578983f6: function() { return handleError(function (arg0) {
602
614
  const ret = getObject(arg0).wantsAudit();
603
615
  return ret;
604
616
  }, arguments); },
Binary file