@tellegen/engine 0.3.0 → 0.4.1

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 (56) hide show
  1. package/README.md +65 -5
  2. package/dist/data/populated_places.json +7351 -0
  3. package/dist/generated/{contracts.d.ts → api-types.d.ts} +4 -4
  4. package/dist/generated/api-types.d.ts.map +1 -0
  5. package/dist/generated/api-types.js +8 -0
  6. package/dist/generated/api-types.js.map +1 -0
  7. package/dist/generated/study-schema.d.ts.map +1 -1
  8. package/dist/generated/study-schema.js +2 -2
  9. package/dist/generated/study-schema.js.map +1 -1
  10. package/dist/generated/{study-contracts.d.ts → study-types.d.ts} +1 -1
  11. package/dist/generated/study-types.d.ts.map +1 -0
  12. package/dist/generated/study-types.js +4 -0
  13. package/dist/generated/study-types.js.map +1 -0
  14. package/dist/generated/synth-schema.d.ts +2 -0
  15. package/dist/generated/synth-schema.d.ts.map +1 -0
  16. package/dist/generated/synth-schema.js +3 -0
  17. package/dist/generated/synth-schema.js.map +1 -0
  18. package/dist/generated/synth-types.d.ts +484 -0
  19. package/dist/generated/synth-types.d.ts.map +1 -0
  20. package/dist/generated/synth-types.js +4 -0
  21. package/dist/generated/synth-types.js.map +1 -0
  22. package/dist/host.d.ts +23 -2
  23. package/dist/host.d.ts.map +1 -1
  24. package/dist/host.js +60 -22
  25. package/dist/host.js.map +1 -1
  26. package/dist/index.d.ts +253 -16
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +433 -11
  29. package/dist/index.js.map +1 -1
  30. package/dist/module.d.ts +1 -0
  31. package/dist/module.d.ts.map +1 -1
  32. package/dist/module.js.map +1 -1
  33. package/dist/protocol.d.ts +97 -7
  34. package/dist/protocol.d.ts.map +1 -1
  35. package/dist/protocol.js +96 -6
  36. package/dist/protocol.js.map +1 -1
  37. package/dist/study-document.d.ts +2 -2
  38. package/dist/study-document.d.ts.map +1 -1
  39. package/dist/study-document.js +1 -1
  40. package/dist/study-document.js.map +1 -1
  41. package/dist/wasm-pkg/LICENSE +17 -4
  42. package/dist/wasm-pkg/tellegen.d.ts +171 -6
  43. package/dist/wasm-pkg/tellegen.js +627 -33
  44. package/dist/wasm-pkg/tellegen_bg.wasm +0 -0
  45. package/dist/wasm-pkg/tellegen_bg.wasm.d.ts +32 -2
  46. package/dist/worker.js +10 -7
  47. package/dist/worker.js.map +1 -1
  48. package/package.json +17 -11
  49. package/dist/generated/contracts.d.ts.map +0 -1
  50. package/dist/generated/contracts.js +0 -8
  51. package/dist/generated/contracts.js.map +0 -1
  52. package/dist/generated/study-contracts.d.ts.map +0 -1
  53. package/dist/generated/study-contracts.js +0 -4
  54. package/dist/generated/study-contracts.js.map +0 -1
  55. package/dist/wasm-pkg/LICENSE-APACHE +0 -201
  56. package/dist/wasm-pkg/LICENSE-MIT +0 -19
@@ -4,11 +4,20 @@
4
4
  /**
5
5
  * A retained fixed-point current-injection session. The prepared network,
6
6
  * sparse LU, and last converged voltage remain in this WASM object across
7
- * load edits.
7
+ * load edits. Ordinary edits return the compact summary; detailed terminal
8
+ * and equipment values are fetched on demand.
8
9
  */
