@tellegen/engine 0.2.0 → 0.3.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.
Files changed (44) hide show
  1. package/README.md +19 -14
  2. package/dist/generated/contracts.d.ts +25 -17
  3. package/dist/generated/contracts.d.ts.map +1 -1
  4. package/dist/generated/contracts.js +3 -3
  5. package/dist/generated/study-contracts.d.ts +426 -0
  6. package/dist/generated/study-contracts.d.ts.map +1 -0
  7. package/dist/generated/study-contracts.js +4 -0
  8. package/dist/generated/study-contracts.js.map +1 -0
  9. package/dist/generated/study-schema.d.ts +2 -0
  10. package/dist/generated/study-schema.d.ts.map +1 -0
  11. package/dist/generated/study-schema.js +3 -0
  12. package/dist/generated/study-schema.js.map +1 -0
  13. package/dist/host.d.ts +12 -0
  14. package/dist/host.d.ts.map +1 -1
  15. package/dist/host.js +58 -10
  16. package/dist/host.js.map +1 -1
  17. package/dist/index.d.ts +309 -119
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +359 -110
  20. package/dist/index.js.map +1 -1
  21. package/dist/input-limit.d.ts +1 -1
  22. package/dist/input-limit.js +1 -1
  23. package/dist/module.d.ts +1 -0
  24. package/dist/module.d.ts.map +1 -1
  25. package/dist/module.js.map +1 -1
  26. package/dist/protocol.d.ts +87 -26
  27. package/dist/protocol.d.ts.map +1 -1
  28. package/dist/protocol.js +60 -23
  29. package/dist/protocol.js.map +1 -1
  30. package/dist/study-document.d.ts +46 -0
  31. package/dist/study-document.d.ts.map +1 -0
  32. package/dist/study-document.js +183 -0
  33. package/dist/study-document.js.map +1 -0
  34. package/dist/study-document.test.d.ts +2 -0
  35. package/dist/study-document.test.d.ts.map +1 -0
  36. package/dist/study-document.test.js +119 -0
  37. package/dist/study-document.test.js.map +1 -0
  38. package/dist/wasm-pkg/tellegen.d.ts +167 -85
  39. package/dist/wasm-pkg/tellegen.js +667 -187
  40. package/dist/wasm-pkg/tellegen_bg.wasm +0 -0
  41. package/dist/wasm-pkg/tellegen_bg.wasm.d.ts +27 -9
  42. package/dist/worker.js +15 -3
  43. package/dist/worker.js.map +1 -1
  44. package/package.json +20 -3
