@ohtaman/washi 0.4.0 → 0.5.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 (97) hide show
  1. package/README.ja.md +100 -107
  2. package/README.md +98 -105
  3. package/README.zh-CN.md +101 -108
  4. package/dist/browser/highs-worker.js +21 -3
  5. package/dist/browser/loader-CtaDHef_.js +273 -0
  6. package/dist/browser/solvers/glpk.js +433 -286
  7. package/dist/browser/solvers/glpk.min.js +1 -1
  8. package/dist/browser/solvers/z3.js +1002 -981
  9. package/dist/browser/solvers/z3.min.js +2 -2
  10. package/dist/browser/washi.js +2129 -676
  11. package/dist/browser/washi.min.js +4 -4
  12. package/dist/lib/highs-worker.js +21 -3
  13. package/dist/lib/loader-DmNC_UNk.js +279 -0
  14. package/dist/lib/registry-BEfvpZW3.js +951 -0
  15. package/dist/lib/solvers/glpk.js +201 -90
  16. package/dist/lib/solvers/z3.js +399 -259
  17. package/dist/lib/washi.js +1627 -988
  18. package/dist/types/index.d.ts +4 -4
  19. package/dist/types/index.d.ts.map +1 -1
  20. package/dist/types/modeler/big-m.d.ts +75 -0
  21. package/dist/types/modeler/big-m.d.ts.map +1 -0
  22. package/dist/types/modeler/boolean-expr.d.ts +103 -14
  23. package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
  24. package/dist/types/modeler/constraint.d.ts +36 -9
  25. package/dist/types/modeler/constraint.d.ts.map +1 -1
  26. package/dist/types/modeler/expression.d.ts +113 -28
  27. package/dist/types/modeler/expression.d.ts.map +1 -1
  28. package/dist/types/modeler/index.d.ts +10 -6
  29. package/dist/types/modeler/index.d.ts.map +1 -1
  30. package/dist/types/modeler/lp-writer.d.ts +27 -2
  31. package/dist/types/modeler/lp-writer.d.ts.map +1 -1
  32. package/dist/types/modeler/model.d.ts +478 -131
  33. package/dist/types/modeler/model.d.ts.map +1 -1
  34. package/dist/types/modeler/objective.d.ts +59 -0
  35. package/dist/types/modeler/objective.d.ts.map +1 -0
  36. package/dist/types/modeler/parser.d.ts +34 -10
  37. package/dist/types/modeler/parser.d.ts.map +1 -1
  38. package/dist/types/modeler/quad-expr.d.ts +26 -7
  39. package/dist/types/modeler/quad-expr.d.ts.map +1 -1
  40. package/dist/types/modeler/solution-validator.d.ts +93 -0
  41. package/dist/types/modeler/solution-validator.d.ts.map +1 -0
  42. package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -2
  43. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -1
  44. package/dist/types/modeler/solvers/highs/loader.d.ts +36 -11
  45. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
  46. package/dist/types/modeler/solvers/highs/solver.d.ts +11 -4
  47. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
  48. package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -1
  49. package/dist/types/modeler/solvers/mock.d.ts +14 -5
  50. package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
  51. package/dist/types/modeler/solvers/types.d.ts +71 -11
  52. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  53. package/dist/types/modeler/solvers/z3/loader.d.ts +2 -3
  54. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -1
  55. package/dist/types/modeler/solvers/z3/solver.d.ts +15 -5
  56. package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -1
  57. package/dist/types/modeler/types.d.ts +59 -1
  58. package/dist/types/modeler/types.d.ts.map +1 -1
  59. package/dist/types/modeler/validation.d.ts +56 -0
  60. package/dist/types/modeler/validation.d.ts.map +1 -0
  61. package/dist/types/modeler/variable.d.ts +48 -14
  62. package/dist/types/modeler/variable.d.ts.map +1 -1
  63. package/docs/examples/diet-sensitivity.md +90 -0
  64. package/docs/examples/ecommerce-coupons.md +106 -0
  65. package/docs/examples/index.md +53 -0
  66. package/docs/examples/knapsack.md +60 -0
  67. package/docs/examples/portfolio-qp.md +83 -0
  68. package/docs/examples/production.md +51 -0
  69. package/docs/examples/shift-scheduling.md +175 -0
  70. package/docs/examples/smt-security.md +74 -0
  71. package/docs/examples/transportation.md +90 -0
  72. package/docs/examples/unsat-core.md +64 -0
  73. package/docs/getting-started/ai-agents.md +267 -0
  74. package/docs/getting-started/cross-origin.md +87 -0
  75. package/docs/getting-started/index.md +116 -0
  76. package/docs/getting-started/runtimes.md +227 -0
  77. package/docs/guide/constraints.md +177 -0
  78. package/docs/guide/expressions.md +204 -0
  79. package/docs/guide/objectives.md +170 -0
  80. package/docs/guide/unsat-core.md +147 -0
  81. package/docs/guide/variables.md +188 -0
  82. package/docs/ja/getting-started/ai-agents.md +266 -0
  83. package/docs/solvers/custom-solver.md +525 -0
  84. package/docs/solvers/glpk.md +66 -0
  85. package/docs/solvers/highs.md +93 -0
  86. package/docs/solvers/index.md +42 -0
  87. package/docs/solvers/z3.md +78 -0
  88. package/docs/zh/getting-started/ai-agents.md +266 -0
  89. package/llms-full.txt +3249 -0
  90. package/llms.txt +197 -0
  91. package/package.json +18 -5
  92. package/skills/washi/SKILL.md +197 -0
  93. package/dist/browser/loader-CVt4CloI.js +0 -58
  94. package/dist/lib/async-mutex-Duo4jwzn.js +0 -195
  95. package/dist/lib/constraint-BRuB3ooC.js +0 -90
  96. package/dist/lib/loader-Dti0v9yC.js +0 -50
  97. package/dist/lib/registry-DksqCSjI.js +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/modeler/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/modeler/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { LinExpr } from "./expression.js";