9
10
  export class McPfSession {
10
11
  free(): void;
11
12
  [Symbol.dispose](): void;
13
+ /**
14
+ * Phase timings of the session's parse, preparation, factorization, and first solve.
15
+ */
16
+ cold_profile(): string;
17
+ /**
18
+ * One bounded page of terminal and equipment values for a bus or element.
19
+ */
20
+ detail(query_json: string): string;
12
21
  /**
13
22
  * Materialize the current edited input as PowerIO IR.
14
23
  */
@@ -17,20 +26,46 @@ export class McPfSession {
17
26
  * Editable load branches with base and current P/Q values.
18
27
  */
19
28
  load_branches(): string;
29
+ /**
30
+ * Edited networks materialized for portable output; ordinary edits build none.
31
+ */
32
+ materialization_count(): number;
20
33
  constructor(module_json: string, options_json: string);
21
34
  /**
22
- * Replace the absolute branch-power edit state and solve with the retained
23
- * factorization and previous converged voltage.
35
+ * Phase timings of the most recent solve.
36
+ */
37
+ profile(): string;
38
+ /**
39
+ * Replace the absolute branch-power edit state, solve with the retained
40
+ * factorization and previous converged voltage, and return the summary.
24
41
  */
25
42
  replace_load_powers(edits_json: string): string;
26
43
  /**
27
- * The current complete solver result.
44
+ * The complete terminal and equipment result, built on demand. Its size
45
+ * grows with the network; the interactive path uses `summary`/`detail`.
28
46
  */
29
47
  result(): string;
30
48
  /**
31
49
  * Save the current edited point and result without re-solving.
32
50
  */
33
51
  snapshot(study_id: string, study_title: string): string;
52
+ /**
53
+ * The compact summary of the current operating point (constant size).
54
+ */
55
+ summary(): string;
56
+ /**
57
+ * Currents injected into the network as interleaved `[re, im]` amperes.
58
+ */
59
+ terminal_currents(): Float64Array;
60
+ /**
61
+ * Terminal identities as `[bus, terminal]` pairs in calculation order.
62
+ * They never change for a session, so a host fetches them once.
63
+ */
64
+ terminal_ids(): string;
65
+ /**
66
+ * Terminal voltages as interleaved `[re, im]` volts (a `Float64Array`).
67
+ */
68
+ terminal_voltages(): Float64Array;
34
69
  }
35
70
 
36
71
  /**
@@ -138,6 +173,76 @@ export class Study {
138
173
  solution(): string;
139
174
  }
140
175
 
176
+ /**
177
+ * A synthetic preview as flat arrays: bus `[lon, lat]` pairs, kinds (0 load,
178
+ * 1 substation, 2 generator, 3 converter) and kV in bus order, branch route
179
+ * points, the index where each route starts (one entry more than there are
180
+ * branches) and branch kV.
181
+ */
182
+ export class SynthPreviewBuffers {
183
+ private constructor();
184
+ free(): void;
185
+ [Symbol.dispose](): void;
186
+ branch_kv(): Float32Array;
187
+ branch_positions(): Float64Array;
188
+ branch_start_indices(): Uint32Array;
189
+ bus_kinds(): Uint8Array;
190
+ bus_kv(): Float32Array;
191
+ bus_positions(): Float64Array;
192
+ }
193
+
194
+ /**
195
+ * A staged synthetic generation: one bounded stage per `advance`, a map
196
+ * preview between stages, and the module, the report and the drop-panel
197
+ * payload once it is done.
198
+ */
199
+ export class SynthSession {
200
+ free(): void;
201
+ [Symbol.dispose](): void;
202
+ /**
203
+ * Run one stage (one calibration iteration for `calibrate`); returns the
204
+ * `StepOutcome` JSON.
205
+ */
206
+ advance(): string;
207
+ /**
208
+ * The network as GridFM graphkit JSON (per-unit feature matrices on a
209
+ * 0-based bus index), from `electrify` on.
210
+ */
211
+ export_gridfm(): string;
212
+ /**
213
+ * The drop-panel payload of the module (the `ingest_case` shape with
214
+ * `module_json`).
215
+ */
216
+ ingest(): string;
217
+ /**
218
+ * The module as generation 2 PowerIO IR text, with bus locations and
219
+ * branch routes, from `electrify` on.
220
+ */
221
+ module(): string;
222
+ /**
223
+ * Open a session at the `context` stage. `osm_json` is the Overpass
224
+ * document (one, or a JSON array of documents) for `source: "osm"`.
225
+ */
226
+ constructor(request_json: string, osm_json?: string | null);
227
+ /**
228
+ * The map preview as `Preview` JSON records.
229
+ */
230
+ preview(): string;
231
+ /**
232
+ * The map preview as flat arrays for binary map attributes, computed
233
+ * once; read each array, then `free()` the buffers.
234
+ */
235
+ preview_buffers(): SynthPreviewBuffers;
236
+ /**
237
+ * The `GenerationReport` JSON, partial until the session is done.
238
+ */
239
+ report(): string;
240
+ /**
241
+ * The stage the next `advance` runs.
242
+ */
243
+ stage(): string;
244
+ }
245
+
141
246
  /**
142
247
  * Fill case coordinates from a PowerWorld `.pwd` sibling: substation symbols
143
248
  * project to approximate longitude/latitude and join onto buses through the
@@ -230,6 +335,13 @@ export function ingest_dist_case_bytes(bytes: Uint8Array, format: string): strin
230
335
  */
231
336
  export function ingest_json_drop(bytes: Uint8Array): string;
232
337
 
338
+ /**
339
+ * Engine heap accounting: live and peak bytes held by the WASM allocator
340
+ * (peak since the last reset) and the size of linear memory, which only
341
+ * grows. Native builds report zeros.
342
+ */
343
+ export function memory_stats(): string;
344
+
233
345
  /**
234
346
  * Parse a case file (MATPOWER, PSS/E RAW, PowerWorld aux, PowerModels or
235
347
  * egret JSON) and return `{"network": ..., "diagnostics": [...]}` as JSON.
@@ -261,6 +373,11 @@ export function parse_geo(bytes: Uint8Array, hint: string): string;
261
373
  */
262
374
  export function replay_mc_study(snapshot_json: string): string;
263
375
 
376
+ /**
377
+ * Start a new peak-heap window at the current live size.
378
+ */
379
+ export function reset_peak_memory(): void;
380
+
264
381
  /**
265
382
  * Solve a raw BMOPF multiconductor constant-power case. The parser and
266
383
  * fixed-point implementation remain in the engine crate; this export only
@@ -303,12 +420,32 @@ export function study_document_import(bundle_json: string): string;
303
420
  */
304
421
  export function study_document_run(bundle_json: string, request_json: string, cancelled: Function): Promise<string>;
305
422
 
423
+ /**
424
+ * Run every stage of a synthetic generation: `{module_json, report, ingest}`.
425
+ */
426
+ export function synth_generate(request_json: string, osm_json?: string | null): string;
427
+
428
+ /**
429
+ * Load the populated places table every synthetic session of this instance
430
+ * reads (the engine package's `data/populated_places.json`, or any table of
431
+ * `{n, lo, la, p, c}` rows). Returns `{count, sha256}`.
432
+ */
433
+ export function synth_load_places(bytes: Uint8Array): string;
434
+
435
+ /**
436
+ * The Overpass QL queries for a synthetic request's region: a JSON array, two
437
+ * entries when the region crosses the antimeridian.
438
+ */
439
+ export function synth_overpass_queries(request_json: string): string;
440
+
306
441
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
307
442
 
308
443
  export interface InitOutput {
309
444
  readonly memory: WebAssembly.Memory;
310
445
  readonly __wbg_mcpfsession_free: (a: number, b: number) => void;
311
446
  readonly __wbg_study_free: (a: number, b: number) => void;
447
+ readonly __wbg_synthpreviewbuffers_free: (a: number, b: number) => void;
448
+ readonly __wbg_synthsession_free: (a: number, b: number) => void;
312
449
  readonly apply_display_geo: (a: number, b: number, c: number, d: number) => [number, number, number, number];
313
450
  readonly apply_geo: (a: number, b: number, c: number, d: number) => [number, number, number, number];
314
451
  readonly apply_layout: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
@@ -320,16 +457,26 @@ export interface InitOutput {
320
457
  readonly ingest_dist_case: (a: number, b: number, c: number, d: number) => [number, number, number, number];
321
458
  readonly ingest_dist_case_bytes: (a: number, b: number, c: number, d: number) => [number, number, number, number];
322
459
  readonly ingest_json_drop: (a: number, b: number) => [number, number, number, number];
460
+ readonly mcpfsession_cold_profile: (a: number) => [number, number, number, number];
461
+ readonly mcpfsession_detail: (a: number, b: number, c: number) => [number, number, number, number];
323
462
  readonly mcpfsession_input_module: (a: number) => [number, number, number, number];
324
463
  readonly mcpfsession_load_branches: (a: number) => [number, number, number, number];
464
+ readonly mcpfsession_materialization_count: (a: number) => number;
325
465
  readonly mcpfsession_new: (a: number, b: number, c: number, d: number) => [number, number, number];
466
+ readonly mcpfsession_profile: (a: number) => [number, number, number, number];
326
467
  readonly mcpfsession_replace_load_powers: (a: number, b: number, c: number) => [number, number, number, number];
327
468
  readonly mcpfsession_result: (a: number) => [number, number, number, number];
328
469
  readonly mcpfsession_snapshot: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
470
+ readonly mcpfsession_summary: (a: number) => [number, number, number, number];
471
+ readonly mcpfsession_terminal_currents: (a: number) => [number, number];
472
+ readonly mcpfsession_terminal_ids: (a: number) => [number, number, number, number];
473
+ readonly mcpfsession_terminal_voltages: (a: number) => [number, number];
474
+ readonly memory_stats: () => [number, number];
329
475
  readonly parse_case: (a: number, b: number, c: number, d: number) => [number, number, number, number];
330
476
  readonly parse_display: (a: number, b: number, c: number, d: number) => [number, number, number, number];
331
477
  readonly parse_geo: (a: number, b: number, c: number, d: number) => [number, number, number, number];
332
478
  readonly replay_mc_study: (a: number, b: number) => [number, number, number, number];
479
+ readonly reset_peak_memory: () => void;
333
480
  readonly solve_mc_bmopf: (a: number, b: number, c: number, d: number) => [number, number, number, number];
334
481
  readonly solve_mc_module: (a: number, b: number, c: number, d: number) => [number, number, number, number];
335
482
  readonly solve_mc_study: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
@@ -350,8 +497,26 @@ export interface InitOutput {
350
497
  readonly study_save_module: (a: number) => [number, number, number, number];
351
498
  readonly study_save_solution_module: (a: number) => [number, number, number, number];
352
499
  readonly study_solution: (a: number) => [number, number, number, number];
353
- readonly wasm_bindgen__convert__closures_____invoke__h0178a8f776e4ef73: (a: number, b: number, c: any, d: any) => void;
354
- readonly wasm_bindgen__convert__closures_____invoke__h42fc1c09ce4112c3: (a: number, b: number, c: any) => [number, number];
500
+ readonly synth_generate: (a: number, b: number, c: number, d: number) => [number, number, number, number];
501
+ readonly synth_load_places: (a: number, b: number) => [number, number, number, number];
502
+ readonly synth_overpass_queries: (a: number, b: number) => [number, number, number, number];
503
+ readonly synthpreviewbuffers_branch_kv: (a: number) => [number, number];
504
+ readonly synthpreviewbuffers_branch_positions: (a: number) => [number, number];
505
+ readonly synthpreviewbuffers_branch_start_indices: (a: number) => [number, number];
506
+ readonly synthpreviewbuffers_bus_kinds: (a: number) => [number, number];
507
+ readonly synthpreviewbuffers_bus_kv: (a: number) => [number, number];
508
+ readonly synthpreviewbuffers_bus_positions: (a: number) => [number, number];
509
+ readonly synthsession_advance: (a: number) => [number, number, number, number];
510
+ readonly synthsession_export_gridfm: (a: number) => [number, number, number, number];
511
+ readonly synthsession_ingest: (a: number) => [number, number, number, number];
512
+ readonly synthsession_module: (a: number) => [number, number, number, number];
513
+ readonly synthsession_new: (a: number, b: number, c: number, d: number) => [number, number, number];
514
+ readonly synthsession_preview: (a: number) => [number, number, number, number];
515
+ readonly synthsession_preview_buffers: (a: number) => number;
516
+ readonly synthsession_report: (a: number) => [number, number, number, number];
517
+ readonly synthsession_stage: (a: number) => [number, number];
518
+ readonly wasm_bindgen__convert__closures_____invoke__h1c534e945ee6d3b6: (a: number, b: number, c: any) => [number, number];
519
+ readonly wasm_bindgen__convert__closures_____invoke__h67ba427e9454f1d8: (a: number, b: number, c: any, d: any) => void;
355
520
  readonly __wbindgen_exn_store: (a: number) => void;
356
521
  readonly __externref_table_alloc: () => number;
357
522
  readonly __wbindgen_externrefs: WebAssembly.Table;