@@ -0,0 +1,4 @@
1
+ // Generated from Rust by study_contract and generate-study-contracts.mjs.
2
+ // Source SHA256: 0873a4e79ae5eede1a044e7ca730d1532eefe9e424c747fffc54c5b8d70b9693
3
+ export {};
4
+ //# sourceMappingURL=study-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"study-contracts.js","sourceRoot":"","sources":["../../src/generated/study-contracts.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,kFAAkF"}
@@ -0,0 +1,2 @@
1
+ export declare const studySchema: Record<string, unknown>;
2
+ //# sourceMappingURL=study-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"study-schema.d.ts","sourceRoot":"","sources":["../../src/generated/study-schema.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAksgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Generated from the Rust Study contract.
2
+ export const studySchema = { "$defs": { "ArtifactKind": { "enum": ["powerio_ir", "geo_layer", "evidence"], "type": "string" }, "Bound": { "description": "A min or max bound, e.g. the lower/upper voltage-magnitude limit.", "enum": ["Min", "Max"], "type": "string" }, "BranchFlow": { "description": "Branch flows, keyed by original branch id (plus the row uid when carried, as in\n[`BusScalar`]). `pf` (from-end active, MW) and `loading` (|S|/limit,\ndimensionless) are present on every formulation that has flows; the reactive\nand to-end legs are `None` on the DC paths.", "properties": { "branch": { "format": "uint", "minimum": 0, "type": "integer" }, "loading": { "format": "double", "type": "number" }, "pf": { "format": "double", "type": "number" }, "pt": { "format": "double", "type": ["number", "null"] }, "qf": { "format": "double", "type": ["number", "null"] }, "qt": { "format": "double", "type": ["number", "null"] }, "uid": { "type": ["string", "null"] } }, "required": ["branch", "pf", "loading"], "type": "object" }, "BranchScalar": { "description": "A branch-indexed voltage product, in squared per unit.", "properties": { "branch": { "format": "uint", "minimum": 0, "type": "integer" }, "value": { "format": "double", "type": "number" } }, "required": ["branch", "value"], "type": "object" }, "BusInjection": { "description": "A nodal net injection (MW / MVAr), keyed by original bus id (plus the row uid\nwhen carried, as in [`BusScalar`]). Injections describe the net nodal power balance.", "properties": { "bus": { "format": "uint", "minimum": 0, "type": "integer" }, "p": { "format": "double", "type": "number" }, "q": { "format": "double", "type": "number" }, "uid": { "type": ["string", "null"] } }, "required": ["bus", "p", "q"], "type": "object" }, "BusScalar": { "description": "A scalar keyed by original bus id (LMP, voltage, angle, squared magnitude).\n`uid` is the bus's powerio row uid when the solved network carried one, so an\noverlay can re-key on stable identity instead of the positional id.", "properties": { "bus": { "format": "uint", "minimum": 0, "type": "integer" }, "uid": { "type": ["string", "null"] }, "value": { "format": "double", "type": "number" } }, "required": ["bus", "value"], "type": "object" }, "Camera": { "additionalProperties": false, "properties": { "bearing": { "format": "double", "type": "number" }, "center": { "items": { "format": "double", "type": "number" }, "maxItems": 2, "minItems": 2, "type": "array" }, "pitch": { "format": "double", "type": "number" }, "zoom": { "format": "double", "type": "number" } }, "required": ["center", "zoom", "bearing", "pitch"], "type": "object" }, "ColMeta": { "description": "Identity and quantity metadata for one column of a [`SensitivityMatrix`].", "properties": { "element": { "$ref": "#/$defs/ElementId" }, "index": { "description": "Dense index of the element this column varies.", "format": "uint", "minimum": 0, "type": "integer" }, "parameter": { "$ref": "#/$defs/Parameter" } }, "required": ["parameter", "element", "index"], "type": "object" }, "Comparison": { "additionalProperties": false, "properties": { "goal": { "type": ["string", "null"] }, "improvement": { "format": "double", "type": ["number", "null"] }, "left": { "type": "string" }, "left_value": { "format": "double", "type": ["number", "null"] }, "left_view": { "anyOf": [{ "$ref": "#/$defs/SolveResponse" }, { "type": "null" }] }, "right": { "type": "string" }, "right_value": { "format": "double", "type": ["number", "null"] }, "right_view": { "anyOf": [{ "$ref": "#/$defs/SolveResponse" }, { "type": "null" }] } }, "required": ["left", "right"], "type": "object" }, "CostApproximation": { "properties": { "bus": { "format": "uint", "minimum": 0, "type": "integer" }, "generator": { "format": "uint", "minimum": 0, "type": "integer" }, "max_breakpoint_error": { "format": "double", "type": "number" }, "model_cost": { "$ref": "#/$defs/GenCost" }, "rms_breakpoint_error": { "format": "double", "type": "number" }, "source_cost": { "$ref": "#/$defs/GenCost" } }, "required": ["generator", "bus", "source_cost", "model_cost", "rms_breakpoint_error", "max_breakpoint_error"], "type": "object" }, "CostPreparation": { "enum": ["exact", "convex_quadratic_fit"], "type": "string" }, "CostTerm": { "description": "Which generation-cost coefficient: the quadratic `cq` or the linear `cl`.", "enum": ["Quadratic", "Linear"], "type": "string" }, "CreateDisplay": { "additionalProperties": false, "properties": { "camera": { "anyOf": [{ "$ref": "#/$defs/Camera" }, { "type": "null" }] }, "case_id": { "type": "string" }, "diagram_camera": { "anyOf": [{ "$ref": "#/$defs/DiagramCamera" }, { "type": "null" }], "default": null }, "geo_layer": { "type": "string" }, "layers": { "default": [], "items": { "type": "string" }, "type": "array" } }, "required": ["case_id", "geo_layer"], "type": "object" }, "CreateStudy": { "additionalProperties": false, "properties": { "base_input": { "default": null, "description": "Original network data before interactive edits, when available.", "type": ["string", "null"] }, "decisions": { "anyOf": [{ "$ref": "#/$defs/DecisionSpace" }, { "type": "null" }] }, "display": { "anyOf": [{ "$ref": "#/$defs/CreateDisplay" }, { "type": "null" }] }, "formulation": { "enum": ["dcopf", "acpf", "socwr"], "type": "string" }, "id": { "type": "string" }, "input": { "type": "string" }, "interpretation": { "default": "", "type": "string" }, "model_details": { "anyOf": [{ "$ref": "#/$defs/ModelDetails" }, { "type": "null" }] }, "objective": { "anyOf": [{ "$ref": "#/$defs/StudyObjective" }, { "type": "null" }] }, "request": { "default": "", "type": "string" }, "solution": { "description": "A saved solution must belong to the supplied instance.", "type": ["string", "null"] }, "success_value": { "format": "double", "type": ["number", "null"] }, "title": { "type": "string" }, "view": { "anyOf": [{ "$ref": "#/$defs/SolveResponse" }, { "type": "null" }] } }, "required": ["id", "title", "input", "formulation"], "type": "object" }, "DecisionKind": { "enum": ["retain", "reject", "recommend", "apply"], "type": "string" }, "DecisionRecord": { "additionalProperties": false, "properties": { "choice": { "$ref": "#/$defs/DecisionKind" }, "evidence": { "items": { "type": "string" }, "type": "array" }, "experiment": { "type": "string" }, "rationale": { "type": "string" }, "state": { "type": ["string", "null"] } }, "required": ["experiment", "choice", "rationale", "evidence"], "type": "object" }, "DecisionSpace": { "additionalProperties": false, "description": "The feasible set, distinct from both the inner problem and the outer goal.", "properties": { "demand": { "anyOf": [{ "$ref": "#/$defs/DemandConstraint" }, { "type": "null" }] }, "max_changed_elements": { "format": "uint", "maximum": 65536, "minimum": 1, "type": "integer" }, "total_budget": { "format": "double", "minimum": 0, "type": "number" }, "variables": { "items": { "$ref": "#/$defs/DecisionVariable" }, "maxItems": 65536, "minItems": 1, "type": "array" } }, "required": ["variables", "total_budget", "max_changed_elements"], "type": "object" }, "DecisionVariable": { "additionalProperties": false, "description": "Bounds and increments apply to changes from the goal's anchor state in a Study.", "properties": { "budget_weight": { "description": "Budget consumption per absolute unit of intervention.", "format": "double", "type": "number" }, "element": { "$ref": "#/$defs/ElementKey" }, "id": { "maxLength": 128, "minLength": 1, "type": "string" }, "increment": { "format": "double", "type": "number" }, "intervention": { "$ref": "#/$defs/Intervention" }, "lower": { "format": "double", "type": "number" }, "upper": { "format": "double", "type": "number" } }, "required": ["id", "element", "intervention", "lower", "upper", "increment", "budget_weight"], "type": "object" }, "DemandAdjustment": { "additionalProperties": false, "properties": { "bus": { "$ref": "#/$defs/ElementKey" }, "delta_mw": { "description": "Signed increment to the selected state's demand, in MW.", "format": "double", "type": "number" } }, "required": ["bus", "delta_mw"], "type": "object" }, "DemandChange": { "additionalProperties": false, "properties": { "base_mw": { "format": "double", "type": "number" }, "bus": { "$ref": "#/$defs/ElementKey" }, "delta_mw": { "format": "double", "type": "number" }, "demand_mw": { "format": "double", "type": "number" } }, "required": ["bus", "base_mw", "demand_mw", "delta_mw"], "type": "object" }, "DemandConstraint": { "oneOf": [{ "additionalProperties": false, "description": "Allocate this additional MW across the declared demand decisions.", "properties": { "increase_mw": { "format": "double", "type": "number" }, "kind": { "const": "placement", "type": "string" } }, "required": ["kind", "increase_mw"], "type": "object" }, { "additionalProperties": false, "description": "Preserve the existing total MW across the declared demand decisions.", "properties": { "kind": { "const": "redistribution", "type": "string" } }, "required": ["kind"], "type": "object" }] }, "DiagramCamera": { "additionalProperties": false, "properties": { "center": { "items": { "format": "double", "type": "number" }, "maxItems": 2, "minItems": 2, "type": "array" }, "scale": { "format": "double", "type": "number" } }, "required": ["center", "scale"], "type": "object" }, "DisplayContext": { "additionalProperties": false, "properties": { "camera": { "anyOf": [{ "$ref": "#/$defs/Camera" }, { "type": "null" }] }, "case_id": { "type": "string" }, "diagram_camera": { "anyOf": [{ "$ref": "#/$defs/DiagramCamera" }, { "type": "null" }], "default": null }, "geography": { "description": "Content-addressed PowerIO GeoLayer used for display, independent of physics.", "type": "string" }, "layers": { "default": [], "items": { "type": "string" }, "type": "array" } }, "required": ["case_id", "geography"], "type": "object" }, "ElementId": { "description": "A source-id reference for a dense row or column, so a [`SensitivityMatrix`]\nself-describes and the api serializes it without re-deriving id maps.", "oneOf": [{ "additionalProperties": false, "properties": { "Bus": { "format": "uint", "minimum": 0, "type": "integer" } }, "required": ["Bus"], "type": "object" }, { "additionalProperties": false, "properties": { "Branch": { "format": "uint", "minimum": 0, "type": "integer" } }, "required": ["Branch"], "type": "object" }, { "additionalProperties": false, "properties": { "Generator": { "format": "uint", "minimum": 0, "type": "integer" } }, "required": ["Generator"], "type": "object" }] }, "ElementKey": { "oneOf": [{ "type": "integer" }, { "type": "string" }] }, "End": { "description": "Which end of a branch a flow is measured at.", "enum": ["From", "To"], "type": "string" }, "ExperimentKind": { "enum": ["inspection", "sensitivity", "planning", "counterfactual", "challenge", "historical_import"], "type": "string" }, "ExperimentRecord": { "additionalProperties": false, "description": "Stated rationales and evidence references describe observable agent actions.", "properties": { "assessed_recommendation": { "type": ["string", "null"] }, "evidence": { "items": { "type": "string" }, "type": "array" }, "goal": { "type": ["string", "null"] }, "kind": { "$ref": "#/$defs/ExperimentKind" }, "rationale": { "type": "string" }, "result_states": { "items": { "type": "string" }, "type": "array" }, "solve_count": { "format": "uint", "minimum": 0, "type": "integer" }, "start_state": { "description": "Historical imports can lack recoverable electrical state and goal data.", "type": ["string", "null"] }, "termination": { "type": "string" }, "trials": { "items": { "$ref": "#/$defs/TrialRecord" }, "type": "array" } }, "required": ["kind", "rationale", "evidence", "trials", "result_states", "solve_count", "termination"], "type": "object" }, "ExperimentSummary": { "additionalProperties": false, "properties": { "goal": { "type": ["string", "null"] }, "id": { "type": "string" }, "kind": { "$ref": "#/$defs/ExperimentKind" }, "rationale": { "type": "string" }, "result_states": { "items": { "type": "string" }, "type": "array" }, "solve_count": { "format": "uint", "minimum": 0, "type": "integer" }, "start_state": { "type": ["string", "null"] }, "termination": { "type": "string" }, "trial_count": { "format": "uint", "minimum": 0, "type": "integer" } }, "required": ["id", "kind", "rationale", "solve_count", "trial_count", "result_states", "termination"], "type": "object" }, "GB": { "description": "Conductance `g` or susceptance `b`, the real/imaginary parts of an admittance.", "enum": ["Conductance", "Susceptance"], "type": "string" }, "GenCost": { "description": "A generator cost curve (`mpc.gencost` row).", "properties": { "coeffs": { "description": "Raw coefficients, highest order first for the polynomial model:\n`[c_{k-1}, …, c1, c0]`.", "items": { "format": "double", "type": "number" }, "type": "array" }, "model": { "description": "1 = piecewise linear, 2 = polynomial.", "format": "uint8", "maximum": 255, "minimum": 0, "type": "integer" }, "ncost": { "description": "Number of cost coefficients (polynomial) or breakpoints (piecewise).", "format": "uint", "minimum": 0, "type": "integer" }, "shutdown": { "format": "double", "type": "number" }, "startup": { "format": "double", "type": "number" } }, "required": ["model", "startup", "shutdown", "ncost", "coeffs"], "type": "object" }, "GenDispatch": { "description": "Generator dispatch, keyed by original generator id. `qg` is `None` on the DC paths.", "properties": { "bus": { "description": "Original bus identity, allowing exact aggregation of co-located dispatch.", "format": "uint", "minimum": 0, "type": ["integer", "null"] }, "gen": { "format": "uint", "minimum": 0, "type": "integer" }, "pg": { "format": "double", "type": "number" }, "qg": { "format": "double", "type": ["number", "null"] } }, "required": ["gen", "pg"], "type": "object" }, "GoalRevision": { "additionalProperties": false, "description": "A goal revision retains its own anchor and interpretation.", "properties": { "anchor_state": { "type": "string" }, "decisions": { "$ref": "#/$defs/DecisionSpace" }, "interpretation": { "type": "string" }, "objective": { "$ref": "#/$defs/StudyObjective" }, "parent": { "type": ["string", "null"] }, "request": { "type": "string" }, "success_value": { "format": "double", "type": ["number", "null"] } }, "required": ["anchor_state", "request", "interpretation", "objective", "decisions"], "type": "object" }, "Intervention": { "description": "A numerical intervention supported by the existing solvers.", "enum": ["branch_rating", "active_demand"], "type": "string" }, "Iterations": { "anyOf": [{ "description": "Interior-point iterate trace (dcopf / socwr).", "items": { "$ref": "#/$defs/SolveIteration" }, "type": "array" }, { "description": "Newton iteration count and final infinity-norm mismatch (acpf).", "properties": { "count": { "format": "uint", "minimum": 0, "type": "integer" }, "residual": { "format": "double", "type": "number" } }, "required": ["count", "residual"], "type": "object" }], "description": "The convergence record. OPF paths carry the full interior-point trace (for the\nsolve-card sparkline); the AC power flow carries its Newton count and final\nmismatch. Untagged: the OPF arm serializes to the same bare array the DC OPF\nalways returned." }, "ModelDetails": { "properties": { "approximations": { "items": { "$ref": "#/$defs/CostApproximation" }, "type": "array" }, "method": { "$ref": "#/$defs/CostPreparation" }, "model": { "type": "string" }, "quantity": { "type": "string" }, "source": { "type": "string" }, "units": { "type": "string" } }, "required": ["method", "source", "model", "quantity", "units", "approximations"], "type": "object" }, "ObservableWeight": { "additionalProperties": false, "description": "A weighted observable in the units reported by the selected formulation.", "properties": { "element": { "$ref": "#/$defs/ElementKey" }, "weight": { "format": "double", "type": "number" } }, "required": ["element", "weight"], "type": "object" }, "Operand": { "description": "What a sensitivity is taken *of*, named for the physical power quantity rather\nthan a formulation's internal variable. The orthogonal sub-axes (active/reactive,\nfrom/to, voltage representation) are visible to the type system; each formulation\nmaps a request to its own KKT rows or returns [`SensError::Unsupported`].\n\nThe dialects fold into one vocabulary: DC `Angle` is `Voltage(Angle)`, the conic\nsquared magnitude `w` is `Voltage(Squared)`, the nodal price is `Price(Active)`.", "oneOf": [{ "additionalProperties": false, "description": "Nodal-balance dual (the LMP for active power, the reactive price for\nreactive), per bus.", "properties": { "Price": { "$ref": "#/$defs/Power" } }, "required": ["Price"], "type": "object" }, { "additionalProperties": false, "description": "Generator dispatch `pg` / `qg`, per generator.", "properties": { "Dispatch": { "$ref": "#/$defs/Power" } }, "required": ["Dispatch"], "type": "object" }, { "additionalProperties": false, "description": "Branch active/reactive flow at the from/to end, per branch.", "properties": { "Flow": { "properties": { "end": { "$ref": "#/$defs/End" }, "power": { "$ref": "#/$defs/Power" } }, "required": ["power", "end"], "type": "object" } }, "required": ["Flow"], "type": "object" }, { "additionalProperties": false, "description": "Bus voltage in the formulation's representation (`vm` / `va` / `w` / `wr` /\n`wi`), per bus.", "properties": { "Voltage": { "$ref": "#/$defs/VoltageKind" } }, "required": ["Voltage"], "type": "object" }] }, "Parameter": { "description": "What a sensitivity is taken *with respect to* — the parameter whose hand-derived\n`dK/dp` column drives the solve.", "oneOf": [{ "additionalProperties": false, "description": "Bus active/reactive demand `pd` / `qd`, per bus.", "properties": { "Demand": { "$ref": "#/$defs/Power" } }, "required": ["Demand"], "type": "object" }, { "additionalProperties": false, "description": "Generation cost coefficient, per generator.", "properties": { "Cost": { "$ref": "#/$defs/CostTerm" } }, "required": ["Cost"], "type": "object" }, { "const": "LineLimit", "description": "DC thermal limit `fmax` / AC-conic apparent-power `|S|` limit, per branch.", "type": "string" }, { "additionalProperties": false, "description": "Branch series admittance `g` / `b`, per branch.", "properties": { "SeriesAdmittance": { "$ref": "#/$defs/GB" } }, "required": ["SeriesAdmittance"], "type": "object" }, { "additionalProperties": false, "description": "Bus shunt admittance `gs` / `bs`, per bus.", "properties": { "ShuntAdmittance": { "$ref": "#/$defs/GB" } }, "required": ["ShuntAdmittance"], "type": "object" }, { "additionalProperties": false, "description": "Voltage-magnitude bound right-hand side (the `w = |V|²` bound), per bus.", "properties": { "VoltageBound": { "$ref": "#/$defs/Bound" } }, "required": ["VoltageBound"], "type": "object" }, { "additionalProperties": false, "description": "Generator output bound right-hand side (`pmax` / `pmin` / `qmax` / `qmin`),\nper generator.", "properties": { "GenBound": { "properties": { "bound": { "$ref": "#/$defs/Bound" }, "power": { "$ref": "#/$defs/Power" } }, "required": ["power", "bound"], "type": "object" } }, "required": ["GenBound"], "type": "object" }, { "additionalProperties": false, "description": "Transformer tap ratio / phase shift, per branch.", "properties": { "Transformer": { "$ref": "#/$defs/TapKind" } }, "required": ["Transformer"], "type": "object" }, { "const": "Switching", "description": "Branch switching state `sw` in `[0, 1]`, per branch.", "type": "string" }] }, "Power": { "description": "Active or reactive power. The orthogonal P/Q sub-axis shared by prices,\ndispatch, flows, and demand.", "enum": ["Active", "Reactive"], "type": "string" }, "Problem": { "description": "Which problem to solve. The convex/power flow solve paths, as the lowercase JSON\ntags `\"dcpf\"`/`\"dcopf\"`/`\"acpf\"`/`\"socwr\"`. A plain (not internally tagged) enum\nso a request that omits it defaults to [`DcOpf`](Problem::DcOpf), and `{}` is a\nvalid base-case DC OPF request.\n\nThe `\"acopf\"` tag (full nonlinear AC OPF) is retained for wire-format stability\nbut is not solved by this build: [`capabilities_json`] reports it unavailable and\nrequesting it returns a clean `Err`.", "oneOf": [{ "const": "dcpf", "description": "DC power flow: angles and flows at the fixed generator setpoints. No prices,\nno dispatch, no sensitivity.", "type": "string" }, { "const": "dcopf", "description": "DC OPF: the LMP / dispatch / flow workhorse. Differentiable via the DC KKT.", "type": "string" }, { "const": "acpf", "description": "AC polar Newton power flow. Voltages and nodal injections. Differentiable\nvia the AC Newton system.", "type": "string" }, { "const": "socwr", "description": "SOCWR (Jabr) conic relaxation of AC OPF. Differentiable via the conic KKT.", "type": "string" }, { "const": "acopf", "description": "Full nonlinear AC OPF. Not available in this build (the dispatch errors\ncleanly); the tag is kept so the JSON contract stays stable.", "type": "string" }] }, "RowMeta": { "description": "Identity and quantity metadata for one row of a [`SensitivityMatrix`].", "properties": { "element": { "$ref": "#/$defs/ElementId" }, "index": { "description": "Dense index of the element this row reports.", "format": "uint", "minimum": 0, "type": "integer" }, "operand": { "$ref": "#/$defs/Operand" } }, "required": ["operand", "element", "index"], "type": "object" }, "SearchOptions": { "additionalProperties": false, "properties": { "beam_width": { "format": "uint", "maximum": 32, "minimum": 1, "type": "integer" }, "max_iterations": { "format": "uint", "maximum": 256, "minimum": 0, "type": "integer" }, "max_solves": { "format": "uint", "maximum": 256, "minimum": 0, "type": "integer" }, "min_improvement": { "format": "double", "minimum": 0, "type": "number" } }, "required": ["max_solves", "beam_width", "max_iterations", "min_improvement"], "type": "object" }, "SensitivityMatrix": { "description": "A self-describing sensitivity result: `values[r][c] = d(rows[r])/d(cols[c])`,\nwith row and column metadata naming each quantity and its source element, and the\nserved-unit label.", "properties": { "cols": { "items": { "$ref": "#/$defs/ColMeta" }, "type": "array" }, "rows": { "items": { "$ref": "#/$defs/RowMeta" }, "type": "array" }, "units": { "type": "string" }, "values": { "description": "`values[r][c] = d(operand_r)/d(parameter_c)`, in the units named by `units`. The\nengine produces per-unit values; the api edge rescales to served units.", "items": { "items": { "format": "double", "type": "number" }, "type": "array" }, "type": "array" } }, "required": ["values", "rows", "cols", "units"], "type": "object" }, "SolveIteration": { "description": "One interior-point iterate: the iteration index, the primal objective, and\nthe primal and dual residuals. Collected once per Clarabel iteration to draw\nthe convergence plot. Shape matches the frontend `SolveIteration`.", "properties": { "inf_du": { "format": "double", "type": "number" }, "inf_pr": { "format": "double", "type": "number" }, "iter": { "format": "uint32", "minimum": 0, "type": "integer" }, "objective": { "format": "double", "type": "number" } }, "required": ["iter", "objective", "inf_pr", "inf_du"], "type": "object" }, "SolveResponse": { "description": "The formulation-agnostic solve result. A superset: every block is optional, and\neach formulation fills what it produces. Powers are MW/MVAr, nodal values are\nin objective units per selected power unit, angles radians, `vm` per unit, and\n`w = |V|^2` per unit squared. Element ids\nare the original bus/branch/generator ids, so the frontend joins straight onto\nits case.", "properties": { "dispatch": { "items": { "$ref": "#/$defs/GenDispatch" }, "type": ["array", "null"] }, "flows": { "items": { "$ref": "#/$defs/BranchFlow" }, "type": ["array", "null"] }, "formulation": { "$ref": "#/$defs/Problem", "description": "The formulation that produced this, echoed for the client." }, "injections": { "description": "Nodal injections (acpf), MW/MVAr.", "items": { "$ref": "#/$defs/BusInjection" }, "type": ["array", "null"] }, "iterations": { "anyOf": [{ "$ref": "#/$defs/Iterations" }, { "type": "null" }] }, "lmp": { "description": "Active nodal price when the solved OPF declares a network generator\ncost objective. Feasibility solves leave this absent.", "items": { "$ref": "#/$defs/BusScalar" }, "type": ["array", "null"] }, "lmp_q": { "description": "Reactive nodal price. Always `None` in this build; the field is retained for\nwire-format stability.", "items": { "$ref": "#/$defs/BusScalar" }, "type": ["array", "null"] }, "objective": { "format": "double", "type": ["number", "null"] }, "sensitivities": { "description": "One self-describing matrix per requested cell, in request order. Each carries\nits own row/column element ids and the served-unit label.", "items": { "$ref": "#/$defs/SensitivityMatrix" }, "type": "array" }, "status": { "$ref": "#/$defs/SolveStatus" }, "va": { "description": "Voltage angle, radians (every path except socwr, which is W-space).", "items": { "$ref": "#/$defs/BusScalar" }, "type": ["array", "null"] }, "vm": { "description": "Voltage magnitude, per unit (ACPF or square root of SOCWR squared magnitude).", "items": { "$ref": "#/$defs/BusScalar" }, "type": ["array", "null"] }, "w": { "description": "Squared voltage magnitude `w = |V|^2`, per unit squared (socwr). The conic\nrelaxation does not guarantee a globally consistent set of voltage angles.", "items": { "$ref": "#/$defs/BusScalar" }, "type": ["array", "null"] }, "wi": { "items": { "$ref": "#/$defs/BranchScalar" }, "type": ["array", "null"] }, "wr": { "description": "Real and imaginary oriented branch voltage products (SOCWR).", "items": { "$ref": "#/$defs/BranchScalar" }, "type": ["array", "null"] } }, "required": ["formulation", "status"], "type": "object" }, "SolveStatus": { "description": "A solve outcome that succeeded. A failed solve is the `Err` arm of a solve entry.", "oneOf": [{ "const": "optimal", "description": "An OPF reached optimality.", "type": "string" }, { "const": "feasible", "description": "A power flow converged to a feasible point.", "type": "string" }] }, "StateNode": { "additionalProperties": false, "description": "An immutable electrical state. Inspection never implies application.", "properties": { "formulation": { "$ref": "#/$defs/Problem" }, "input": { "type": "string" }, "label": { "type": "string" }, "parent": { "type": ["string", "null"] }, "solution": { "type": ["string", "null"] }, "view": { "type": ["string", "null"] } }, "required": ["formulation", "input", "label"], "type": "object" }, "StudyArtifact": { "additionalProperties": false, "properties": { "kind": { "$ref": "#/$defs/ArtifactKind" }, "text": { "type": "string" } }, "required": ["kind", "text"], "type": "object" }, "StudyBundle": { "additionalProperties": false, "description": "Approvals are intentionally absent from the portable document.", "properties": { "artifacts": { "additionalProperties": { "$ref": "#/$defs/StudyArtifact" }, "type": "object" }, "document": { "$ref": "#/$defs/StudyDocument" } }, "required": ["document", "artifacts"], "type": "object" }, "StudyDocument": { "additionalProperties": false, "description": "A document contains references, while the bundle owns deduplicated artifacts.", "properties": { "active_goal": { "type": ["string", "null"] }, "applied_state": { "type": ["string", "null"] }, "base_input": { "description": "Original network input, retained independently of the starting operating point.", "type": ["string", "null"] }, "decisions": { "additionalProperties": { "$ref": "#/$defs/DecisionRecord" }, "type": "object" }, "display": { "anyOf": [{ "$ref": "#/$defs/DisplayContext" }, { "type": "null" }] }, "experiment_order": { "items": { "type": "string" }, "type": "array" }, "experiments": { "additionalProperties": { "$ref": "#/$defs/ExperimentRecord" }, "type": "object" }, "goals": { "additionalProperties": { "$ref": "#/$defs/GoalRevision" }, "type": "object" }, "id": { "type": "string" }, "inspected_state": { "type": ["string", "null"] }, "model_details": { "anyOf": [{ "$ref": "#/$defs/ModelDetails" }, { "type": "null" }] }, "recommended_state": { "type": ["string", "null"] }, "revision": { "format": "uint64", "minimum": 0, "type": "integer" }, "schema": { "type": "string" }, "states": { "additionalProperties": { "$ref": "#/$defs/StateNode" }, "type": "object" }, "title": { "type": "string" }, "version": { "format": "uint32", "minimum": 0, "type": "integer" } }, "required": ["schema", "version", "id", "title", "revision", "goals", "states", "experiments", "experiment_order", "decisions"], "type": "object" }, "StudyObjective": { "description": "A scalar goal over the exact operating point and explicit interventions.", "oneOf": [{ "additionalProperties": false, "properties": { "kind": { "const": "weighted_observable", "type": "string" }, "operand": { "$ref": "#/$defs/Operand" }, "weights": { "items": { "$ref": "#/$defs/ObservableWeight" }, "maxItems": 65536, "minItems": 1, "type": "array" } }, "required": ["kind", "operand", "weights"], "type": "object" }, { "additionalProperties": false, "properties": { "kind": { "const": "sum", "type": "string" }, "terms": { "items": { "$ref": "#/$defs/StudyObjective" }, "maxItems": 65536, "minItems": 1, "type": "array" } }, "required": ["kind", "terms"], "type": "object" }, { "additionalProperties": false, "properties": { "expression": { "$ref": "#/$defs/StudyObjective" }, "factor": { "format": "double", "type": "number" }, "kind": { "const": "scale", "type": "string" } }, "required": ["kind", "factor", "expression"], "type": "object" }, { "additionalProperties": false, "properties": { "expression": { "$ref": "#/$defs/StudyObjective" }, "kind": { "const": "squared_target", "type": "string" }, "target": { "format": "double", "type": "number" } }, "required": ["kind", "target", "expression"], "type": "object" }, { "additionalProperties": false, "properties": { "decision": { "type": "string" }, "kind": { "const": "intervention_penalty", "type": "string" }, "linear": { "format": "double", "type": "number" }, "quadratic": { "format": "double", "type": "number" } }, "required": ["kind", "decision", "linear", "quadratic"], "type": "object" }] }, "StudyOperation": { "oneOf": [{ "additionalProperties": false, "properties": { "kind": { "const": "inspect", "type": "string" }, "state": { "type": "string" } }, "required": ["kind", "state"], "type": "object" }, { "additionalProperties": false, "properties": { "kind": { "const": "branch", "type": "string" }, "rationale": { "type": "string" }, "state": { "type": "string" } }, "required": ["kind", "state", "rationale"], "type": "object" }, { "additionalProperties": false, "properties": { "goal": { "$ref": "#/$defs/GoalRevision" }, "kind": { "const": "revise_goal", "type": "string" } }, "required": ["kind", "goal"], "type": "object" }, { "additionalProperties": false, "properties": { "goal": { "type": ["string", "null"] }, "kind": { "const": "compare", "type": "string" }, "left": { "type": "string" }, "right": { "type": "string" } }, "required": ["kind", "left", "right"], "type": "object" }, { "additionalProperties": false, "properties": { "goal": { "type": "string" }, "kind": { "const": "propose", "type": "string" }, "options": { "$ref": "#/$defs/SearchOptions" }, "rationale": { "type": "string" }, "state": { "type": "string" } }, "required": ["kind", "state", "goal", "options", "rationale"], "type": "object" }, { "additionalProperties": false, "properties": { "changes": { "items": { "$ref": "#/$defs/DemandAdjustment" }, "maxItems": 65536, "minItems": 1, "type": "array" }, "constrain_to_goal": { "default": true, "type": "boolean" }, "goal": { "type": ["string", "null"] }, "kind": { "const": "edit_demand", "type": "string" }, "rationale": { "type": "string" }, "state": { "type": "string" } }, "required": ["kind", "state", "changes", "rationale"], "type": "object" }, { "additionalProperties": false, "properties": { "goal": { "type": ["string", "null"] }, "kind": { "const": "restore_base", "type": "string" }, "rationale": { "type": "string" }, "state": { "type": "string" } }, "required": ["kind", "state", "rationale"], "type": "object" }, { "additionalProperties": false, "properties": { "assessed_recommendation": { "type": ["string", "null"] }, "evidence": true, "goal": { "type": ["string", "null"] }, "kind": { "const": "record_evidence", "type": "string" }, "rationale": { "type": "string" }, "sensitivity": { "type": "boolean" }, "state": { "type": "string" } }, "required": ["kind", "state", "sensitivity", "rationale", "evidence"], "type": "object" }, { "additionalProperties": false, "description": "The calling UI or native user action must authorize this exact binding.", "properties": { "base_state": { "type": "string" }, "goal": { "type": ["string", "null"] }, "kind": { "const": "apply", "type": "string" }, "proposal": { "type": "string" }, "state": { "type": "string" } }, "required": ["kind", "proposal", "state", "base_state"], "type": "object" }] }, "StudyOperationResult": { "additionalProperties": false, "properties": { "comparison": { "anyOf": [{ "$ref": "#/$defs/Comparison" }, { "type": "null" }] }, "demand_changes": { "default": null, "items": { "$ref": "#/$defs/DemandChange" }, "type": ["array", "null"] }, "experiment": { "type": ["string", "null"] }, "inspected_view": { "anyOf": [{ "$ref": "#/$defs/SolveResponse" }, { "type": "null" }] }, "summary": { "$ref": "#/$defs/StudySummary" } }, "required": ["summary"], "type": "object" }, "StudyRequest": { "additionalProperties": false, "properties": { "expected_revision": { "format": "uint64", "minimum": 0, "type": "integer" }, "operation": { "$ref": "#/$defs/StudyOperation" } }, "required": ["expected_revision", "operation"], "type": "object" }, "StudySummary": { "additionalProperties": false, "properties": { "active_goal": { "maxItems": 2, "minItems": 2, "prefixItems": [{ "type": "string" }, { "$ref": "#/$defs/GoalRevision" }], "type": ["array", "null"] }, "applied_state": { "type": ["string", "null"] }, "experiment_count": { "format": "uint", "minimum": 0, "type": "integer" }, "id": { "type": "string" }, "inspected_state": { "type": ["string", "null"] }, "recent_experiments": { "items": { "$ref": "#/$defs/ExperimentSummary" }, "type": "array" }, "recommended_state": { "type": ["string", "null"] }, "revision": { "format": "uint64", "minimum": 0, "type": "integer" }, "state_count": { "format": "uint", "minimum": 0, "type": "integer" }, "title": { "type": "string" }, "unavailable_historical_states": { "format": "uint", "minimum": 0, "type": "integer" } }, "required": ["id", "title", "revision", "state_count", "experiment_count", "recent_experiments", "unavailable_historical_states"], "type": "object" }, "TapKind": { "description": "A transformer control: the tap ratio or the phase-shift angle.", "enum": ["Ratio", "PhaseShift"], "type": "string" }, "TrialRecord": { "additionalProperties": false, "properties": { "accepted": { "type": "boolean" }, "changes": { "items": { "format": "double", "type": "number" }, "type": "array" }, "evidence": { "items": { "type": "string" }, "type": "array" }, "exact_value": { "format": "double", "type": ["number", "null"] }, "failure": { "type": ["string", "null"] }, "predicted_value": { "format": "double", "type": ["number", "null"] }, "state": { "type": ["string", "null"] } }, "required": ["changes", "accepted", "evidence"], "type": "object" }, "VoltageKind": { "description": "How a voltage operand is represented: polar (`Magnitude`, `Angle`) for the AC\npower flow, or the W-space lift (`Squared` = `|V|²`, `ProductReal` = `Re(Vi Vj*)`,\n`ProductImag` = `Im(Vi Vj*)`) for the conic relaxation.", "enum": ["Magnitude", "Angle", "Squared", "ProductReal", "ProductImag"], "type": "string" } }, "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "bundle": { "$ref": "#/$defs/StudyBundle" }, "create": { "$ref": "#/$defs/CreateStudy" }, "request": { "$ref": "#/$defs/StudyRequest" }, "response": { "$ref": "#/$defs/StudyOperationResult" } }, "required": ["bundle", "create", "request", "response"], "title": "StudyContract", "type": "object", "x-rust-source-sha256": "0873a4e79ae5eede1a044e7ca730d1532eefe9e424c747fffc54c5b8d70b9693" };
3
+ //# sourceMappingURL=study-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"study-schema.js","sourceRoot":"","sources":["../../src/generated/study-schema.ts"],"names":[],"mappings":"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"}
package/dist/host.d.ts CHANGED
@@ -7,7 +7,19 @@
7
7
  import { type EngineRequest } from "./protocol.js";
8
8
  export interface EngineHost {
9
9
  call(req: EngineRequest): Promise<string | null>;
10
+ /** Finish the current exact trial, then preserve a cancelled planning record. */
11
+ requestStop?(): void;
12
+ /** Stop this host's current work. Returns false for the direct host, whose
13
+ * synchronous wasm call cannot be interrupted. Callers still check the
14
+ * signal after that call and discard an aborted result before publishing
15
+ * state. */
16
+ cancel?(reason: Error): boolean;
10
17
  }
11
18
  export declare const directHost: EngineHost;
12
19
  export declare function engineHost(): EngineHost;
20
+ /** A separate worker host for interruptible long running work. Terminating it
21
+ * does not invalidate the interactive studies held by the shared host. A
22
+ * runtime without Worker falls back to synchronous wasm: cancellation then
23
+ * takes effect after the call returns, before the caller publishes its result. */
24
+ export declare function isolatedEngineHost(): EngineHost;
13
25
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;+DAK+D;AAG/D,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAClD;AAID,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAC;AA+EF,wBAAgB,UAAU,IAAI,UAAU,CAGvC"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;+DAK+D;AAG/D,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,iFAAiF;IACjF,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB;;;gBAGY;IACZ,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC;CACjC;AAOD,eAAO,MAAM,UAAU,EAAE,UAOxB,CAAC;AAiGF,wBAAgB,UAAU,IAAI,UAAU,CAGvC;AAED;;;kFAGkF;AAClF,wBAAgB,kBAAkB,IAAI,UAAU,CAG/C"}
package/dist/host.js CHANGED
@@ -6,13 +6,20 @@
6
6
  * failure mode of a browser that cannot run module workers. */