2
+ import { QuadExpr } from "./quad-expr.js";
3
+ import { Var } from "./variable.js";
4
+ import { Constraint } from "./constraint.js";
5
+ import type { OptimizationSense } from "./types.js";
6
+ /**
7
+ * Valid expressions that can form an objective function.
8
+ * Note that Constraint is strictly excluded at runtime.
9
+ */
10
+ export type ObjectiveExpr = LinExpr | QuadExpr | Var | number | string;
11
+ /**
12
+ * Specification of an objective function and its optimization direction (sense).
13
+ */
14
+ export interface ObjectiveSpec {
15
+ expr: ObjectiveExpr | Constraint;
16
+ sense: OptimizationSense;
17
+ }
18
+ /**
19
+ * Create a maximization objective specification (`sense: "Maximize"`) for `m.objective(...)`.
20
+ *
21
+ * Accepts a linear expression (`LinExpr`, `Var`, finite `number`, or formula string) or a
22
+ * quadratic objective expression (`QuadExpr` using `^2` or `${x} * ${y}`).
23
+ *
24
+ * **Solver & formulation notes**:
25
+ * - Quadratic terms (`^2`, variable-by-variable products) are supported in **objectives only**
26
+ * (requires a QP-capable solver such as the default HiGHS; throws on GLPK and Z3).
27
+ * - Passing a comparison `Constraint` (`<=`, `>=`, `==`) throws an Error.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const m = new Model("Production");
32
+ * const chairs = m.integer("chairs", { lb: 0 });
33
+ * const tables = m.integer("tables", { lb: 0 });
34
+ * m.objective(maximize(expr`30 * ${chairs} + 50 * ${tables}`));
35
+ * ```
36
+ */
37
+ export declare function maximize(expr: ObjectiveExpr | Constraint): ObjectiveSpec;
38
+ /**
39
+ * Create a minimization objective specification (`sense: "Minimize"`) for `m.objective(...)`.
40
+ *
41
+ * Accepts a linear expression (`LinExpr`, `Var`, finite `number`, or formula string) or a
42
+ * convex quadratic objective expression (`QuadExpr` using `^2` or `${x} * ${y}`).
43
+ *
44
+ * **Solver & formulation notes**:
45
+ * - Quadratic terms (`^2`, variable-by-variable products) are supported in **objectives only**
46
+ * (requires a QP-capable solver such as the default HiGHS; throws on GLPK and Z3).
47
+ * - Passing a comparison `Constraint` (`<=`, `>=`, `==`) throws an Error.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const m = new Model("PortfolioQP");
52
+ * const x = m.continuous("x", { lb: 0 });
53
+ * const y = m.continuous("y", { lb: 0 });
54
+ * // Linear or convex quadratic objective (quadratic terms are allowed in objectives only)
55
+ * m.objective(minimize(expr`${x}^2 + 2 * ${x} * ${y} + 2 * ${y}^2`));
56
+ * ```
57
+ */
58
+ export declare function minimize(expr: ObjectiveExpr | Constraint): ObjectiveSpec;
59
+ //# sourceMappingURL=objective.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objective.d.ts","sourceRoot":"","sources":["../../../src/modeler/objective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,GAAG,UAAU,CAAC;IACjC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AA4DD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,GAAG,aAAa,CAKxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,GAAG,aAAa,CAKxE"}
@@ -12,17 +12,41 @@ export declare function parseExpr(text: string, resolver: ExprResolver): LinExpr
12
12
  */
