@ohtaman/washi 0.4.0 → 0.6.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 (130) hide show
  1. package/README.ja.md +149 -121
  2. package/README.md +149 -121
  3. package/README.zh-CN.md +150 -122
  4. package/THIRD_PARTY_LICENSES.md +3 -4
  5. package/dist/browser/_washi-node-only-BvRk9kiK.js +0 -0
  6. package/dist/browser/browser-runtime-TLCY0hkc.js +1793 -0
  7. package/dist/browser/highs-worker.js +21 -3
  8. package/dist/browser/highs.wasm +0 -0
  9. package/dist/browser/highs.wasm.LICENSE +1 -2
  10. package/dist/browser/loader-DewlSho8.js +643 -0
  11. package/dist/browser/solvers/glpk.js +433 -286
  12. package/dist/browser/solvers/glpk.min.js +1 -1
  13. package/dist/browser/solvers/z3.js +1008 -981
  14. package/dist/browser/solvers/z3.min.js +2 -2
  15. package/dist/browser/washi.js +2778 -673
  16. package/dist/browser/washi.min.js +3 -4
  17. package/dist/lib/_washi-node-only-BvRk9kiK.js +0 -0
  18. package/dist/lib/highs-browser-runtime.js +2120 -4124
  19. package/dist/lib/highs-node-runtime.js +24 -1
  20. package/dist/lib/highs-runtime.js +2 -0
  21. package/dist/lib/highs-worker.js +21 -3
  22. package/dist/lib/highs.wasm +0 -0
  23. package/dist/lib/highs.wasm.LICENSE +1 -2
  24. package/dist/lib/loader-BZUQNvh4.js +649 -0
  25. package/dist/lib/registry-C20sxTwm.js +964 -0
  26. package/dist/lib/solvers/glpk.js +201 -90
  27. package/dist/lib/solvers/z3.js +399 -259
  28. package/dist/lib/washi.js +2363 -1056
  29. package/dist/types/decomposition/benders.d.ts +32 -0
  30. package/dist/types/decomposition/benders.d.ts.map +1 -0
  31. package/dist/types/decomposition/column-generation.d.ts +34 -0
  32. package/dist/types/decomposition/column-generation.d.ts.map +1 -0
  33. package/dist/types/decomposition/index.d.ts +4 -0
  34. package/dist/types/decomposition/index.d.ts.map +1 -0
  35. package/dist/types/decomposition/types.d.ts +230 -0
  36. package/dist/types/decomposition/types.d.ts.map +1 -0
  37. package/dist/types/index.d.ts +5 -4
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/modeler/big-m.d.ts +75 -0
  40. package/dist/types/modeler/big-m.d.ts.map +1 -0
  41. package/dist/types/modeler/boolean-expr.d.ts +103 -14
  42. package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
  43. package/dist/types/modeler/constraint.d.ts +47 -9
  44. package/dist/types/modeler/constraint.d.ts.map +1 -1
  45. package/dist/types/modeler/expression.d.ts +123 -28
  46. package/dist/types/modeler/expression.d.ts.map +1 -1
  47. package/dist/types/modeler/index.d.ts +11 -6
  48. package/dist/types/modeler/index.d.ts.map +1 -1
  49. package/dist/types/modeler/linearizer.d.ts +15 -0
  50. package/dist/types/modeler/linearizer.d.ts.map +1 -0
  51. package/dist/types/modeler/lp-writer.d.ts +30 -3
  52. package/dist/types/modeler/lp-writer.d.ts.map +1 -1
  53. package/dist/types/modeler/model.d.ts +623 -131
  54. package/dist/types/modeler/model.d.ts.map +1 -1
  55. package/dist/types/modeler/objective.d.ts +59 -0
  56. package/dist/types/modeler/objective.d.ts.map +1 -0
  57. package/dist/types/modeler/parser.d.ts +34 -10
  58. package/dist/types/modeler/parser.d.ts.map +1 -1
  59. package/dist/types/modeler/quad-expr.d.ts +26 -7
  60. package/dist/types/modeler/quad-expr.d.ts.map +1 -1
  61. package/dist/types/modeler/solution-validator.d.ts +93 -0
  62. package/dist/types/modeler/solution-validator.d.ts.map +1 -0
  63. package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -2
  64. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -1
  65. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -1
  66. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -1
  67. package/dist/types/modeler/solvers/highs/driver.d.ts +232 -0
  68. package/dist/types/modeler/solvers/highs/driver.d.ts.map +1 -0
  69. package/dist/types/modeler/solvers/highs/index.d.ts +1 -0
  70. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -1
  71. package/dist/types/modeler/solvers/highs/loader.d.ts +38 -13
  72. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
  73. package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -1
  74. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -1
  75. package/dist/types/modeler/solvers/highs/solver.d.ts +12 -5
  76. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
  77. package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -1
  78. package/dist/types/modeler/solvers/mock.d.ts +14 -5
  79. package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
  80. package/dist/types/modeler/solvers/types.d.ts +73 -11
  81. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  82. package/dist/types/modeler/solvers/z3/loader.d.ts +2 -3
  83. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -1
  84. package/dist/types/modeler/solvers/z3/solver.d.ts +15 -5
  85. package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -1
  86. package/dist/types/modeler/types.d.ts +86 -1
  87. package/dist/types/modeler/types.d.ts.map +1 -1
  88. package/dist/types/modeler/validation.d.ts +56 -0
  89. package/dist/types/modeler/validation.d.ts.map +1 -0
  90. package/dist/types/modeler/variable.d.ts +48 -14
  91. package/dist/types/modeler/variable.d.ts.map +1 -1
  92. package/docs/examples/diet-sensitivity.md +90 -0
  93. package/docs/examples/ecommerce-coupons.md +106 -0
  94. package/docs/examples/index.md +57 -0
  95. package/docs/examples/knapsack.md +60 -0
  96. package/docs/examples/portfolio-qp.md +83 -0
  97. package/docs/examples/production.md +51 -0
  98. package/docs/examples/shift-scheduling.md +175 -0
  99. package/docs/examples/smt-security.md +74 -0
  100. package/docs/examples/transportation.md +90 -0
  101. package/docs/examples/traveling-salesperson.md +173 -0
  102. package/docs/examples/unsat-core.md +64 -0
  103. package/docs/examples/vehicle-routing.md +206 -0
  104. package/docs/getting-started/ai-agents.md +271 -0
  105. package/docs/getting-started/cross-origin.md +87 -0
  106. package/docs/getting-started/index.md +116 -0
  107. package/docs/getting-started/runtimes.md +227 -0
  108. package/docs/guide/constraints.md +177 -0
  109. package/docs/guide/decomposition.md +399 -0
  110. package/docs/guide/expressions.md +204 -0
  111. package/docs/guide/objectives.md +170 -0
  112. package/docs/guide/unsat-core.md +154 -0
  113. package/docs/guide/variables.md +188 -0
  114. package/docs/ja/getting-started/ai-agents.md +270 -0
  115. package/docs/solvers/custom-solver.md +525 -0
  116. package/docs/solvers/glpk.md +66 -0
  117. package/docs/solvers/highs.md +115 -0
  118. package/docs/solvers/index.md +42 -0
  119. package/docs/solvers/z3.md +78 -0
  120. package/docs/zh/getting-started/ai-agents.md +270 -0
  121. package/llms-full.txt +4065 -0
  122. package/llms.txt +201 -0
  123. package/package.json +32 -16
  124. package/skills/washi/SKILL.md +197 -0
  125. package/dist/browser/browser-runtime-D13gHOT5.js +0 -4189
  126. package/dist/browser/loader-CVt4CloI.js +0 -58
  127. package/dist/lib/async-mutex-Duo4jwzn.js +0 -195
  128. package/dist/lib/constraint-BRuB3ooC.js +0 -90
  129. package/dist/lib/loader-Dti0v9yC.js +0 -50
  130. package/dist/lib/registry-DksqCSjI.js +0 -32
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Directly compiled HiGHS WebAssembly Driver & C API Wrapper.
3
+ *
4
+ * Provides a type-safe, zero-dependency interface to official ERGO-Code/HiGHS
5
+ * via its native C API (highs_c_api.h), eliminating third-party npm wrappers.
6
+ */
7
+ export interface HighsEmscriptenModule {
8
+ cwrap(name: string, returnType: string | null, argTypes: string[]): (...args: any[]) => any;
9
+ ccall(name: string, returnType: string | null, argTypes: string[], args: any[]): any;
10
+ getValue(ptr: number, type: string): number;
11
+ setValue(ptr: number, val: number, type: string): void;
12
+ UTF8ToString(ptr: number): string;
13
+ stringToUTF8(str: string, ptr: number, maxBytesToWrite: number): void;
14
+ addFunction(fn: (...args: any[]) => any, signature: string): number;
15
+ removeFunction(ptr: number): void;
16
+ _malloc(size: number): number;
17
+ _free(ptr: number): void;
18
+ FS?: {
19
+ writeFile(path: string, data: string | Uint8Array, opts?: any): void;
20
+ unlink(path: string): void;
21
+ readFile(path: string, opts?: any): Uint8Array | string;
22
+ };
23
+ HEAPF64?: Float64Array;
24
+ HEAP32?: Int32Array;
25
+ HEAPU8?: Uint8Array;
26
+ HEAP8?: Int8Array;
27
+ wasmMemory?: WebAssembly.Memory;
28
+ }
29
+ export interface CreateHiGHSOptions {
30
+ locateFile?: (path: string, prefix?: string) => string;
31
+ wasmBinary?: ArrayBuffer | Uint8Array;
32
+ instantiateWasm?: (imports: any, successCallback: (instance: any) => void) => any;
33
+ noFSInit?: boolean;
34
+ print?: (text: string) => void;
35
+ printErr?: (text: string) => void;
36
+ }
37
+ export interface HighsSolutionColumn {
38
+ Index: number;
39
+ Name: string;
40
+ Primal: number;
41
+ Dual: number;
42
+ Type?: string;
43
+ }
44
+ export interface HighsSolutionRow {
45
+ Index: number;
46
+ Name?: string;
47
+ Primal?: number;
48
+ Dual?: number;
49
+ }
50
+ export interface HighsSolutionResult {
51
+ Status: string;
52
+ StatusCode: number;
53
+ ObjectiveValue: number;
54
+ Columns: Record<string, HighsSolutionColumn>;
55
+ Rows?: HighsSolutionRow[];
56
+ PrimalSolutionStatus?: number;
57
+ DualSolutionStatus?: number;
58
+ HasPrimalSolution?: boolean;
59
+ IsMip?: boolean;
60
+ ObjectiveOffsetApplied?: boolean;
61
+ }
62
+ export declare class HighsError extends Error {
63
+ constructor(message: string);
64
+ }
65
+ export declare class HighsUnsupportedOptionError extends HighsError {
66
+ constructor(message: string);
67
+ }
68
+ export declare const HIGHS_STATUS_NAMES: Record<number, string>;
69
+ export declare const HIGHS_CONSTANTS: {
70
+ readonly callbackType: {
71
+ readonly logging: 0;
72
+ readonly simplexInterrupt: 1;
73
+ readonly ipmInterrupt: 2;
74
+ readonly mipSolution: 3;
75
+ readonly mipImprovingSolution: 4;
76
+ readonly mipLogging: 5;
77
+ readonly mipInterrupt: 6;
78
+ readonly mipGetCutPool: 7;
79
+ readonly mipDefineLazyConstraints: 8;
80
+ readonly mipUserSolution: 9;
81
+ };
82
+ readonly solutionStatus: {
83
+ readonly none: 0;
84
+ readonly infeasible: 1;
85
+ readonly feasible: 2;
86
+ };
87
+ readonly modelStatus: {
88
+ readonly notSet: 0;
89
+ readonly loadError: 1;
90
+ readonly modelError: 2;
91
+ readonly presolveError: 3;
92
+ readonly solveError: 4;
93
+ readonly postsolveError: 5;
94
+ readonly modelEmpty: 6;
95
+ readonly optimal: 7;
96
+ readonly infeasible: 8;
97
+ readonly unboundedOrInfeasible: 9;
98
+ readonly unbounded: 10;
99
+ readonly objectiveBound: 11;
100
+ readonly objectiveTarget: 12;
101
+ readonly timeLimit: 13;
102
+ readonly iterationLimit: 14;
103
+ readonly unknown: 15;
104
+ readonly solutionLimit: 16;
105
+ readonly interrupt: 17;
106
+ };
107
+ };
108
+ export interface HighsBindings {
109
+ create: () => number;
110
+ destroy: (highs: number) => void;
111
+ clearModel: (highs: number) => number;
112
+ version: () => string;
113
+ readModel: (highs: number, filename: string) => number;
114
+ run: (highs: number) => number;
115
+ getNumCol: (highs: number) => number;
116
+ getNumRow: (highs: number) => number;
117
+ getNumNz: (highs: number) => number;
118
+ getObjectiveValue: (highs: number) => number;
119
+ getModelStatus: (highs: number) => number;
120
+ getSolution: (highs: number, colVal: number, colDual: number, rowVal: number, rowDual: number) => number;
121
+ getColName: (highs: number, col: number, namePtr: number) => number;
122
+ getRowName: (highs: number, row: number, namePtr: number) => number;
123
+ getColIntegrality: (highs: number, col: number, integPtr: number) => number;
124
+ changeObjectiveOffset: (highs: number, offset: number) => number;
125
+ getObjectiveOffset: (highs: number, offsetPtr: number) => number;
126
+ setBoolOptionValue: (highs: number, option: string, value: number) => number;
127
+ setIntOptionValue: (highs: number, option: string, value: number) => number;
128
+ setDoubleOptionValue: (highs: number, option: string, value: number) => number;
129
+ setStringOptionValue: (highs: number, option: string, value: string) => number;
130
+ setSolution: (highs: number, colVal: number, rowVal: number, colDual: number, rowDual: number) => number;
131
+ setSparseSolution: (highs: number, numEntries: number, indexPtr: number, valPtr: number) => number;
132
+ getIntInfoValue: (highs: number, info: string, valPtr: number) => number;
133
+ getDoubleInfoValue: (highs: number, info: string, valPtr: number) => number;
134
+ getInt64InfoValue: (highs: number, info: string, valPtr: number) => number;
135
+ setCallback: (highs: number, callbackPtr: number, userData: number) => number;
136
+ startCallback: (highs: number, callbackType: number) => number;
137
+ stopCallback: (highs: number, callbackType: number) => number;
138
+ }
139
+ export declare function bindHighsFunctions(module: HighsEmscriptenModule): HighsBindings;
140
+ export declare class HighsModel {
141
+ readonly highs: number;
142
+ readonly module: HighsEmscriptenModule;
143
+ readonly bindings: HighsBindings;
144
+ private readonly stringBuf;
145
+ private isDestroyed;
146
+ constructor(module: HighsEmscriptenModule, bindings: HighsBindings, highsPtr?: number);
147
+ changeObjectiveOffset(offset: number): void;
148
+ getObjectiveOffset(): number;
149
+ readonly options: {
150
+ set: (name: string, value: any) => void;
151
+ };
152
+ getDimensions(): {
153
+ numCols: number;
154
+ numRows: number;
155
+ };
156
+ getColIntegrality(colIndex: number): number;
157
+ getColName(colIndex: number): string;
158
+ getRowName(rowIndex: number): string;
159
+ setSolution(sol: {
160
+ colValue?: number[];
161
+ indices?: number[];
162
+ values?: number[];
163
+ }): void;
164
+ run(callbacks?: Record<number, (event: any) => undefined>): number;
165
+ getModelStatus(): number;
166
+ readonly info: {
167
+ get: (name: string) => number | string;
168
+ };
169
+ getSolution(): {
170
+ colValue: Float64Array;
171
+ colDual: Float64Array;
172
+ rowValue: Float64Array;
173
+ rowDual: Float64Array;
174
+ };
175
+ getObjectiveValue(): number;
176
+ destroy(): void;
177
+ [Symbol.dispose](): void;
178
+ }
179
+ export declare class Highs {
180
+ readonly module: HighsEmscriptenModule;
181
+ readonly bindings: HighsBindings;
182
+ readonly constants: {
183
+ readonly callbackType: {
184
+ readonly logging: 0;
185
+ readonly simplexInterrupt: 1;
186
+ readonly ipmInterrupt: 2;
187
+ readonly mipSolution: 3;
188
+ readonly mipImprovingSolution: 4;
189
+ readonly mipLogging: 5;
190
+ readonly mipInterrupt: 6;
191
+ readonly mipGetCutPool: 7;
192
+ readonly mipDefineLazyConstraints: 8;
193
+ readonly mipUserSolution: 9;
194
+ };
195
+ readonly solutionStatus: {
196
+ readonly none: 0;
197
+ readonly infeasible: 1;
198
+ readonly feasible: 2;
199
+ };
200
+ readonly modelStatus: {
201
+ readonly notSet: 0;
202
+ readonly loadError: 1;
203
+ readonly modelError: 2;
204
+ readonly presolveError: 3;
205
+ readonly solveError: 4;
206
+ readonly postsolveError: 5;
207
+ readonly modelEmpty: 6;
208
+ readonly optimal: 7;
209
+ readonly infeasible: 8;
210
+ readonly unboundedOrInfeasible: 9;
211
+ readonly unbounded: 10;
212
+ readonly objectiveBound: 11;
213
+ readonly objectiveTarget: 12;
214
+ readonly timeLimit: 13;
215
+ readonly iterationLimit: 14;
216
+ readonly unknown: 15;
217
+ readonly solutionLimit: 16;
218
+ readonly interrupt: 17;
219
+ };
220
+ };
221
+ readonly errors: {
222
+ HighsError: typeof HighsError;
223
+ HighsUnsupportedOptionError: typeof HighsUnsupportedOptionError;
224
+ };
225
+ constructor(module: HighsEmscriptenModule);
226
+ withModel<T>(modelInput: {
227
+ format: "lp" | "mps";
228
+ data: string;
229
+ }, action: (m: HighsModel) => T): T;
230
+ solve(lpString: string, options?: Record<string, any>): HighsSolutionResult;
231
+ }
232
+ //# sourceMappingURL=driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/driver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAC5F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACrF,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACpE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,EAAE,CAAC,EAAE;QACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;QACrE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC;KACzD,CAAC;IACF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,UAAU,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAyBD,qBAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,2BAA4B,SAAQ,UAAU;IACzD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoBrD,CAAC;AAEF,eAAO,MAAM,eAAe;aAC1B,YAAY;iBACV,OAAO,EAAE,CAAC;iBACV,gBAAgB,EAAE,CAAC;iBACnB,YAAY,EAAE,CAAC;iBACf,WAAW,EAAE,CAAC;iBACd,oBAAoB,EAAE,CAAC;iBACvB,UAAU,EAAE,CAAC;iBACb,YAAY,EAAE,CAAC;iBACf,aAAa,EAAE,CAAC;iBAChB,wBAAwB,EAAE,CAAC;iBAC3B,eAAe,EAAE,CAAC;;aAEpB,cAAc;iBACZ,IAAI,EAAE,CAAC;iBACP,UAAU,EAAE,CAAC;iBACb,QAAQ,EAAE,CAAC;;aAEb,WAAW;iBACT,MAAM,EAAE,CAAC;iBACT,SAAS,EAAE,CAAC;iBACZ,UAAU,EAAE,CAAC;iBACb,aAAa,EAAE,CAAC;iBAChB,UAAU,EAAE,CAAC;iBACb,cAAc,EAAE,CAAC;iBACjB,UAAU,EAAE,CAAC;iBACb,OAAO,EAAE,CAAC;iBACV,UAAU,EAAE,CAAC;iBACb,qBAAqB,EAAE,CAAC;iBACxB,SAAS,EAAE,EAAE;iBACb,cAAc,EAAE,EAAE;iBAClB,eAAe,EAAE,EAAE;iBACnB,SAAS,EAAE,EAAE;iBACb,cAAc,EAAE,EAAE;iBAClB,OAAO,EAAE,EAAE;iBACX,aAAa,EAAE,EAAE;iBACjB,SAAS,EAAE,EAAE;;CAEP,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzG,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACpE,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5E,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5E,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/E,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/E,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACzG,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACnG,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5E,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3E,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9E,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,aAAa,CAgC/E;AAID,qBAAa,UAAU;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,WAAW,CAAS;IAE5B,YAAY,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,EAKpF;IAED,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK1C;IAED,kBAAkB,IAAI,MAAM,CAQ3B;IAED,QAAQ,CAAC,OAAO;QACd,GAAG,SAAS,MAAM,SAAS,GAAG,KAAG,IAAI;MAqBrC;IAEF,aAAa,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAKpD;IAED,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ1C;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnC;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnC;IAED,WAAW,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAuCrF;IAED,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,MAAM,CAiFjE;IAED,cAAc,IAAI,MAAM,CAEvB;IAED,QAAQ,CAAC,IAAI;QACX,GAAG,SAAS,MAAM,KAAG,MAAM,GAAG,MAAM;MAqBpC;IAEF,WAAW,IAAI;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,CAqB9G;IAED,iBAAiB,IAAI,MAAM,CAE1B;IAED,OAAO,IAAI,IAAI,CAcd;IAED,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAEvB;CACF;AAED,qBAAa,KAAK;IAChB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,SAAS;;qBAvYhB,OAAO,EAAE,CAAC;qBACV,gBAAgB,EAAE,CAAC;qBACnB,YAAY,EAAE,CAAC;qBACf,WAAW,EAAE,CAAC;qBACd,oBAAoB,EAAE,CAAC;qBACvB,UAAU,EAAE,CAAC;qBACb,YAAY,EAAE,CAAC;qBACf,aAAa,EAAE,CAAC;qBAChB,wBAAwB,EAAE,CAAC;qBAC3B,eAAe,EAAE,CAAC;;;qBAGlB,IAAI,EAAE,CAAC;qBACP,UAAU,EAAE,CAAC;qBACb,QAAQ,EAAE,CAAC;;;qBAGX,MAAM,EAAE,CAAC;qBACT,SAAS,EAAE,CAAC;qBACZ,UAAU,EAAE,CAAC;qBACb,aAAa,EAAE,CAAC;qBAChB,UAAU,EAAE,CAAC;qBACb,cAAc,EAAE,CAAC;qBACjB,UAAU,EAAE,CAAC;qBACb,OAAO,EAAE,CAAC;qBACV,UAAU,EAAE,CAAC;qBACb,qBAAqB,EAAE,CAAC;qBACxB,SAAS,EAAE,EAAE;qBACb,cAAc,EAAE,EAAE;qBAClB,eAAe,EAAE,EAAE;qBACnB,SAAS,EAAE,EAAE;qBACb,cAAc,EAAE,EAAE;qBAClB,OAAO,EAAE,EAAE;qBACX,aAAa,EAAE,EAAE;qBACjB,SAAS,EAAE,EAAE;;MAqWsB;IACrC,QAAQ,CAAC,MAAM;;;MAA+C;IAE9D,YAAY,MAAM,EAAE,qBAAqB,EAGxC;IAED,SAAS,CAAC,CAAC,EACT,UAAU,EAAE;QAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAClD,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,GAC3B,CAAC,CAwBH;IAED,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,mBAAmB,CA8B9E;CACF"}
@@ -3,4 +3,5 @@ export * from "./loader.js";
3
3
  export * from "./worker-client.js";
