@uwmd/core 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +3 -3
  2. package/dist/agents/bancroft.d.ts +22 -1
  3. package/dist/agents/bancroft.d.ts.map +1 -1
  4. package/dist/agents/bancroft.js +86 -60
  5. package/dist/agents/bancroft.js.map +1 -1
  6. package/dist/agents/provider.d.ts +62 -0
  7. package/dist/agents/provider.d.ts.map +1 -0
  8. package/dist/agents/provider.js +28 -0
  9. package/dist/agents/provider.js.map +1 -0
  10. package/dist/agents/providers/anthropic.d.ts +20 -0
  11. package/dist/agents/providers/anthropic.d.ts.map +1 -0
  12. package/dist/agents/providers/anthropic.js +104 -0
  13. package/dist/agents/providers/anthropic.js.map +1 -0
  14. package/dist/agents/providers/replay.d.ts +46 -0
  15. package/dist/agents/providers/replay.d.ts.map +1 -0
  16. package/dist/agents/providers/replay.js +162 -0
  17. package/dist/agents/providers/replay.js.map +1 -0
  18. package/dist/agents/schemas.d.ts +3 -3
  19. package/dist/agents/schemas.d.ts.map +1 -1
  20. package/dist/agents/schemas.js.map +1 -1
  21. package/dist/browser.d.ts +26 -3
  22. package/dist/browser.d.ts.map +1 -1
  23. package/dist/browser.js +23 -3
  24. package/dist/browser.js.map +1 -1
  25. package/dist/calc/builtins.d.ts +10 -0
  26. package/dist/calc/builtins.d.ts.map +1 -1
  27. package/dist/calc/builtins.js +64 -42
  28. package/dist/calc/builtins.js.map +1 -1
  29. package/dist/calc/errors.js +1 -1
  30. package/dist/calc/evaluator.js +6 -2
  31. package/dist/calc/evaluator.js.map +1 -1
  32. package/dist/calc/index.d.ts +7 -0
  33. package/dist/calc/index.d.ts.map +1 -1
  34. package/dist/calc/index.js +13 -1
  35. package/dist/calc/index.js.map +1 -1
  36. package/dist/calc/quantize.d.ts +56 -0
  37. package/dist/calc/quantize.d.ts.map +1 -0
  38. package/dist/calc/quantize.js +116 -0
  39. package/dist/calc/quantize.js.map +1 -0
  40. package/dist/cli-packages.d.ts +11 -0
  41. package/dist/cli-packages.d.ts.map +1 -0
  42. package/dist/cli-packages.js +177 -0
  43. package/dist/cli-packages.js.map +1 -0
  44. package/dist/cli.js +424 -28
  45. package/dist/cli.js.map +1 -1
  46. package/dist/context.js +23 -23
  47. package/dist/deal-package-context.d.ts +52 -0
  48. package/dist/deal-package-context.d.ts.map +1 -0
  49. package/dist/deal-package-context.js +132 -0
  50. package/dist/deal-package-context.js.map +1 -0
  51. package/dist/deal-package-zip.d.ts +36 -0
  52. package/dist/deal-package-zip.d.ts.map +1 -0
  53. package/dist/deal-package-zip.js +132 -0
  54. package/dist/deal-package-zip.js.map +1 -0
  55. package/dist/deal-package.d.ts +82 -0
  56. package/dist/deal-package.d.ts.map +1 -0
  57. package/dist/deal-package.js +189 -0
  58. package/dist/deal-package.js.map +1 -0
  59. package/dist/defaults.d.ts +48 -0
  60. package/dist/defaults.d.ts.map +1 -1
  61. package/dist/defaults.js +512 -0
  62. package/dist/defaults.js.map +1 -1
  63. package/dist/index.d.ts +32 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +27 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/init.js +1 -1
  68. package/dist/init.js.map +1 -1
  69. package/dist/integrity.d.ts +9 -0
  70. package/dist/integrity.d.ts.map +1 -1
  71. package/dist/integrity.js +12 -2
  72. package/dist/integrity.js.map +1 -1
  73. package/dist/lease-abstract.d.ts +82 -0
  74. package/dist/lease-abstract.d.ts.map +1 -0
  75. package/dist/lease-abstract.js +183 -0
  76. package/dist/lease-abstract.js.map +1 -0
  77. package/dist/lite-bridge.d.ts +58 -0
  78. package/dist/lite-bridge.d.ts.map +1 -0
  79. package/dist/lite-bridge.js +525 -0
  80. package/dist/lite-bridge.js.map +1 -0
  81. package/dist/lite.d.ts +63 -0
  82. package/dist/lite.d.ts.map +1 -0
  83. package/dist/lite.js +362 -0
  84. package/dist/lite.js.map +1 -0
  85. package/dist/modules.d.ts.map +1 -1
  86. package/dist/modules.js +278 -13
  87. package/dist/modules.js.map +1 -1
  88. package/dist/packs/excel-emit.d.ts +18 -1
  89. package/dist/packs/excel-emit.d.ts.map +1 -1
  90. package/dist/packs/excel-emit.js +18 -1
  91. package/dist/packs/excel-emit.js.map +1 -1
  92. package/dist/packs/hospitality.d.ts +3 -0
  93. package/dist/packs/hospitality.d.ts.map +1 -0
  94. package/dist/packs/hospitality.js +122 -0
  95. package/dist/packs/hospitality.js.map +1 -0
  96. package/dist/packs/index.d.ts +5 -1
  97. package/dist/packs/index.d.ts.map +1 -1
  98. package/dist/packs/index.js +13 -1
  99. package/dist/packs/index.js.map +1 -1
  100. package/dist/packs/land.d.ts +3 -0
  101. package/dist/packs/land.d.ts.map +1 -0
  102. package/dist/packs/land.js +124 -0
  103. package/dist/packs/land.js.map +1 -0
  104. package/dist/packs/senior-housing.d.ts +3 -0
  105. package/dist/packs/senior-housing.d.ts.map +1 -0
  106. package/dist/packs/senior-housing.js +123 -0
  107. package/dist/packs/senior-housing.js.map +1 -0
  108. package/dist/packs/student-housing.d.ts +3 -0
  109. package/dist/packs/student-housing.d.ts.map +1 -0
  110. package/dist/packs/student-housing.js +124 -0
  111. package/dist/packs/student-housing.js.map +1 -0
  112. package/dist/parser.d.ts +9 -0
  113. package/dist/parser.d.ts.map +1 -1
  114. package/dist/parser.js +40 -6
  115. package/dist/parser.js.map +1 -1
  116. package/dist/protocol.d.ts +69 -2
  117. package/dist/protocol.d.ts.map +1 -1
  118. package/dist/protocol.js +109 -1
  119. package/dist/protocol.js.map +1 -1
  120. package/dist/receipts.d.ts +216 -0
  121. package/dist/receipts.d.ts.map +1 -0
  122. package/dist/receipts.js +554 -0
  123. package/dist/receipts.js.map +1 -0
  124. package/dist/report.js +165 -165
  125. package/dist/runner.d.ts +13 -0
  126. package/dist/runner.d.ts.map +1 -1
  127. package/dist/runner.js +5 -5
  128. package/dist/runner.js.map +1 -1
  129. package/dist/source-representation.d.ts +40 -0
  130. package/dist/source-representation.d.ts.map +1 -0
  131. package/dist/source-representation.js +114 -0
  132. package/dist/source-representation.js.map +1 -0
  133. package/dist/types.d.ts +9 -0
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +34 -0
  136. package/dist/types.js.map +1 -1
  137. package/dist/uwcsv.d.ts.map +1 -1
  138. package/dist/uwcsv.js +10 -78
  139. package/dist/uwcsv.js.map +1 -1
  140. package/dist/uwxml.d.ts.map +1 -1
  141. package/dist/uwxml.js +10 -2
  142. package/dist/uwxml.js.map +1 -1
  143. package/dist/validator.js +10 -10
  144. package/dist/validator.js.map +1 -1
  145. package/dist/version.d.ts +3 -0
  146. package/dist/version.d.ts.map +1 -0
  147. package/dist/version.js +8 -0
  148. package/dist/version.js.map +1 -0
  149. package/dist/zip-safety.d.ts +15 -0
  150. package/dist/zip-safety.d.ts.map +1 -0
  151. package/dist/zip-safety.js +109 -0
  152. package/dist/zip-safety.js.map +1 -0
  153. package/package.json +12 -3