13
13
  export declare function parseConstraint(text: string, resolver: ExprResolver, name?: string): Constraint;
14
14
  /**
15
- * Tagged template literal for constraints:
16
- * c`${chairs} + 2 * ${tables} <= 40`
17
- * c`3 * ${x} - ${y} >= 5`
18
- * c`${x} == 2 * ${y} + 4`
15
+ * Union type returned by the unified `expr` template tag:
16
+ * - `LinExpr` for linear arithmetic expressions (`expr\`2 * \${x} + 1\``)
17
+ * - `QuadExpr` for quadratic arithmetic expressions (`expr\`\${x}^2 + \${x} * \${y}\``)
18
+ * - `Constraint` for linear relational comparisons (`expr\`2 * \${x} <= 10\``)
19
19
  */
20
- export declare function c(strings: TemplateStringsArray, ...values: (Var | LinExpr | QuadExpr | number)[]): Constraint;
20
+ export type ParsedExpr = LinExpr | QuadExpr | Constraint;
21
21
  /**
22
- * Tagged template literal for linear or quadratic expressions or inline constraints:
23
- * expr`45 * ${chairs} + 80 * ${tables}` -> LinExpr
24
- * expr`${x} * ${y} + 2 * ${x} * ${x}` -> QuadExpr
25
- * expr`${x} + 2 * ${y} <= 40` -> Constraint
22
+ * Unified tagged template literal for linear/quadratic arithmetic expressions and linear comparison constraints:
23
+ * - Linear expression (`LinExpr`): `` expr`45 * ${chairs} + 80 * ${tables} - 10` ``
24
+ * - Quadratic expression (`QuadExpr`): `` expr`${x}^2 + 2 * ${x} * ${y} + ${y}^2` ``
25
+ * - Linear comparison constraint (`Constraint`): `` expr`${chairs} + 2 * ${tables} <= 40` `` (supports `<=`, `>=`, `==`, and `=`)
26
+ *
27
+ * **Formulation & solver capability notes**:
28
+ * - **Quadratic terms (`^2`, `${x} * ${y}`) are supported in objectives only** (convex QP on QP-capable solvers such as HiGHS; throws on GLPK and Z3).
29
+ * - Using quadratic terms inside a comparison constraint (`<=`, `>=`, `==`) throws an Error (`"Quadratic constraints are not supported"`).
30
+ * - Interpolating a `Constraint` inside another `expr` template throws an Error.
31
+ * - Constructing an `expr` does not attach it to a `Model` until passed to `m.objective(...)` or `m.constraint(...)`.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const m = new Model("TemplateExprExample");
36
+ * const x = m.continuous("x", { lb: 0 });
37
+ * const y = m.continuous("y", { lb: 0 });
38
+ *
39
+ * // 1. Linear arithmetic expression (LinExpr)
40
+ * const linCost = expr`30 * ${x} + 50 * ${y} - 10`;
41
+ *
42
+ * // 2. Quadratic objective expression (QuadExpr — supported in objectives only)
43
+ * m.objective(minimize(expr`${x}^2 + 2 * ${x} * ${y} + ${y}^2 + ${linCost}`));
44
+ *
45
+ * // 3. Linear comparison constraints (Constraint: <=, >=, ==)
46
+ * m.constraint(expr`${x} + 2 * ${y} <= 40`, "upper_cap");
47
+ * m.constraint(expr`${x} + ${y} >= 4`, "min_total");
48
+ * m.constraint(expr`${x} - ${y} == 0`, "balance");
49
+ * ```
26
50
  */
27
- export declare function expr(strings: TemplateStringsArray, ...values: (Var | LinExpr | QuadExpr | number)[]): LinExpr | QuadExpr | Constraint;
51
+ export declare function expr(strings: TemplateStringsArray, ...values: (Var | ParsedExpr | number)[]): ParsedExpr;
28
52
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/modeler/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAqXlF;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CASlF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAsC/F;AAmCD;;;;;GAKG;AACH,wBAAgB,CAAC,CACf,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,GAC/C,UAAU,CAGZ;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,GAC/C,OAAO,GAAG,QAAQ,GAAG,UAAU,CAOjC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/modeler/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAwXlF;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAElF;AAqDD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAE/F;AAoDD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AA+DzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,EAAE,GACvC,UAAU,CAMZ"}
@@ -1,15 +1,17 @@
1
1
  import type { Var } from "./variable.js";