4
4
  export * from "./worker-factory.js";
5
5
  export * from "./assets.js";
6
+ export * from "./driver.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { SolveOptions } from "../../types.js";
2
- export declare const OFFICIAL_HIGHS_CDN_WASM_URL = "https://cdn.jsdelivr.net/npm/highs@1.15.3/build/highs.wasm";
3
- type HighsInstance = any;
2
+ import { Highs, HIGHS_STATUS_NAMES, HIGHS_CONSTANTS, HighsUnsupportedOptionError } from "./driver.js";
3
+ export declare const OFFICIAL_HIGHS_CDN_WASM_URL = "https://cdn.jsdelivr.net/npm/highs@1.15.1/build/highs.wasm";
4
+ export type HighsInstance = Highs;
5
+ export { HIGHS_STATUS_NAMES, HIGHS_CONSTANTS, HighsUnsupportedOptionError, Highs };
4
6
  export declare function setHighsWasmUrl(url: string | null): void;
5
7
  export declare function getHighsWasmUrl(): string | null;
6
8
  /**
@@ -25,31 +27,54 @@ export declare function resolveBrowserWasmUrl(explicitUrl?: string): Promise<str
25
27
  export declare function getHighs(options?: SolveOptions): Promise<HighsInstance>;
26
28
  export interface RawHighsSolveResult {
27
29
  Status: string;
30
+ StatusCode?: number;
31
+ PrimalSolutionStatus?: number;
32
+ DualSolutionStatus?: number;
33
+ HasPrimalSolution?: boolean;
34
+ IsMip?: boolean;
28
35
  ObjectiveValue: number;
36
+ ObjectiveOffsetApplied?: boolean;
37
+ MipDualBound?: number;
38
+ MipGap?: number;
29
39
  Columns: Record<string, {
30
- Index: number;
31
- Lower: number;
32
- Upper: number;
33
- Type: string;
34
- Primal: number;
40
+ Index?: number;
41
+ Lower?: number;
42
+ Upper?: number;
43
+ Type?: string;
44
+ Primal?: number;
35
45
  Dual?: number;
36
- Name: string;
46
+ Name?: string;
37
47
  }>;
38
48
  Rows?: Record<string, {
39
49
  Index: number;
40
- Lower: number;
41
- Upper: number;
50
+ Lower?: number;
51
+ Upper?: number;
52
+ Dual?: number;
53
+ Primal?: number;
54
+ Name?: string;
55
+ }> | Array<{
56
+ Index: number;
57
+ Lower?: number;
58
+ Upper?: number;
42
59
  Dual?: number;
43
60
  Primal?: number;
44
- Name: string;
61
+ Name?: string;
45
62
  }>;
46
63
  }
64
+ export interface HighsIncumbentSnapshot {
65
+ objectiveValue: number;
66
+ mipDualBound?: number;
67
+ mipGap?: number;
68
+ columns: RawHighsSolveResult["Columns"];
69
+ }
47
70
  /**
48
71
  * Solve an LP formatted model using HiGHS WASM
49
72
  */