7
7
  import { engineModule } from "./module.js";
8
8
  import { runRequest, } from "./protocol.js";
9
- const directStudies = new Map();
9
+ const directHandles = {
10
+ studies: new Map(),
11
+ mcPfSessions: new Map(),
12
+ };
10
13
  export const directHost = {
11
14
  async call(req) {
12
- return runRequest(await engineModule(), directStudies, req);
15
+ return runRequest(await engineModule(), directHandles, req);
16
+ },
17
+ cancel() {
18
+ return false;
13
19
  },
14
20
  };
15
21
  class WorkerHost {
22
+ fallback;
16
23
  #worker;
17
24
  #seq = 0;
18
25
  #pending = new Map();
@@ -21,7 +28,8 @@ class WorkerHost {
21
28
  * answered (requests reroute there), without one when it crashed mid
22
29
  * session (requests reject; the next engineHost() spawns a fresh worker). */
23
30
  #failed = null;
24
- constructor(worker) {
31
+ constructor(worker, fallback = directHost) {
32
+ this.fallback = fallback;
25
33
  this.#worker = worker;
26
34
  worker.onmessage = (ev) => {
27
35
  this.#answered = true;
@@ -53,11 +61,11 @@ class WorkerHost {
53
61
  // The worker never started (module workers unsupported, script blocked):
54
62
  // everything moves to the main thread, including the pending requests —
55
63
  // their study handles stay valid because the caller allocated them.
56
- this.#failed = { forward: directHost, error };
64
+ this.#failed = { forward: this.fallback, error };
57
65
  if (activeHost === this)
58
- activeHost = directHost;
66
+ activeHost = this.fallback;
59
67
  for (const p of pending)
60
- directHost.call(p.req).then(p.resolve, p.reject);
68
+ this.fallback.call(p.req).then(p.resolve, p.reject);
61
69
  return;
62
70
  }
63
71
  // A crash mid session loses the worker's studies; callers see their next
@@ -82,20 +90,60 @@ class WorkerHost {
82
90
  this.#worker.postMessage(msg);
83
91
  });
84
92
  }
93
+ requestStop() {
94
+ for (const [id, pending] of this.#pending) {
95
+ if (pending.req.op === "study_document_run")
96
+ this.#worker.postMessage({ op: "cancel_study_operation", id });
97
+ }
98
+ this.#failed?.forward?.requestStop?.();
99
+ }
100
+ cancel(reason) {
101
+ if (this.#failed)
102
+ return false;
103
+ const pending = [...this.#pending.values()];
104
+ this.#pending.clear();
105
+ this.#worker.terminate();
106
+ this.#failed = { forward: null, error: reason };
107
+ if (activeHost === this)
108
+ activeHost = null;
109
+ for (const call of pending)
110
+ call.reject(reason);
111
+ return true;
112
+ }
85
113
  }
86
114
  let activeHost = null;
87
115
  export function engineHost() {
88
116
  activeHost ??= createHost();
89
117
  return activeHost;
90
118
  }
91
- function createHost() {
119
+ /** A separate worker host for interruptible long running work. Terminating it
120
+ * does not invalidate the interactive studies held by the shared host. A
121
+ * runtime without Worker falls back to synchronous wasm: cancellation then
122
+ * takes effect after the call returns, before the caller publishes its result. */
123
+ export function isolatedEngineHost() {
124
+ const fallback = isolatedDirectHost();
125
+ return createHost(fallback);
126
+ }
127
+ function isolatedDirectHost() {
128
+ let stopped = false;
129
+ const handles = {
130
+ studies: new Map(),
131
+ mcPfSessions: new Map(),
132
+ };
133
+ return {
134
+ async call(req) { return runRequest(await engineModule(), handles, req, () => stopped); },
135
+ requestStop() { stopped = true; },
136
+ cancel() { stopped = true; return false; },
137
+ };
138
+ }
139
+ function createHost(fallback = directHost) {
92
140
  if (typeof Worker === "undefined")
93
- return directHost;
141
+ return fallback;
94
142
  try {
95
- return new WorkerHost(new Worker(new URL("./worker.js", import.meta.url), { type: "module" }));
143
+ return new WorkerHost(new Worker(new URL("./worker.js", import.meta.url), { type: "module" }), fallback);
96
144
  }
97
145
  catch {
98
- return directHost;
146
+ return fallback;
99
147
  }
100
148
  }
101
149
  //# sourceMappingURL=host.js.map
package/dist/host.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}