package/dist/modules.js CHANGED
@@ -6,25 +6,15 @@
6
6
  // registry. It deliberately does not perform dynamic imports or introduce new
7
7
  // asset-class identifiers; those remain v2/RFC concerns.
8
8
  import { parseExpression } from './calc/parser.js';
9
+ import { MAX_ROUND_TO } from './calc/quantize.js';
9
10
  import { FORMAT_VERSION, PROTOCOL_VERSION, } from './protocol.js';
11
+ import { ASSET_CLASSES } from './types.js';
10
12
  const TIERS = [
11
13
  'tier-1-reader',
12
14
  'tier-2-editor',
13
15
  'tier-3-calc-host',
14
16
  'tier-4-agent-host',
15
17
  ];
16
- const ASSET_CLASSES = [
17
- 'multifamily',
18
- 'office',
19
- 'retail',
20
- 'industrial',
21
- 'self_storage',
22
- 'hospitality',
23
- 'mixed_use',
24
- 'senior_housing',
25
- 'student_housing',
26
- 'land',
27
- ];
28
18
  const DEAL_STAGES = [
29
19
  'scope',
30
20
  'screening',
@@ -35,6 +25,44 @@ const DEAL_STAGES = [
35
25
  'monitoring',
36
26
  ];
37
27
  const SEVERITIES = ['error', 'warning', 'info'];
28
+ const FIELD_VIEW_KINDS = [
29
+ 'currency',
30
+ 'percent',
31
+ 'ratio',
32
+ 'count',
33
+ 'date',
34
+ 'string',
35
+ 'enum',
36
+ 'list',
37
+ ];
38
+ // Key sets mirror `additionalProperties: false` in
39
+ // spec/schemas/module-manifest.schema.json. An unknown key is a typo far more
40
+ // often than it is a forward-compatible extension, and a typo'd `calculationz`
41
+ // silently contributes nothing — `manifest_version` is the forward-compat lever.
42
+ const MANIFEST_KEYS = [
43
+ 'manifest_version', 'id', 'name', 'version', 'description', 'authors', 'license',
44
+ 'requires_protocol', 'requires_format', 'requires_tier', 'asset_classes',
45
+ 'deal_stages', 'sections', 'calculations', 'validations', 'thresholds',
46
+ 'view_models', 'ui', 'agent_layers', 'depends_on',
47
+ ];
48
+ const SECTION_KEYS = ['id', 'display_name', 'schema', 'required'];
49
+ const CALC_KEYS = ['id', 'label', 'formula', 'unit', 'round_to', 'deterministic'];
50
+ const VALIDATION_KEYS = ['code', 'severity', 'message', 'rule'];
51
+ const VIEW_MODEL_KEYS = [
52
+ 'section_id', 'display_name', 'display_order', 'description',
53
+ 'primary_fields', 'detail_fields', 'multi_variant',
54
+ ];
55
+ const FIELD_HINT_KEYS = [
56
+ 'path', 'label', 'kind', 'primary', 'unit', 'decimals', 'enum',
57
+ ];
58
+ const AGENT_LAYER_KEYS = ['id', 'reads', 'writes', 'prompt_template'];
59
+ const DEPENDS_ON_KEYS = ['id', 'version'];
60
+ // Length caps mirror the schema's minLength/maxLength constraints.
61
+ const ID_MIN_LENGTH = 3;
62
+ const ID_MAX_LENGTH = 128;
63
+ const NAME_MAX_LENGTH = 200;
64
+ const DESCRIPTION_MAX_LENGTH = 2000;
65
+ const AGENT_LAYER_ID_PATTERN = /^L\d+(?:_[a-z_]+)?$/;
38
66
  export class ModuleRegistryError extends Error {
39
67
  errors;
40
68
  constructor(errors) {
@@ -53,9 +81,18 @@ export function loadModuleManifest(candidate, opts = {}) {
53
81
  export function createModuleRegistry(opts) {
54
82
  const loaded = [];
55
83
  const errors = [];
84
+ const seenIds = new Set();
56
85
  for (const candidate of opts.modules) {
57
86
  const result = loadModuleManifest(candidate, { ...opts, alreadyLoaded: loaded });
58
87
  if (result.ok && result.manifest) {
88
+ // Two manifests sharing an id used to both load, with `byId` silently
89
+ // resolving to whichever came last — a registry lookup returning the
90
+ // wrong module. Refuse rather than pick.
91
+ if (seenIds.has(result.manifest.id)) {
92
+ errors.push(moduleError('PROTO-MOD-066', `Duplicate module id in registry: ${result.manifest.id}`, 'id'));
93
+ continue;
94
+ }
95
+ seenIds.add(result.manifest.id);
59
96
  loaded.push(result.manifest);
60
97
  }
61
98
  else {
@@ -118,6 +155,10 @@ function validateModuleManifest(manifest, opts) {
118
155
  if (!TIERS.includes(manifest.requires_tier)) {
119
156
  errors.push(moduleError('PROTO-MOD-006', 'Module requires_tier is not a valid viewer tier.', 'requires_tier'));
120
157
  }
158
+ rejectUnknownKeys(errors, manifest, MANIFEST_KEYS, '');
159
+ boundLength(errors, manifest.id, 'id', ID_MIN_LENGTH, ID_MAX_LENGTH);
160
+ boundLength(errors, manifest.name, 'name', 1, NAME_MAX_LENGTH);
161
+ boundLength(errors, manifest.description, 'description', 1, DESCRIPTION_MAX_LENGTH);
121
162
  if (manifest.asset_classes !== undefined) {
122
163
  if (!Array.isArray(manifest.asset_classes)) {
123
164
  errors.push(moduleError('PROTO-MOD-007', 'asset_classes must be an array.', 'asset_classes'));
@@ -145,12 +186,195 @@ function validateModuleManifest(manifest, opts) {
145
186
  }
146
187
  }
147
188
  }
189
+ validateSections(errors, manifest);
148
190
  validateCalculations(errors, manifest);
149
191
  validateValidations(errors, manifest);
192
+ validateThresholds(errors, manifest);
193
+ validateViewModels(errors, manifest);
194
+ validateAgentLayers(errors, manifest);
195
+ validateDependsOnShape(errors, manifest);
150
196
  validateDependencies(errors, manifest, opts.alreadyLoaded ?? []);
151
197
  validateCompatibility(errors, manifest, opts);
152
198
  return errors;
153
199
  }
200
+ function validateSections(errors, manifest) {
201
+ if (manifest.sections === undefined)
202
+ return;
203
+ if (!Array.isArray(manifest.sections)) {
204
+ errors.push(moduleError('PROTO-MOD-033', 'sections must be an array.', 'sections'));
205
+ return;
206
+ }
207
+ const ids = new Set();
208
+ for (const [idx, section] of manifest.sections.entries()) {
209
+ const pointer = `sections[${idx}]`;
210
+ if (!isRecord(section)) {
211
+ errors.push(moduleError('PROTO-MOD-034', 'Section declaration must be an object.', pointer));
212
+ continue;
213
+ }
214
+ rejectUnknownKeys(errors, section, SECTION_KEYS, pointer);
215
+ if (typeof section.id !== 'string' || section.id.length === 0) {
216
+ errors.push(moduleError('PROTO-MOD-035', 'Section id is required.', `${pointer}.id`));
217
+ }
218
+ else if (ids.has(section.id)) {
219
+ errors.push(moduleError('PROTO-MOD-036', `Duplicate section id: ${section.id}`, `${pointer}.id`));
220
+ }
221
+ else {
222
+ ids.add(section.id);
223
+ }
224
+ if (typeof section.display_name !== 'string' || section.display_name.length === 0) {
225
+ errors.push(moduleError('PROTO-MOD-037', 'Section display_name is required.', `${pointer}.display_name`));
226
+ }
227
+ // The schema fragment is not itself compiled here — core carries no JSON
228
+ // Schema validator by design (the layering invariant permits only the
229
+ // Anthropic SDK as a runtime dependency). Shape is checked; semantics are
230
+ // the host's to enforce with whatever validator it already has.
231
+ if (!isRecord(section.schema)) {
232
+ errors.push(moduleError('PROTO-MOD-038', 'Section schema must be a JSON Schema object.', `${pointer}.schema`));
233
+ }
234
+ if (section.required !== undefined && typeof section.required !== 'boolean') {
235
+ errors.push(moduleError('PROTO-MOD-039', 'Section required must be a boolean.', `${pointer}.required`));
236
+ }
237
+ }
238
+ }
239
+ function validateThresholds(errors, manifest) {
240
+ if (manifest.thresholds === undefined)
241
+ return;
242
+ if (!isRecord(manifest.thresholds)) {
243
+ errors.push(moduleError('PROTO-MOD-040', 'thresholds must be an object.', 'thresholds'));
244
+ return;
245
+ }
246
+ for (const [key, value] of Object.entries(manifest.thresholds)) {
247
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
248
+ errors.push(moduleError('PROTO-MOD-041', `Threshold override ${key} must be a finite number.`, `thresholds.${key}`));
249
+ }
250
+ }
251
+ }
252
+ function validateViewModels(errors, manifest) {
253
+ if (manifest.view_models === undefined)
254
+ return;
255
+ if (!Array.isArray(manifest.view_models)) {
256
+ errors.push(moduleError('PROTO-MOD-042', 'view_models must be an array.', 'view_models'));
257
+ return;
258
+ }
259
+ for (const [idx, vm] of manifest.view_models.entries()) {
260
+ const pointer = `view_models[${idx}]`;
261
+ if (!isRecord(vm)) {
262
+ errors.push(moduleError('PROTO-MOD-043', 'View model declaration must be an object.', pointer));
263
+ continue;
264
+ }
265
+ rejectUnknownKeys(errors, vm, VIEW_MODEL_KEYS, pointer);
266
+ for (const key of ['section_id', 'display_name', 'description']) {
267
+ if (typeof vm[key] !== 'string' || vm[key].length === 0) {
268
+ errors.push(moduleError('PROTO-MOD-044', `View model ${key} is required.`, `${pointer}.${key}`));
269
+ }
270
+ }
271
+ if (typeof vm.display_order !== 'number' || !Number.isInteger(vm.display_order) || vm.display_order < 0) {
272
+ errors.push(moduleError('PROTO-MOD-045', 'View model display_order must be a non-negative integer.', `${pointer}.display_order`));
273
+ }
274
+ validateFieldHints(errors, vm.primary_fields, `${pointer}.primary_fields`, true);
275
+ validateFieldHints(errors, vm.detail_fields, `${pointer}.detail_fields`, false);
276
+ if (vm.multi_variant !== undefined && typeof vm.multi_variant !== 'boolean') {
277
+ errors.push(moduleError('PROTO-MOD-046', 'View model multi_variant must be a boolean.', `${pointer}.multi_variant`));
278
+ }
279
+ }
280
+ }
281
+ function validateFieldHints(errors, hints, pointer, required) {
282
+ if (hints === undefined) {
283
+ if (required)
284
+ errors.push(moduleError('PROTO-MOD-047', 'primary_fields is required.', pointer));
285
+ return;
286
+ }
287
+ if (!Array.isArray(hints)) {
288
+ errors.push(moduleError('PROTO-MOD-048', 'Field hint list must be an array.', pointer));
289
+ return;
290
+ }
291
+ for (const [idx, hint] of hints.entries()) {
292
+ const hintPointer = `${pointer}[${idx}]`;
293
+ if (!isRecord(hint)) {
294
+ errors.push(moduleError('PROTO-MOD-049', 'Field view hint must be an object.', hintPointer));
295
+ continue;
296
+ }
297
+ rejectUnknownKeys(errors, hint, FIELD_HINT_KEYS, hintPointer);
298
+ for (const key of ['path', 'label']) {
299
+ if (typeof hint[key] !== 'string' || hint[key].length === 0) {
300
+ errors.push(moduleError('PROTO-MOD-050', `Field view hint ${key} is required.`, `${hintPointer}.${key}`));
301
+ }
302
+ }
303
+ if (typeof hint.kind !== 'string' || !FIELD_VIEW_KINDS.includes(hint.kind)) {
304
+ errors.push(moduleError('PROTO-MOD-051', `Field view hint kind must be one of: ${FIELD_VIEW_KINDS.join(', ')}.`, `${hintPointer}.kind`));
305
+ }
306
+ if (hint.decimals !== undefined) {
307
+ if (typeof hint.decimals !== 'number' || !Number.isInteger(hint.decimals) || hint.decimals < 0 || hint.decimals > 10) {
308
+ errors.push(moduleError('PROTO-MOD-052', 'Field view hint decimals must be an integer between 0 and 10.', `${hintPointer}.decimals`));
309
+ }
310
+ }
311
+ if (hint.primary !== undefined && typeof hint.primary !== 'boolean') {
312
+ errors.push(moduleError('PROTO-MOD-053', 'Field view hint primary must be a boolean.', `${hintPointer}.primary`));
313
+ }
314
+ if (hint.enum !== undefined && (!Array.isArray(hint.enum) || !hint.enum.every((v) => typeof v === 'string'))) {
315
+ errors.push(moduleError('PROTO-MOD-054', 'Field view hint enum must be a string array.', `${hintPointer}.enum`));
316
+ }
317
+ }
318
+ }
319
+ // Agent layers carry `prompt_template`, so a malformed one is a Tier-4 prompt
320
+ // surface defect, not just a shape error. This is the construct with the widest
321
+ // blast radius and it previously had no validation at all.
322
+ function validateAgentLayers(errors, manifest) {
323
+ if (manifest.agent_layers === undefined)
324
+ return;
325
+ if (!Array.isArray(manifest.agent_layers)) {
326
+ errors.push(moduleError('PROTO-MOD-055', 'agent_layers must be an array.', 'agent_layers'));
327
+ return;
328
+ }
329
+ const ids = new Set();
330
+ for (const [idx, layer] of manifest.agent_layers.entries()) {
331
+ const pointer = `agent_layers[${idx}]`;
332
+ if (!isRecord(layer)) {
333
+ errors.push(moduleError('PROTO-MOD-056', 'Agent layer declaration must be an object.', pointer));
334
+ continue;
335
+ }
336
+ rejectUnknownKeys(errors, layer, AGENT_LAYER_KEYS, pointer);
337
+ if (typeof layer.id !== 'string' || !AGENT_LAYER_ID_PATTERN.test(layer.id)) {
338
+ errors.push(moduleError('PROTO-MOD-057', 'Agent layer id must match ^L\\d+(?:_[a-z_]+)?$.', `${pointer}.id`));
339
+ }
340
+ else if (ids.has(layer.id)) {
341
+ errors.push(moduleError('PROTO-MOD-058', `Duplicate agent layer id: ${layer.id}`, `${pointer}.id`));
342
+ }
343
+ else {
344
+ ids.add(layer.id);
345
+ }
346
+ for (const key of ['reads', 'writes']) {
347
+ const value = layer[key];
348
+ if (!Array.isArray(value) || !value.every((v) => typeof v === 'string' && v.length > 0)) {
349
+ errors.push(moduleError('PROTO-MOD-059', `Agent layer ${key} must be an array of non-empty strings.`, `${pointer}.${key}`));
350
+ }
351
+ }
352
+ if (typeof layer.prompt_template !== 'string' || layer.prompt_template.length === 0) {
353
+ errors.push(moduleError('PROTO-MOD-060', 'Agent layer prompt_template must be a non-empty string.', `${pointer}.prompt_template`));
354
+ }
355
+ }
356
+ }
357
+ function validateDependsOnShape(errors, manifest) {
358
+ if (manifest.depends_on === undefined)
359
+ return;
360
+ if (!Array.isArray(manifest.depends_on)) {
361
+ errors.push(moduleError('PROTO-MOD-061', 'depends_on must be an array.', 'depends_on'));
362
+ return;
363
+ }
364
+ for (const [idx, dep] of manifest.depends_on.entries()) {
365
+ const pointer = `depends_on[${idx}]`;
366
+ if (!isRecord(dep)) {
367
+ errors.push(moduleError('PROTO-MOD-062', 'Dependency declaration must be an object.', pointer));
368
+ continue;
369
+ }
370
+ rejectUnknownKeys(errors, dep, DEPENDS_ON_KEYS, pointer);
371
+ for (const key of ['id', 'version']) {
372
+ if (typeof dep[key] !== 'string' || dep[key].length === 0) {
373
+ errors.push(moduleError('PROTO-MOD-063', `Dependency ${key} is required.`, `${pointer}.${key}`));
374
+ }
375
+ }
376
+ }
377
+ }
154
378
  function validateCalculations(errors, manifest) {
155
379
  if (manifest.calculations === undefined)
156
380
  return;
@@ -165,6 +389,7 @@ function validateCalculations(errors, manifest) {
165
389
  errors.push(moduleError('PROTO-MOD-013', 'Calculation declaration must be an object.', pointer));
166
390
  continue;
167
391
  }
392
+ rejectUnknownKeys(errors, calc, CALC_KEYS, pointer);
168
393
  if (typeof calc.id !== 'string' || !/^[a-z][a-z0-9_]*$/.test(calc.id)) {
169
394
  errors.push(moduleError('PROTO-MOD-014', 'Calculation id must match ^[a-z][a-z0-9_]*$.', `${pointer}.id`));
170
395
  }
@@ -189,6 +414,16 @@ function validateCalculations(errors, manifest) {
189
414
  if (calc.deterministic !== true) {
190
415
  errors.push(moduleError('PROTO-MOD-019', 'v1 calculations must declare deterministic: true.', `${pointer}.deterministic`));
191
416
  }
417
+ // §VIII.5: round_to is the precision contract a receipt digest depends on, so
418
+ // a malformed one is refused rather than silently replaced by the unit default.
419
+ if (calc.round_to !== undefined) {
420
+ if (typeof calc.round_to !== 'number'
421
+ || !Number.isInteger(calc.round_to)
422
+ || calc.round_to < 0
423
+ || calc.round_to > MAX_ROUND_TO) {
424
+ errors.push(moduleError('PROTO-MOD-067', `Calculation round_to must be an integer in [0, ${MAX_ROUND_TO}].`, `${pointer}.round_to`));
425
+ }
426
+ }
192
427
  }
193
428
  }
194
429
  function validateValidations(errors, manifest) {
@@ -204,6 +439,7 @@ function validateValidations(errors, manifest) {
204
439
  errors.push(moduleError('PROTO-MOD-021', 'Validation declaration must be an object.', pointer));
205
440
  continue;
206
441
  }
442
+ rejectUnknownKeys(errors, rule, VALIDATION_KEYS, pointer);
207
443
  if (typeof rule.code !== 'string' || !/^[A-Z]{2,8}-[A-Z0-9-]+$/.test(rule.code)) {
208
444
  errors.push(moduleError('PROTO-MOD-022', 'Validation code must match the module-code pattern.', `${pointer}.code`));
209
445
  }
@@ -227,8 +463,14 @@ function validateValidations(errors, manifest) {
227
463
  }
228
464
  }
229
465
  function validateDependencies(errors, manifest, alreadyLoaded) {
466
+ // Shape is validated separately; skip resolution entirely if it is malformed
467
+ // so a `depends_on: "other"` string is not iterated character by character.
468
+ if (manifest.depends_on !== undefined && !Array.isArray(manifest.depends_on))
469
+ return;
230
470
  const loaded = new Map(alreadyLoaded.map((m) => [m.id, m]));
231
471
  for (const dep of manifest.depends_on ?? []) {
472
+ if (!isRecord(dep) || typeof dep.id !== 'string' || typeof dep.version !== 'string')
473
+ continue;
232
474
  const dependency = loaded.get(dep.id);
233
475
  if (!dependency) {
234
476
  errors.push(moduleError('PROTO-MOD-027', `Missing module dependency: ${dep.id}`, 'depends_on'));
@@ -284,8 +526,17 @@ function versionSatisfies(version, range) {
284
526
  }
285
527
  });
286
528
  }
529
+ // Partial versions are padded to full semver before comparison. The schema
530
+ // documents `^1` as a valid requires_protocol spelling, but only `X.Y` was
531
+ // padded, so a bare major failed to parse and every range containing one was
532
+ // silently unsatisfiable.
287
533
  function normalizeFormatVersion(version) {
288
- return /^\d+\.\d+$/.test(version) ? `${version}.0` : version;
534
+ const trimmed = version.trim();
535
+ if (/^\d+$/.test(trimmed))
536
+ return `${trimmed}.0.0`;
537
+ if (/^\d+\.\d+$/.test(trimmed))
538
+ return `${trimmed}.0`;
539
+ return trimmed;
289
540
  }
290
541
  function parseSemver(version) {
291
542
  const m = /^(\d+)\.(\d+)\.(\d+)/.exec(version);
@@ -299,6 +550,20 @@ function requireString(errors, manifest, key) {
299
550
  errors.push(moduleError('PROTO-MOD-032', `Required string field missing: ${key}`, key));
300
551
  }
301
552
  }
553
+ function rejectUnknownKeys(errors, value, allowed, pointer) {
554
+ for (const key of Object.keys(value)) {
555
+ if (allowed.includes(key))
556
+ continue;
557
+ errors.push(moduleError('PROTO-MOD-064', `Unknown key: ${key}`, pointer ? `${pointer}.${key}` : key));
558
+ }
559
+ }
560
+ function boundLength(errors, value, key, min, max) {
561
+ if (typeof value !== 'string')
562
+ return; // requireString already reported it
563
+ if (value.length < min || value.length > max) {
564
+ errors.push(moduleError('PROTO-MOD-065', `${key} must be between ${min} and ${max} characters (got ${value.length}).`, key));
565
+ }
566
+ }
302
567
  function freezeManifest(manifest) {
303
568
  return Object.freeze({
304
569
  ...manifest,
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,23 @@ export declare class ExcelEmitError extends Error {
16
16
  * or uses a builtin without a clean Excel equivalent.
17
17
  */
18
18
  export declare function emitFromAst(expr: Expr, opts: ExcelEmitOptions): string;
19
- /** Convenience: parse + emit in one call. */
19
+ /** Convenience: parse + emit in one call. Emits the expression only. */
20
20
  export declare function emitExcelFormula(formula: string, opts: ExcelEmitOptions): string;
21
+ /**
22
+ * Emit the formula for a calculation *declaration*, wrapped in `ROUND` at the
23
+ * declaration's effective `round_to` (§VIII.5).
24
+ *
25
+ * This is what converters should call. `emitExcelFormula` emits the bare
26
+ * expression, which leaves the cell holding Excel's own unquantized double
27
+ * while `evaluateCalc` reports a quantized one — the two then agree only to
28
+ * within a tolerance. Applying the same quantization on both sides makes the
29
+ * Excel↔evaluator invariant an *exact* equality instead of an approximate one,
30
+ * because Excel's `ROUND` is half-away-from-zero, the same rule
31
+ * `quantizeDecimal` implements.
32
+ */
33
+ export declare function emitCalcExcelFormula(decl: {
34
+ formula: string;
35
+ unit?: string;
36
+ round_to?: number;
37
+ }, opts: ExcelEmitOptions): string;
21
38
  //# sourceMappingURL=excel-emit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel-emit.d.ts","sourceRoot":"","sources":["../../src/packs/excel-emit.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,cAAe,SAAQ,KAAK;IAE9B,IAAI,EAAE,iBAAiB,GAAG,eAAe,GAAG,eAAe;gBAA3D,IAAI,EAAE,iBAAiB,GAAG,eAAe,GAAG,eAAe,EAClE,OAAO,EAAE,MAAM;CAKlB;AAuBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA0EtE;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEhF"}
1
+ {"version":3,"file":"excel-emit.d.ts","sourceRoot":"","sources":["../../src/packs/excel-emit.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,cAAe,SAAQ,KAAK;IAE9B,IAAI,EAAE,iBAAiB,GAAG,eAAe,GAAG,eAAe;gBAA3D,IAAI,EAAE,iBAAiB,GAAG,eAAe,GAAG,eAAe,EAClE,OAAO,EAAE,MAAM;CAKlB;AAuBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA0EtE;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3D,IAAI,EAAE,gBAAgB,GACrB,MAAM,CAGR"}
@@ -25,6 +25,7 @@
25
25
  // ROUND, PMT, NPV, IRR). Functions without a clean Excel equivalent
26
26
  // (`coalesce`, `avg` with null handling) raise EXCEL-EMIT-FN.
27
27
  import { parseExpression } from '../calc/parser.js';
28
+ import { resolveRoundTo } from '../calc/quantize.js';
28
29
  export class ExcelEmitError extends Error {
29
30
  code;
30
31
  constructor(code, message) {
@@ -128,8 +129,24 @@ export function emitFromAst(expr, opts) {
128
129
  }
129
130
  }
130
131
  }
131
- /** Convenience: parse + emit in one call. */
132
+ /** Convenience: parse + emit in one call. Emits the expression only. */
132
133
  export function emitExcelFormula(formula, opts) {
133
134
  return emitFromAst(parseExpression(formula), opts);
134
135
  }
136
+ /**
137
+ * Emit the formula for a calculation *declaration*, wrapped in `ROUND` at the
138
+ * declaration's effective `round_to` (§VIII.5).
139
+ *
140
+ * This is what converters should call. `emitExcelFormula` emits the bare
141
+ * expression, which leaves the cell holding Excel's own unquantized double
142
+ * while `evaluateCalc` reports a quantized one — the two then agree only to
143
+ * within a tolerance. Applying the same quantization on both sides makes the
144
+ * Excel↔evaluator invariant an *exact* equality instead of an approximate one,
145
+ * because Excel's `ROUND` is half-away-from-zero, the same rule
146
+ * `quantizeDecimal` implements.
147
+ */
148
+ export function emitCalcExcelFormula(decl, opts) {
149
+ const inner = emitFromAst(parseExpression(decl.formula), opts);
150
+ return `ROUND(${inner},${resolveRoundTo(decl)})`;
151
+ }
135
152
  //# sourceMappingURL=excel-emit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel-emit.js","sourceRoot":"","sources":["../../src/packs/excel-emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excel-emit.js","sourceRoot":"","sources":["../../src/packs/excel-emit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ModuleManifest } from '../protocol.js';
2
+ export declare const HOSPITALITY_PACK: ModuleManifest;
3
+ //# sourceMappingURL=hospitality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hospitality.d.ts","sourceRoot":"","sources":["../../src/packs/hospitality.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,gBAAgB,EAAE,cAoH9B,CAAC"}