50
- export declare function solveLpWithHighs(lpString: string, options?: SolveOptions): Promise<{
73
+ export declare function solveLpWithHighs(lpString: string, options?: SolveOptions & {
74
+ initialValues?: Record<string, number>;
75
+ onIncumbent?: (incumbent: HighsIncumbentSnapshot) => void;
76
+ }): Promise<{
51
77
  result: RawHighsSolveResult;
52
78
  runTime: number;
53
79
  }>;
54
- export {};
55
80
  //# sourceMappingURL=loader.d.ts.map
@@ -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,2 +1,3 @@
1
- export declare function loadNodeHighs(): Promise<any>;
1
+ import { Highs } from "./driver.js";
2
+ export declare function loadNodeHighs(): Promise<(options?: any) => Promise<Highs>>;
2
3
  //# sourceMappingURL=node-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/node-runtime.ts"],"names":[],"mappings":"AAAA,wBAAsB,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,CAElD"}
1
+ {"version":3,"file":"node-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/highs/node-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,wBAAsB,aAAa,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CA+ChF"}
@@ -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
- readonly version = "1.15.3";
24
+ readonly version = "1.15.1";
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;CA8M1B;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"}
@@ -1,18 +1,66 @@
1
- import type { SolverStatus } from "../types.js";
2
- import type { LpModelData, LpExportResult } from "../lp-writer.js";
1
+ import type { OptimizationSense, SolverStatus, TerminationStatus, SolveProgressEvent } from "../types.js";
2
+ import type { Var } from "../variable.js";
3
+ import type { LinExpr } from "../expression.js";
4
+ import type { QuadExpr } from "../quad-expr.js";
5
+ import type { Constraint } from "../constraint.js";
6
+ import type { BoolVar, LogicElement } from "../boolean-expr.js";
7
+ /**
8
+ * Named logical constraint entry in a model snapshot.
9
+ */
10
+ export interface LogicalConstraintItem {
11
+ name: string;
12
+ expr: LogicElement;
13
+ }
14
+ /**
15
+ * Typed model snapshot passed to `Solver.check()` (objective-free satisfiability / feasibility).
16
+ *
17
+ * Each entity in `variables`, `boolVars`, and `constraints` carries its own model-unique
18
+ * `.name` (and numeric `.id`), while `logicalConstraints` entries carry their `.name` and
19
+ * AST `.expr`. Adapters should key returned `values`, `duals`, `reducedCosts`, `slacks`,
20
+ * and `unsatCore` by these canonical model names (`v.name`, `bv.name`, `c.name`, `lc.name`),
21
+ * keeping any backend-specific identifier sanitization internal to the adapter.
22
+ */
23
+ export interface CheckModelData {
24
+ name?: string;
25
+ variables: Var[];
26
+ boolVars?: BoolVar[];
27
+ constraints: Constraint[];
28
+ logicalConstraints?: LogicalConstraintItem[];
29
+ }
30
+ /**
31
+ * Typed model snapshot passed to `Solver.solve()` (optimization with an objective).
32
+ */
33
+ export interface SolveModelData extends CheckModelData {
34
+ sense: OptimizationSense;
35
+ objective: LinExpr | QuadExpr;
36
+ }
3
37
  /**
4
38
  * Normalized solution result returned by any solver adapter
5
39
  */
6
40
  export interface SolverResult {
7
41
  status: SolverStatus;
42
+ /** Exact termination reason independent of whether a feasible incumbent is available */
43
+ terminationStatus?: TerminationStatus;
44
+ /** Whether a feasible primal solution / incumbent is available */
45
+ hasPrimalSolution?: boolean;
8
46
  objectiveValue: number | null;
9
- /** Variable primal values (keyed by variable name or ID) */
47
+ /** Best proven dual/objective bound when provided by the solver */
48
+ objectiveBound?: number;
49
+ /** Relative MIP optimality gap when provided by the solver */
50
+ relGap?: number;
51
+ /** Alias for relGap: relative MIP optimality gap when provided by the solver */
52
+ mipGap?: number;
53
+ /** Absolute MIP optimality gap |objectiveValue - objectiveBound| when provided by the solver */
54
+ absGap?: number;
55
+ /** Variable primal values (keyed by canonical variable name) */
10
56
  values: Record<string, number>;
11
- /** Variable reduced costs (optional) */
57
+ /** Boolean variable assignments (optional, keyed by canonical BoolVar name) */
58
+ boolValues?: Record<string, boolean>;
59
+ /** Variable reduced costs (optional, keyed by canonical variable name) */
12
60
  reducedCosts?: Record<string, number>;
13
- /** Constraint dual values (optional) */
61
+ /** Constraint dual values (optional, keyed by canonical constraint name) */
14
62
  duals?: Record<string, number>;
15
- /** Constraint slacks (optional) */
63
+ /** Constraint slacks (optional, keyed by canonical constraint name) */
16
64
  slacks?: Record<string, number>;
17
65
  /** Solution time in seconds */
18
66
  runTime?: number;
@@ -30,12 +78,22 @@ export interface SolverOptions {
30
78
  presolve?: "on" | "off" | "choose";
31
79
  /** Relative MIP gap tolerance (e.g. 0.01 for 1%) */
32
80
  mipGap?: number;
81
+ /** Relative MIP gap tolerance alias */
82
+ relGap?: number;
83
+ /** Absolute MIP gap tolerance */
84
+ absGap?: number;
33
85
  /** Number of parallel threads */
34
86
  threads?: number;
35
87
  /** Enable verbose solver logging */
36
88
  verbose?: boolean;
89
+ /** Solve the continuous/LP relaxation of the model by relaxing integer and binary variables */
90
+ relax?: boolean;
37
91
  /** Use Web Worker for non-blocking browser execution */
38
92
  useWorker?: boolean;
93
+ /** AbortSignal to cancel an in-flight solve */
94
+ signal?: AbortSignal;
95
+ /** Callback invoked with real solver progress metrics when available */
96
+ onProgress?: (progress: SolveProgressEvent) => void;
39
97
  /** Additional solver-specific options */
40
98
  [key: string]: any;
41
99
  }
@@ -53,18 +111,22 @@ export interface SolverCapabilities {
53
111
  supportsSMT?: boolean;
54
112
  /** Supports extracting an unsatisfiable core (conflicting constraint subset; minimality is not guaranteed) */
55
113
  supportsUnsatCore?: boolean;
114
+ /** Supports primal initial values (MIP starts / warm-start hints) */
115
+ supportsWarmStart?: boolean;
56
116
  }
57
117
  export interface SolverCheckResult {
58
118
  status: "Sat" | "Unsat" | "Unknown";
59
119
  values: Record<string, number | boolean>;
60
- unsatCore?: string[];
120
+ unsatCore?: readonly string[];
121
+ /** Alias for unsatCore: subset of conflicting constraints causing infeasibility */
122
+ conflicts?: readonly string[];
61
123
  runTime?: number;
62
124
  logs?: string[];
63
125
  raw?: any;
64
126
  }
65
127
  /**
66
128
  * Universal Solver interface.
67
- * Any optimization engine (HiGHS WASM, GLPK, Gurobi Remote, CBC, SCIP, custom JS)
129
+ * Any optimization engine (HiGHS WASM, GLPK, Z3, Gurobi Remote, CBC, SCIP, custom JS)
68
130
  * implements this interface to be used interchangeably with Model.
69
131
  */
70
132
  export interface Solver {
@@ -77,10 +139,10 @@ export interface Solver {
77
139
  /**
78
140
  * Solve the given mathematical programming model data
79
141
  */
80
- solve(modelData: LpModelData, lpResult: LpExportResult, options?: SolverOptions): Promise<SolverResult>;
142
+ solve(modelData: SolveModelData, options?: SolverOptions): Promise<SolverResult>;
81
143
  /**
82
- * Check satisfiability of the model and logical constraints (optional)
144
+ * Check satisfiability of the model and logical constraints without an objective (optional)
83
145
  */
84
- check?(modelData: any, options?: SolverOptions): Promise<SolverCheckResult>;
146
+ check?(modelData: CheckModelData, options?: SolverOptions): Promise<SolverCheckResult>;
85
147
  }
86
148
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modeler/solvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8GAA8G;IAC9G,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C;;OAEG;IACH,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,CACJ,SAAS,EAAE,GAAG,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modeler/solvers/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  type Z3Instance = any;
2
- export declare function unlockAllZ3Semaphores(error?: Error): void;
3
- export declare function registerZ3ErrorHandler(handler: (err: Error) => void): () => void;
4
- export declare function notifyZ3WorkerError(err: any): void;
2
+ export declare function registerZ3ErrorHandler(handler: (err: Error) => void, instance?: Z3Instance): () => void;
3
+ export declare function notifyZ3WorkerError(err: unknown): void;
5
4
  /**
6
5
  * Configure explicit URLs for Z3 assets (z3-built.js and z3-built.wasm).
7
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/z3/loader.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,GAAG,CAAC;AAyBtB,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAazD;AA+BD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM,IAAI,CAGhF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAyBlD;AAkED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAI1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA4BnD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBjJ;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAuFpE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAqG5H;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BnE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../../src/modeler/solvers/z3/loader.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,GAAG,CAAC;AAkEtB,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,IAAI,CASvG;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAEtD;AAkED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAI1F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA4BnD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBjJ;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAuFpE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAwG5H;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnE"}