2
- import type { LinExpr } from "./expression.js";
2
+ import { LinExpr } from "./expression.js";
3
3
  export interface QuadTerm {
4
4
  var1: Var;
5
5
  var2: Var;
6
6
  coeff: number;
7
7
  }
8
+ import { type Constraint } from "./constraint.js";
8
9
  /**
9
10
  * Represents a quadratic expression:
10
11
  * constant + sum(c_i * x_i) + sum(q_ij * x_i * x_j)
11
12
  */
12
13
  export declare class QuadExpr {
14
+ readonly kind: "quadratic";
13
15
  linearTerms: Map<Var, number>;
14
16
  quadTerms: Map<string, QuadTerm>;
15
17
  constant: number;
@@ -25,20 +27,21 @@ export declare class QuadExpr {
25
27
  /**
26
28
  * Add another expression, variable, or number
27
29
  */
28
- add(other: QuadExpr | LinExpr | Var | number): QuadExpr;
30
+ add(other: QuadExpr | LinExpr | Var | number | Constraint): QuadExpr;
29
31
  /**
30
32
  * Subtract another expression, variable, or number
31
33
  */
32
- sub(other: QuadExpr | LinExpr | Var | number): QuadExpr;
34
+ sub(other: QuadExpr | LinExpr | Var | number | Constraint): QuadExpr;
33
35
  /**
34
36
  * Multiply by a scalar coefficient, variable, or linear/quadratic expression
35
37
  */
36
38
  mul(scalar: number): QuadExpr;
37
- mul(other: Var | LinExpr | QuadExpr): QuadExpr;
39
+ mul(other: Var | LinExpr | QuadExpr | Constraint): QuadExpr;
40
+ mul(operand: number | Var | LinExpr | QuadExpr | Constraint): QuadExpr;
38
41
  /**
39
- * Divide by a non-zero scalar
42
+ * Divide by a non-zero scalar or constant-only expression
40
43
  */
41
- div(scalar: number): QuadExpr;
44
+ div(divisor: number | LinExpr | QuadExpr | Constraint): QuadExpr;
42
45
  /**
43
46
  * Negate this quadratic expression
44
47
  */
@@ -47,11 +50,27 @@ export declare class QuadExpr {
47
50
  * Compute the numerical value of this expression using current variable values
48
51
  */
49
52
  get value(): number | null;
50
- getValue(): number | null;
53
+ le(rhs: number | Var | LinExpr | QuadExpr | Constraint, name?: string): Constraint;
54
+ ge(rhs: number | Var | LinExpr | QuadExpr | Constraint, name?: string): Constraint;
55
+ eq(rhs: number | Var | LinExpr | QuadExpr | Constraint, name?: string): Constraint;
56
+ private toConstraint;
57
+ and(_other: unknown): never;
58
+ or(_other: unknown): never;
59
+ implies(_consequent: unknown): never;
60
+ xor(_other: unknown): never;
61
+ not(): never;
51
62
  toString(): string;
52
63
  /**
53
64
  * Factory method to create a quadratic term v1 * v2 * coeff
54
65
  */
55
66
  static fromProduct(v1: Var, v2: Var, coeff?: number): QuadExpr;
67
+ /**
68
+ * Canonical linear-by-linear multiplication shared across Var, LinExpr, QuadExpr, and Parser.
69
+ */
70
+ static multiplyLinearTerms(constantA: number, termsA: ReadonlyMap<Var, number>, constantB: number, termsB: ReadonlyMap<Var, number>): QuadExpr;
71
+ /**
72
+ * Validates and extracts a non-zero scalar divisor from a number or constant-only expression.
73
+ */
74
+ static extractScalarDivisor(divisor: number | LinExpr | QuadExpr | Constraint, context: string): number;
56
75
  }
57
76
  //# sourceMappingURL=quad-expr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quad-expr.d.ts","sourceRoot":"","sources":["../../../src/modeler/quad-expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAW/C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACZ,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IAExB,YACE,WAAW,GAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAa,EACzC,SAAS,GAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAa,EAC5C,QAAQ,GAAE,MAAU,EAQrB;IAED;;OAEG;IACH,KAAK,IAAI,QAAQ,CAEhB;IAED;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,MAAM,CAIrC;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,CA6DtD;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,CAWtD;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9B,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAsF/C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAK5B;IAED;;OAEG;IACH,GAAG,IAAI,QAAQ,CAEd;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAWzB;IAED,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,QAAQ,IAAI,MAAM,CA+BjB;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,QAAQ,CAShE;CACF"}
1
+ {"version":3,"file":"quad-expr.d.ts","sourceRoot":"","sources":["../../../src/modeler/quad-expr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import type { ComparisonSense } from "./types.js";
2
+ import type { Model } from "./model.js";
3
+ export interface SolutionValidationOptions {
4
+ /**
5
+ * Optional map of variable and Boolean variable values (keyed by variable name) to validate.
6
+ * When omitted, `validateSolution()` inspects the current `.value` properties on the model's variables.
7
+ */
8
+ values?: Record<string, number | boolean | null | undefined>;
9
+ /**
10
+ * Maximum allowed violation for variable bounds and linear constraints (default: `1e-6`).
11
+ */
12
+ feasibilityTolerance?: number;
13
+ /**
14
+ * Maximum allowed distance to the nearest integer for Integer and Binary variables (default: `1e-6`).
15
+ */
16
+ integralityTolerance?: number;
17
+ /**
18
+ * Whether to evaluate logical (SMT/propositional) constraints using the built-in evaluator (default: `true`).
19
+ * If `false`, or if any logical constraint cannot be evaluated due to missing values or unsupported operators,
20
+ * those constraints are reported in `uncheckedConstraints` and `complete` / `valid` are set to `false`.
21
+ */
22
+ evaluateLogicalConstraints?: boolean;
23
+ }
24
+ export type ViolationType = "missing_value" | "non_finite_value" | "invalid_boolean_value" | "lower_bound" | "upper_bound" | "integrality" | "linear_constraint" | "logical_constraint" | "unchecked_constraint";
25
+ export interface SolutionViolation {
26
+ type: ViolationType;
27
+ target: "variable" | "bool_variable" | "constraint" | "logical_constraint";
28
+ name: string;
29
+ actual?: number | boolean | null;
30
+ limit?: number | boolean;
31
+ rhs?: number;
32
+ sense?: ComparisonSense;
33
+ varType?: "Continuous" | "Integer" | "Binary";
34
+ nearestInteger?: number;
35
+ /** Non-negative magnitude of the violation (or Infinity/NaN if non-finite) */
36
+ violation: number;
37
+ /** Signed residual (e.g. actual - limit, or lhs - rhs) when applicable */
38
+ signedViolation?: number;
39
+ message: string;
40
+ }
41
+ export interface SolutionValidationSummary {
42
+ checkedVariables: number;
43
+ totalVariables: number;
44
+ checkedBoolVariables: number;
45
+ totalBoolVariables: number;
46
+ checkedLinearConstraints: number;
47
+ totalLinearConstraints: number;
48
+ checkedLogicalConstraints: number;
49
+ totalLogicalConstraints: number;
50
+ }
51
+ export interface SolutionValidationReport {
52
+ /**
53
+ * True if and only if `complete === true`, `uncheckedConstraints.length === 0`, and `violations.length === 0`.
54
+ * Note: Validates satisfaction of modeled mathematical constraints only; does not verify natural-language specification coverage.
55
+ */
56
+ valid: boolean;
57
+ /**
58
+ * True when all model variables, Boolean variables, linear constraints, and logical constraints were fully evaluated.
59
+ */
60
+ complete: boolean;
61
+ /**
62
+ * Flat list of all violations found.
63
+ */
64
+ violations: SolutionViolation[];
65
+ /**
66
+ * Violations grouped by variable or constraint name.
67
+ */
68
+ violationsByName: Record<string, SolutionViolation[]>;
69
+ /**
70
+ * Names of constraints (linear or logical) that could not be evaluated (e.g. due to missing variable values
71
+ * or `evaluateLogicalConstraints: false`). Never implicitly treated as satisfied.
72
+ */
73
+ uncheckedConstraints: string[];
74
+ /**
75
+ * Names of numeric or Boolean variables whose values were missing (`null` or `undefined`).
76
+ */
77
+ missingVariables: string[];
78
+ /**
79
+ * Maximum numeric violation magnitude across all evaluated bounds, integrality checks, and constraints.
80
+ */
81
+ maxViolation: number;
82
+ /**
83
+ * Coverage summary counts.
84
+ */
85
+ summary: SolutionValidationSummary;
86
+ }
87
+ /**
88
+ * Validates supplied or last-solved variable values against a Model's variable bounds,
89
+ * integrality requirements, linear constraints, and logical constraints.
90
+ * Runs purely in JavaScript/TypeScript without requiring any WASM solver runtime.
91
+ */
92
+ export declare function validateModelSolution(model: Model, options?: SolutionValidationOptions): SolutionValidationReport;
93
+ //# sourceMappingURL=solution-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solution-validator.d.ts","sourceRoot":"","sources":["../../../src/modeler/solution-validator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC7D;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,kBAAkB,GAClB,uBAAuB,GACvB,aAAa,GACb,aAAa,GACb,aAAa,GACb,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,eAAe,GAAG,YAAY,GAAG,oBAAoB,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACtD;;;OAGG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC;CACpC;AAYD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAuf1B"}
@@ -1,24 +1,48 @@
1
- import type { Solver, SolverOptions, SolverResult } from "../types.js";
2
- import type { LpModelData, LpExportResult } from "../../lp-writer.js";
1
+ import type { SolveModelData, Solver, SolverOptions, SolverResult } from "../types.js";
2
+ import { type LpModelData, type LpExportResult } from "../../lp-writer.js";
3
+ import type { SolverStatus } from "../../types.js";
3
4
  /**
4
5
  * GLPK Solver adapter (GNU Linear Programming Kit via WebAssembly / JS).
5
6
  * Supports standard Linear Programming (LP) and Mixed-Integer Programming (MIP).
7
+ *
8
+ * Solution metrics provided by GLPK:
9
+ * - `status` and `terminationStatus`: `"Optimal" | "Feasible" | "Infeasible" | "Unbounded" | "Unknown" | "Error"`
10
+ * - `hasPrimalSolution`: `true` when `status` is `"Optimal"` or `"Feasible"` (`GLP_OPT` or `GLP_FEAS`) with a valid primal payload, `false` otherwise.
11
+ * - `objectiveValue`: Primal objective value (including constant offset) when `hasPrimalSolution` is `true`, otherwise `null`.
12
+ * - `objectiveBound`, `relGap` (`mipGap`), `absGap`: GLPK's JS/WASM wrapper (`glpk.js`) does not expose the MIP best dual bound or relative/absolute gap in its result payload, so these fields are intentionally left `undefined` rather than returning invented defaults.
6
13
  */
7
14
  export declare class GLPKSolver implements Solver {
8
15
  static readonly capabilities: {
9
16
  supportsMIP: boolean;
10
17
  supportsQP: boolean;
18
+ supportsWarmStart: boolean;
11
19
  };
12
20
  readonly name = "GLPK";
13
21
  readonly version = "5.0.0";
14
22
  readonly capabilities: {
15
23
  supportsMIP: boolean;
16
24
  supportsQP: boolean;
25
+ supportsWarmStart: boolean;
17
26
  };
18
27
  options: SolverOptions;
19
28
  constructor(options?: SolverOptions);
29
+ solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
20
30
  solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
21
31
  }
32
+ /**
33
+ * Maps a raw GLPK status code to a WaSHI SolverStatus.
34
+ *
35
+ * GLPK status codes (glpk.js):
36
+ * - GLP_UNDEF (1): Solution is undefined
37
+ * - GLP_FEAS (2): Solution is feasible (incumbent found, optimality not proven)
38
+ * - GLP_INFEAS(3): Solution is infeasible
39
+ * - GLP_NOFEAS(4): Problem has no feasible solution
40
+ * - GLP_OPT (5): Solution is optimal
41
+ * - GLP_UNBND (6): Solution is unbounded
42
+ *
43
+ * Unknown, missing, or error codes map to "Unknown" or "Error" and NEVER to "Optimal".
44
+ */
45
+ export declare function mapGlpkStatus(rawStatus: unknown, glpk?: any): SolverStatus;
22
46
  /**
23
47
  * Register GLPK solver into the solver registry.
24
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/glpk/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKtE;;;GAGG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;MACV;IACF,SAAgB,IAAI,UAAU;IAC9B,SAAgB,OAAO,WAAW;IAClC,SAAgB,YAAY;;;MAA2B;IAChD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAEK,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAmMvB;CACF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/glpk/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAanD;;;;;;;;;GASG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;QACV,iBAAiB;MACjB;IACF,SAAgB,IAAI,UAAU;IAC9B,SAAgB,OAAO,WAAW;IAClC,SAAgB,YAAY;;;;MAA2B;IAChD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAEK,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjF,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CAoW1B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,YAAY,CA6B1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1,6 +1,7 @@
1
+ import type { Highs } from "highs";
1
2
  import type { SolveOptions } from "../../types.js";
2
3
  export declare const OFFICIAL_HIGHS_CDN_WASM_URL = "https://cdn.jsdelivr.net/npm/highs@1.15.3/build/highs.wasm";
3
- type HighsInstance = any;
4
+ type HighsInstance = Highs;
4
5
  export declare function setHighsWasmUrl(url: string | null): void;
5
6
  export declare function getHighsWasmUrl(): string | null;
6
7
  /**
@@ -25,29 +26,53 @@ export declare function resolveBrowserWasmUrl(explicitUrl?: string): Promise<str
25
26
  export declare function getHighs(options?: SolveOptions): Promise<HighsInstance>;
26
27
  export interface RawHighsSolveResult {
27
28
  Status: string;
29
+ StatusCode?: number;
30
+ PrimalSolutionStatus?: number;
31
+ DualSolutionStatus?: number;
32
+ HasPrimalSolution?: boolean;
33
+ IsMip?: boolean;
28
34
  ObjectiveValue: number;
35
+ ObjectiveOffsetApplied?: boolean;
36
+ MipDualBound?: number;
37
+ MipGap?: number;
29
38
  Columns: Record<string, {
30
- Index: number;
31
- Lower: number;
32
- Upper: number;
33
- Type: string;
34
- Primal: number;
39
+ Index?: number;
40
+ Lower?: number;
41
+ Upper?: number;
42
+ Type?: string;
43
+ Primal?: number;
35
44
  Dual?: number;
36
- Name: string;
45
+ Name?: string;
37
46
  }>;
38
47
  Rows?: Record<string, {
39
48
  Index: number;
40
- Lower: number;
41
- Upper: number;
49
+ Lower?: number;
50
+ Upper?: number;
51
+ Dual?: number;
52
+ Primal?: number;
53
+ Name?: string;
54
+ }> | Array<{
55
+ Index: number;
56
+ Lower?: number;
57
+ Upper?: number;
42
58
  Dual?: number;
43
59
  Primal?: number;
44
- Name: string;
60
+ Name?: string;
45
61
  }>;
46
62
  }
63
+ export interface HighsIncumbentSnapshot {
64
+ objectiveValue: number;
65
+ mipDualBound?: number;
66
+ mipGap?: number;
67
+ columns: RawHighsSolveResult["Columns"];
68
+ }
47
69
  /**
48
70
  * Solve an LP formatted model using HiGHS WASM
49
71
  */
50
- export declare function solveLpWithHighs(lpString: string, options?: SolveOptions): Promise<{
72
+ export declare function solveLpWithHighs(lpString: string, options?: SolveOptions & {
73
+ initialValues?: Record<string, number>;
74
+ onIncumbent?: (incumbent: HighsIncumbentSnapshot) => void;
75
+ }): Promise<{
51
76
  result: RawHighsSolveResult;
52
77
  runTime: number;
53
78
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,eAAO,MAAM,2BAA2B,+DACsB,CAAC;AAE/D,KAAK,aAAa,GAAG,GAAG,CAAC;AAMzB,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,QAKjD;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAQ5D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgChE;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASjF;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CA8CjF;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B3D"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/loader.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
- import type { Solver, SolverOptions, SolverResult } from "../types.js";
2
- import type { LpModelData, LpExportResult } from "../../lp-writer.js";
3
- import type { SolverStatus } from "../../types.js";
1
+ import type { Solver, SolverOptions, SolverResult, SolveModelData } from "../types.js";
2
+ import { type LpModelData, type LpExportResult } from "../../lp-writer.js";
3
+ import type { SolverStatus, TerminationStatus } from "../../types.js";
4
+ /**
5
+ * Map a raw HiGHS model status string or status code to WaSHI's standardized TerminationStatus.
6
+ */
7
+ export declare function mapHighsTerminationStatus(rawStatus: unknown, statusCode?: number): TerminationStatus;
4
8
  /**
5
9
  * Map a raw HiGHS model status string to WaSHI's standardized SolverStatus.
6
10
  * Only verified optimality maps to "Optimal"; missing or unrecognized statuses map to "Unknown".
7
11
  */
8
- export declare function mapHighsStatus(rawStatus: unknown): SolverStatus;
12
+ export declare function mapHighsStatus(rawStatus: unknown, statusCode?: number, hasPrimalSolution?: boolean): SolverStatus;
9
13
  /**
10
14
  * HiGHS Solver adapter (WebAssembly in Browser / Node.js)
11
15
  * High-performance simplex / interior point / branch-and-cut solver.
@@ -14,15 +18,18 @@ export declare class HighsSolver implements Solver {
14
18
  static readonly capabilities: {
15
19
  supportsMIP: boolean;
16
20
  supportsQP: boolean;
21
+ supportsWarmStart: boolean;
17
22
  };
18
23
  readonly name = "HiGHS";
19
24
  readonly version = "1.15.3";
20
25
  readonly capabilities: {
21
26
  supportsMIP: boolean;
22
27
  supportsQP: boolean;
28
+ supportsWarmStart: boolean;
23
29
  };
24
30
  options: SolverOptions;
25
31
  constructor(options?: SolverOptions);
32
+ solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
26
33
  solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
27
34
  }
28
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,CAkE/D;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;MACV;IACF,SAAgB,IAAI,WAAW;IAC/B,SAAgB,OAAO,YAAY;IACnC,SAAgB,YAAY;;;MAA4B;IACjD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAEK,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAsEvB;CACF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,oBAAc,CAAC;AAGjC,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
1
+ {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAItE;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CAsInB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,YAAY,CA6Bd;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC,gBAAuB,YAAY;QACjC,WAAW;QACX,UAAU;QACV,iBAAiB;MACjB;IACF,SAAgB,IAAI,WAAW;IAC/B,SAAgB,OAAO,YAAY;IACnC,SAAgB,YAAY;;;;MAA4B;IACjD,OAAO,EAAE,aAAa,CAAC;IAE9B,YAAY,OAAO,GAAE,aAAkB,EAEtC;IAED,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjF,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CA6M1B;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,oBAAc,CAAC;AAGjC,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/worker-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAC;AA8DrB;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B3D"}
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/worker-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAEL,KAAK,mBAAmB,EAGzB,MAAM,aAAa,CAAC;AAmMrB;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2E3D"}
@@ -1,16 +1,24 @@
1
- import type { Solver, SolverOptions, SolverResult, SolverCapabilities } from "./types.js";
2
- import type { LpModelData, LpExportResult } from "../lp-writer.js";
3
- import type { SolverStatus } from "../types.js";
1
+ import type { Solver, SolverOptions, SolverResult, SolverCapabilities, SolveModelData } from "./types.js";
2
+ import { type LpModelData, type LpExportResult } from "../lp-writer.js";
3
+ import type { SolverStatus, TerminationStatus, SolveProgressEvent } from "../types.js";
4
4
  export interface MockSolverOptions extends SolverOptions {
5
5
  name?: string;
6
6
  capabilities?: SolverCapabilities;
7
7
  status?: SolverStatus;
8
- objectiveValue?: number;
8
+ terminationStatus?: TerminationStatus;
9
+ hasPrimalSolution?: boolean;
10
+ objectiveValue?: number | null;
11
+ objectiveBound?: number;
12
+ relGap?: number;
13
+ mipGap?: number;
14
+ absGap?: number;
9
15
  values?: Record<string, number>;
16
+ boolValues?: Record<string, boolean>;
10
17
  reducedCosts?: Record<string, number>;
11
18
  duals?: Record<string, number>;
12
19
  slacks?: Record<string, number>;
13
20
  delayMs?: number;
21
+ progressEvents?: SolveProgressEvent[];
14
22
  }
15
23
  /**
16
24
  * Mock / Dummy Solver for deterministic testing, CI/CD, or offline usage without WASM.
@@ -20,7 +28,8 @@ export declare class MockSolver implements Solver {
20
28
  readonly capabilities: SolverCapabilities;
21
29
  options: MockSolverOptions;
22
30
  constructor(options?: MockSolverOptions);
23
- solve(_modelData: LpModelData, _lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
31
+ solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
32
+ solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
24
33
  }
25
34
  export declare function registerMockSolver(): void;
26
35
  //# sourceMappingURL=mock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../src/modeler/solvers/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAElC,YAAY,OAAO,GAAE,iBAAsB,EAI1C;IAEK,KAAK,CACT,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAgBvB;CACF;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../src/modeler/solvers/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAElC,YAAY,OAAO,GAAE,iBAAsB,EAQ1C;IAED,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjF,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;CA4H1B;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}