@actuarial-ts/interchange 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 (40) hide show
  1. package/README.md +36 -70
  2. package/dist/convert/diagnosticDefinition.d.ts +15 -0
  3. package/dist/convert/diagnosticDefinition.d.ts.map +1 -0
  4. package/dist/convert/diagnosticDefinition.js +47 -0
  5. package/dist/convert/diagnosticDefinition.js.map +1 -0
  6. package/dist/convert/result.d.ts.map +1 -1
  7. package/dist/convert/result.js +2 -2
  8. package/dist/convert/result.js.map +1 -1
  9. package/dist/envelope.d.ts +3 -3
  10. package/dist/envelope.d.ts.map +1 -1
  11. package/dist/envelope.js +4 -2
  12. package/dist/envelope.js.map +1 -1
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/parse.d.ts +2 -1
  18. package/dist/parse.d.ts.map +1 -1
  19. package/dist/parse.js +1 -0
  20. package/dist/parse.js.map +1 -1
  21. package/dist/schemas/bundle.d.ts +2 -0
  22. package/dist/schemas/bundle.d.ts.map +1 -1
  23. package/dist/schemas/bundle.js +2 -0
  24. package/dist/schemas/bundle.js.map +1 -1
  25. package/dist/schemas/diagnosticDefinition.d.ts +11500 -0
  26. package/dist/schemas/diagnosticDefinition.d.ts.map +1 -0
  27. package/dist/schemas/diagnosticDefinition.js +132 -0
  28. package/dist/schemas/diagnosticDefinition.js.map +1 -0
  29. package/dist/schemas/manifest.d.ts.map +1 -1
  30. package/dist/schemas/manifest.js +7 -1
  31. package/dist/schemas/manifest.js.map +1 -1
  32. package/package.json +3 -3
  33. package/src/convert/diagnosticDefinition.ts +75 -0
  34. package/src/convert/result.ts +2 -1
  35. package/src/envelope.ts +4 -2
  36. package/src/index.ts +2 -0
  37. package/src/parse.ts +4 -1
  38. package/src/schemas/bundle.ts +3 -0
  39. package/src/schemas/diagnosticDefinition.ts +171 -0
  40. package/src/schemas/manifest.ts +7 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticDefinition.d.ts","sourceRoot":"","sources":["../../src/schemas/diagnosticDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQpE,eAAO,MAAM,iCAAiC,EAAE,CAAC,CAAC,UAMjD,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,CAAC,CAAC,UAO/C,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,CAAC,CAAC,UAM9C,CAAC;AAqEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA2BjC,CAAC;AAEjB,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,sCAAsC,CAAC;IACnD,UAAU,EAAE,8BAA8B,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,cAAc,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,wBAAwB,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,8BAA8B,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAM/D,CAAC;AAEjB,eAAO,MAAM,6BAA6B,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAE7D,CAAC"}
@@ -0,0 +1,132 @@
1
+ import { z } from "zod";
2
+ import { envelopeShape } from "../envelope.js";
3
+ const token = z.string().min(1);
4
+ const finite = z.number().finite();
5
+ const nullableToken = token.nullable();
6
+ const attributes = z.record(z.union([z.string(), finite, z.boolean(), z.null()]));
7
+ const tolerance = z.object({ absolute: finite.nonnegative(), relative: finite.nonnegative() }).passthrough();
8
+ export const diagnosticMeasureExpressionSchema = z.lazy(() => z.discriminatedUnion("op", [
9
+ z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
10
+ z.object({ op: z.literal("add"), terms: z.array(diagnosticMeasureExpressionSchema).min(1) }).passthrough(),
11
+ z.object({ op: z.literal("subtract"), left: diagnosticMeasureExpressionSchema, right: diagnosticMeasureExpressionSchema }).passthrough(),
12
+ ]));
13
+ export const diagnosticClaimExpressionSchema = z.lazy(() => z.discriminatedUnion("op", [
14
+ z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
15
+ z.object({ op: z.literal("add"), terms: z.array(diagnosticClaimExpressionSchema).min(1) }).passthrough(),
16
+ z.object({ op: z.literal("subtract"), left: diagnosticClaimExpressionSchema, right: diagnosticClaimExpressionSchema }).passthrough(),
17
+ z.object({ op: z.literal("claim-layer"), measureId: token, attachment: finite.nonnegative(), limit: finite.positive().nullable() }).passthrough(),
18
+ ]));
19
+ export const diagnosticRoleExpressionSchema = z.lazy(() => z.discriminatedUnion("op", [
20
+ z.object({ op: z.literal("role"), role: token }).passthrough(),
21
+ z.object({ op: z.literal("add"), terms: z.array(diagnosticRoleExpressionSchema).min(1) }).passthrough(),
22
+ z.object({ op: z.literal("subtract"), left: diagnosticRoleExpressionSchema, right: diagnosticRoleExpressionSchema }).passthrough(),
23
+ ]));
24
+ const limitation = z.discriminatedUnion("kind", [
25
+ z.object({ kind: z.literal("unlimited") }).passthrough(),
26
+ z.object({ kind: z.literal("unknown"), description: z.string().nullable() }).passthrough(),
27
+ z.object({
28
+ kind: z.enum(["layer", "pre-limited"]),
29
+ attachment: finite.nonnegative(),
30
+ limit: finite.positive().nullable(),
31
+ application: z.enum(["claim", "occurrence", "policy", "source-defined"]),
32
+ derivation: z.discriminatedUnion("kind", [
33
+ z.object({ kind: z.literal("sdk") }).passthrough(),
34
+ z.object({ kind: z.literal("external"), actor: z.enum(["caller", "source"]), transformationRef: token }).passthrough(),
35
+ ]),
36
+ }).passthrough(),
37
+ ]);
38
+ const ruleOperand = z.discriminatedUnion("source", [
39
+ z.object({ source: z.literal("measure"), expression: diagnosticMeasureExpressionSchema }).passthrough(),
40
+ z.object({ source: z.literal("calculation"), field: z.enum(["numerator", "denominator"]) }).passthrough(),
41
+ z.object({ source: z.literal("constant"), value: finite }).passthrough(),
42
+ ]);
43
+ const operator = z.enum(["lt", "lte", "eq", "neq", "gte", "gt"]);
44
+ const reviewOperand = z.union([
45
+ diagnosticMeasureExpressionSchema,
46
+ z.object({ op: z.literal("constant"), value: finite }).passthrough(),
47
+ ]);
48
+ const reviewBase = {
49
+ id: token,
50
+ code: token,
51
+ description: z.string(),
52
+ severity: z.enum(["warning", "fail"]),
53
+ missingInput: z.enum(["not-evaluated", "finding"]),
54
+ tolerance,
55
+ };
56
+ const reviewFilter = z.object({
57
+ sourceGroups: z.array(token).nullable(), origins: z.array(token).nullable(),
58
+ originFrom: nullableToken, originThrough: nullableToken, valuations: z.array(token).nullable(),
59
+ valuationFrom: nullableToken, valuationThrough: nullableToken,
60
+ minDevelopmentAge: finite.nullable(), maxDevelopmentAge: finite.nullable(),
61
+ }).passthrough();
62
+ const reviewRule = z.discriminatedUnion("kind", [
63
+ z.object({ ...reviewBase, kind: z.literal("compare"), when: z.object({ left: reviewOperand, operator, right: reviewOperand }).passthrough() }).passthrough(),
64
+ z.object({ ...reviewBase, kind: z.literal("reconcile"), actual: diagnosticMeasureExpressionSchema, expected: reviewOperand }).passthrough(),
65
+ z.object({ ...reviewBase, kind: z.literal("monotonic"), expression: diagnosticMeasureExpressionSchema, direction: z.enum(["nondecreasing", "nonincreasing"]) }).passthrough(),
66
+ z.object({ ...reviewBase, kind: z.literal("layer-order"), narrower: diagnosticMeasureExpressionSchema, broader: diagnosticMeasureExpressionSchema, comparability: z.discriminatedUnion("kind", [
67
+ z.object({ kind: z.literal("compiler-proven") }).passthrough(),
68
+ z.object({ kind: z.literal("caller-asserted"), rationaleArtifactId: token }).passthrough(),
69
+ ]) }).passthrough(),
70
+ z.object({ ...reviewBase, kind: z.literal("control-total"), expression: diagnosticMeasureExpressionSchema, expected: finite, filter: reviewFilter.nullable(), projection: z.discriminatedUnion("kind", [
71
+ z.object({ kind: z.literal("valuation"), valuation: token }).passthrough(),
72
+ z.object({ kind: z.literal("latest-valuation-per-origin") }).passthrough(),
73
+ z.object({ kind: z.literal("all-cells") }).passthrough(),
74
+ ]) }).passthrough(),
75
+ ]);
76
+ const periodAxis = z.discriminatedUnion("kind", [
77
+ z.object({
78
+ kind: z.literal("calendar"), originCadence: z.enum(["month", "quarter", "year"]),
79
+ valuationCadence: z.enum(["month", "quarter", "year"]), originAnchor: z.enum(["start", "end"]),
80
+ valuationAnchor: z.enum(["start", "end"]), ageUnit: z.literal("month"), ageOffset: finite,
81
+ }).passthrough(),
82
+ z.object({
83
+ kind: z.literal("ordered"), id: token, version: token, ageUnit: token, ageOffset: finite,
84
+ origins: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
85
+ valuations: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
86
+ }).passthrough(),
87
+ ]);
88
+ /**
89
+ * Generic wire schema for the normalized diagnostic vocabulary. Known fields
90
+ * are validated and same-major additions are preserved recursively; the
91
+ * executable converter applies core's closed semantic compiler afterward.
92
+ */
93
+ export const normalizedDiagnosticDefinitionSchema = z.object({
94
+ diagnosticDefinitionVersion: z.literal("1.0.0"), id: token, version: token,
95
+ lossRowGrain: z.enum(["claim", "aggregate"]),
96
+ measures: z.array(z.object({
97
+ id: token, displayName: z.string(), description: z.string(), source: z.enum(["loss", "exposure", "derived"]),
98
+ kind: z.enum(["count", "amount", "exposure"]), unit: token,
99
+ developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]),
100
+ aggregation: z.literal("sum"), missing: z.enum(["unknown", "zero"]), basisId: nullableToken,
101
+ countPopulationId: nullableToken, exposureBasisId: nullableToken,
102
+ exposureTiming: z.enum(["origin-static", "valuation-specific"]).nullable(),
103
+ }).passthrough()),
104
+ countPopulations: z.array(z.object({ id: token, displayName: z.string(), subject: z.enum(["claim", "claimant", "policy", "occurrence", "other", "unknown"]), unit: token, description: z.string(), attributes }).passthrough()),
105
+ exposureBases: z.array(z.object({ id: token, displayName: z.string(), basis: z.enum(["earned", "written", "in-force", "other", "unknown"]), unit: token, description: z.string(), sourceDescription: z.string().nullable(), attributes }).passthrough()),
106
+ amountBases: z.array(z.object({ id: token, displayName: z.string(), currency: token, perspective: z.enum(["gross", "net", "ceded", "other", "unknown"]), components: z.array(z.object({ id: token, treatment: z.enum(["included", "excluded", "unknown"]), limitation }).passthrough()), sourceDescription: z.string().nullable(), attributes }).passthrough()),
107
+ derivedMeasures: z.array(z.object({ id: token, outputMeasureId: token, expression: diagnosticClaimExpressionSchema }).passthrough()),
108
+ formulas: z.array(z.object({
109
+ id: token, version: token,
110
+ roles: z.record(z.object({ kind: z.enum(["count", "amount", "exposure"]), compatibilityGroup: nullableToken, developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]).nullable() }).passthrough()),
111
+ numerator: diagnosticRoleExpressionSchema, denominator: diagnosticRoleExpressionSchema,
112
+ denominatorPolicy: z.literal("positive-or-null"),
113
+ }).passthrough()),
114
+ instances: z.array(z.object({
115
+ id: token, version: token, formulaId: token, bindings: z.record(diagnosticMeasureExpressionSchema),
116
+ presentation: z.object({ displayName: z.string(), description: z.string(), displayUnit: token, scale: finite.positive(), numeratorLabel: z.string(), denominatorLabel: z.string() }).passthrough(),
117
+ rules: z.array(z.object({ id: token, code: token, message: z.string(), severity: z.enum(["warning", "fail"]), when: z.object({ left: ruleOperand, operator, right: ruleOperand, tolerance }).passthrough() }).passthrough()),
118
+ }).passthrough()),
119
+ reviewRules: z.array(reviewRule), periodAxis,
120
+ }).passthrough();
121
+ const identityTag = z.string().regex(/^fnv1a64-jcs-v1:[0-9a-f]{16}$/);
122
+ export const diagnosticDefinitionBodySchema = z.object({
123
+ definition: normalizedDiagnosticDefinitionSchema,
124
+ identities: z.object({
125
+ algorithm: z.literal("fnv1a64-jcs-v1"), formulaById: z.record(identityTag),
126
+ calculationByInstanceId: z.record(identityTag), definition: identityTag,
127
+ }).passthrough(),
128
+ }).passthrough();
129
+ export const diagnosticDefinitionDocSchema = z.object({
130
+ ...envelopeShape("diagnostic-definition"), diagnosticDefinition: diagnosticDefinitionBodySchema,
131
+ }).passthrough();
132
+ //# sourceMappingURL=diagnosticDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticDefinition.js","sourceRoot":"","sources":["../../src/schemas/diagnosticDefinition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQnD;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;CACtB;AAED,eAAO,MAAM,2BAA2B,EAAE,SAAS,mBAAmB,EAgBrE,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAE3F;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,GACpE,aAAa,EAAE,CAMjB"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASnD;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;CACtB;AAED,eAAO,MAAM,2BAA2B,EAAE,SAAS,mBAAmB,EAqBrE,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAE3F;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,GACpE,aAAa,EAAE,CAMjB"}
@@ -4,6 +4,7 @@ import { methodResultDocSchema, stochasticResultDocSchema } from "./result.js";
4
4
  import { studyDocSchema } from "./study.js";
5
5
  import { bundleDocSchema } from "./bundle.js";
6
6
  import { crosscheckReportDocSchema } from "./crosscheck.js";
7
+ import { diagnosticDefinitionDocSchema } from "./diagnosticDefinition.js";
7
8
  export const INTERCHANGE_SCHEMA_MANIFEST = [
8
9
  { kind: "triangle", fileName: "triangle.schema.json", schema: triangleDocSchema },
9
10
  { kind: "selection", fileName: "selection.schema.json", schema: selectionDocSchema },
@@ -20,10 +21,15 @@ export const INTERCHANGE_SCHEMA_MANIFEST = [
20
21
  fileName: "crosscheck-report.schema.json",
21
22
  schema: crosscheckReportDocSchema,
22
23
  },
24
+ {
25
+ kind: "diagnostic-definition",
26
+ fileName: "diagnostic-definition.schema.json",
27
+ schema: diagnosticDefinitionDocSchema,
28
+ },
23
29
  ];
24
30
  /** Options both the emit script and the drift test must pass to the converter. */
25
31
  export function emitOptionsFor(kind) {
26
- return { name: kind, target: "jsonSchema7", $refStrategy: "none" };
32
+ return { name: kind, target: "jsonSchema7", $refStrategy: "root" };
27
33
  }
28
34
  /**
29
35
  * Emits every document kind's JSON Schema through the supplied converter
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAyB5D,MAAM,CAAC,MAAM,2BAA2B,GAAmC;IACzE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACjF,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,kBAAkB,EAAE;IACpF,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,qBAAqB,EAAE;IAC/F;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,yBAAyB;KAClC;IACD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE;IACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE;IAC3E;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,yBAAyB;KAClC;CACF,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqE;IAErE,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KAC/E,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAyB1E,MAAM,CAAC,MAAM,2BAA2B,GAAmC;IACzE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACjF,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,kBAAkB,EAAE;IACpF,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,qBAAqB,EAAE;IAC/F;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,yBAAyB;KAClC;IACD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE;IACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE;IAC3E;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,yBAAyB;KAClC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,mCAAmC;QAC7C,MAAM,EAAE,6BAA6B;KACtC;CACF,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqE;IAErE,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KAC/E,CAAC,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@actuarial-ts/interchange",
3
- "version": "0.4.0",
4
- "description": "The actuarial-interchange format for the actuarial-ts SDK: language-neutral, versioned interchange documents (triangles, selections, method results, studies, bundles, crosscheck reports) with RFC 8785 canonicalization, semantic-body integrity tags, an intent/value coherence rule, and the cross-implementation referee. Bridges actuarial-ts with chainladder-python and R ChainLadder.",
3
+ "version": "0.6.0",
4
+ "description": "Language-neutral actuarial-interchange documents for triangles, selections, results, studies, bundles, crosschecks, and portable diagnostic definitions across TypeScript, Python, and R.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -53,7 +53,7 @@
53
53
  "emit-schema": "npm run build && node --experimental-strip-types scripts/emit-schema.ts"
54
54
  },
55
55
  "dependencies": {
56
- "@actuarial-ts/core": "^0.4.0",
56
+ "@actuarial-ts/core": "^0.6.0",
57
57
  "zod": "^3.25.76"
58
58
  },
59
59
  "devDependencies": {
@@ -0,0 +1,75 @@
1
+ import {
2
+ ReservingError,
3
+ assertCompiledDiagnosticDefinition,
4
+ canonicalJson,
5
+ compileDiagnosticDefinition,
6
+ type CompiledDiagnosticDefinition,
7
+ } from "@actuarial-ts/core";
8
+ import { DEFAULT_GENERATOR, INTERCHANGE_SPEC_VERSION, stampIntegrity, type GeneratorStamp } from "../envelope.js";
9
+ import { parseDocument, type ParseDocumentOptions } from "../parse.js";
10
+ import type { DiagnosticDefinitionDoc } from "../schemas/diagnosticDefinition.js";
11
+
12
+ export interface DiagnosticDefinitionToDocOptions {
13
+ createdAt: string;
14
+ generator?: GeneratorStamp;
15
+ extensions?: Record<string, unknown>;
16
+ }
17
+
18
+ export function diagnosticDefinitionToDoc(
19
+ compiled: CompiledDiagnosticDefinition,
20
+ options: DiagnosticDefinitionToDocOptions,
21
+ ): DiagnosticDefinitionDoc {
22
+ assertCompiledDiagnosticDefinition(compiled);
23
+ return stampIntegrity<DiagnosticDefinitionDoc>({
24
+ interchangeVersion: INTERCHANGE_SPEC_VERSION,
25
+ kind: "diagnostic-definition",
26
+ generator: options.generator ?? DEFAULT_GENERATOR,
27
+ createdAt: options.createdAt,
28
+ ...(options.extensions === undefined ? {} : { extensions: options.extensions }),
29
+ diagnosticDefinition: {
30
+ definition: compiled.definition,
31
+ identities: {
32
+ algorithm: "fnv1a64-jcs-v1",
33
+ formulaById: { ...compiled.formulaFingerprints },
34
+ calculationByInstanceId: { ...compiled.calculationFingerprints },
35
+ definition: compiled.definitionIntegrity,
36
+ },
37
+ },
38
+ });
39
+ }
40
+
41
+ function sameRecord(left: Readonly<Record<string, string>>, right: Readonly<Record<string, string>>): boolean {
42
+ const leftKeys = Object.keys(left).sort();
43
+ const rightKeys = Object.keys(right).sort();
44
+ return leftKeys.length === rightKeys.length && leftKeys.every((key, index) =>
45
+ key === rightKeys[index] && left[key] === right[key],
46
+ );
47
+ }
48
+
49
+ export function docToDiagnosticDefinition(
50
+ value: unknown,
51
+ options?: ParseDocumentOptions,
52
+ ): { definition: CompiledDiagnosticDefinition; warnings: readonly string[] } {
53
+ const parsed = parseDocument(value, options);
54
+ if (parsed.doc.kind !== "diagnostic-definition") {
55
+ throw new ReservingError("BAD_INTERCHANGE", `Expected kind "diagnostic-definition"; got kind "${parsed.doc.kind}"`);
56
+ }
57
+ const body = parsed.doc.diagnosticDefinition;
58
+ const compiled = compileDiagnosticDefinition(body.definition);
59
+ if (canonicalJson(body.definition) !== canonicalJson(compiled.definition)) {
60
+ throw new ReservingError(
61
+ "BAD_INTERCHANGE",
62
+ "Diagnostic definition contains unsupported executable vocabulary or is not in normalized form",
63
+ );
64
+ }
65
+ const identities = body.identities;
66
+ if (
67
+ identities.algorithm !== "fnv1a64-jcs-v1" ||
68
+ identities.definition !== compiled.definitionIntegrity ||
69
+ !sameRecord(identities.formulaById, compiled.formulaFingerprints) ||
70
+ !sameRecord(identities.calculationByInstanceId, compiled.calculationFingerprints)
71
+ ) {
72
+ throw new ReservingError("BAD_INTERCHANGE", "Diagnostic definition identities do not match the compiled semantic definition");
73
+ }
74
+ return { definition: compiled, warnings: parsed.warnings };
75
+ }
@@ -3,6 +3,7 @@ import {
3
3
  type BornhuetterFergusonResult,
4
4
  type ChainLadderResult,
5
5
  type MackResult,
6
+ CORE_PACKAGE_VERSION,
6
7
  ReservingError,
7
8
  } from "@actuarial-ts/core";
8
9
  import {
@@ -46,7 +47,7 @@ export type ConvertibleResult =
46
47
  * The engine stamp for results computed by @actuarial-ts/core. A sync test
47
48
  * pins the version to the installed core package so it cannot drift.
48
49
  */
49
- export const CORE_ENGINE: EngineStamp = { name: "actuarial-ts", version: "0.4.0" };
50
+ export const CORE_ENGINE: EngineStamp = { name: "actuarial-ts", version: CORE_PACKAGE_VERSION };
50
51
 
51
52
  export interface ResultToDocOptions {
52
53
  /** The triangle document the result was computed from. */
package/src/envelope.ts CHANGED
@@ -28,7 +28,7 @@ import { z } from "zod";
28
28
  */
29
29
 
30
30
  /** The interchange spec version this package writes. */
31
- export const INTERCHANGE_SPEC_VERSION = "1.0.0";
31
+ export const INTERCHANGE_SPEC_VERSION = "1.1.0";
32
32
 
33
33
  /** The spec major this package accepts (spec 3.5: readers accept same-major). */
34
34
  export const INTERCHANGE_SPEC_MAJOR = 1;
@@ -37,7 +37,7 @@ export const INTERCHANGE_SPEC_MAJOR = 1;
37
37
  * This package's version, stamped into `generator` by default. A sync test
38
38
  * asserts it matches package.json so it cannot silently drift.
39
39
  */
40
- export const INTERCHANGE_PACKAGE_VERSION = "0.4.0";
40
+ export const INTERCHANGE_PACKAGE_VERSION = "0.6.0";
41
41
 
42
42
  export interface GeneratorStamp {
43
43
  name: string;
@@ -58,6 +58,7 @@ export const DOCUMENT_KINDS = [
58
58
  "study",
59
59
  "bundle",
60
60
  "crosscheck-report",
61
+ "diagnostic-definition",
61
62
  ] as const;
62
63
 
63
64
  export type DocumentKind = (typeof DOCUMENT_KINDS)[number];
@@ -75,6 +76,7 @@ const SEMANTIC_BODY_KEYS: Record<DocumentKind, readonly string[]> = {
75
76
  study: ["study"],
76
77
  bundle: ["bundle", "interchange"],
77
78
  "crosscheck-report": ["report"],
79
+ "diagnostic-definition": ["diagnosticDefinition"],
78
80
  };
79
81
 
80
82
  /** A 16-hex-char fnv1a64 tag. */
package/src/index.ts CHANGED
@@ -6,10 +6,12 @@ export * from "./schemas/result.js";
6
6
  export * from "./schemas/study.js";
7
7
  export * from "./schemas/bundle.js";
8
8
  export * from "./schemas/crosscheck.js";
9
+ export * from "./schemas/diagnosticDefinition.js";
9
10
  export * from "./schemas/manifest.js";
10
11
  export * from "./convert/triangle.js";
11
12
  export * from "./convert/selection.js";
12
13
  export * from "./convert/result.js";
14
+ export * from "./convert/diagnosticDefinition.js";
13
15
  export * from "./referee/profiles.js";
14
16
  export * from "./referee/crosscheck.js";
15
17
  export * from "./referee/crosscheckStochastic.js";
package/src/parse.ts CHANGED
@@ -13,6 +13,7 @@ import type { MethodResultDoc, StochasticResultDoc } from "./schemas/result.js";
13
13
  import type { StudyDoc } from "./schemas/study.js";
14
14
  import type { BundleDoc } from "./schemas/bundle.js";
15
15
  import type { CrosscheckReportDoc } from "./schemas/crosscheck.js";
16
+ import type { DiagnosticDefinitionDoc } from "./schemas/diagnosticDefinition.js";
16
17
 
17
18
  /**
18
19
  * `parseDocument` (spec 4.1): version-checked, schema-validated,
@@ -48,7 +49,8 @@ export type InterchangeDocument =
48
49
  | StochasticResultDoc
49
50
  | StudyDoc
50
51
  | BundleDoc
51
- | CrosscheckReportDoc;
52
+ | CrosscheckReportDoc
53
+ | DiagnosticDefinitionDoc;
52
54
 
53
55
  export interface ParseDocumentOptions {
54
56
  /** How to treat a failed integrity check. Default "refuse". */
@@ -93,6 +95,7 @@ function embeddedDocuments(doc: InterchangeDocument): { path: string; value: unk
93
95
  collect("$.interchange.triangles", mirror["triangles"]);
94
96
  collect("$.interchange.selections", mirror["selections"]);
95
97
  collect("$.interchange.results", mirror["results"]);
98
+ collect("$.interchange.diagnosticDefinitions", mirror["diagnosticDefinitions"]);
96
99
  }
97
100
  }
98
101
  return found;
@@ -8,6 +8,7 @@ import {
8
8
  methodResultDocSchema,
9
9
  stochasticResultDocSchema,
10
10
  } from "./result.js";
11
+ import { type DiagnosticDefinitionDoc, diagnosticDefinitionDocSchema } from "./diagnosticDefinition.js";
11
12
 
12
13
  /**
13
14
  * BundleDoc (spec 3.2) — the wrapped reproducibility bundle.
@@ -31,6 +32,7 @@ export interface BundleInterchange {
31
32
  triangles: TriangleDoc[];
32
33
  selections: SelectionDoc[];
33
34
  results: (MethodResultDoc | StochasticResultDoc)[];
35
+ diagnosticDefinitions?: DiagnosticDefinitionDoc[];
34
36
  [key: string]: unknown;
35
37
  }
36
38
 
@@ -52,6 +54,7 @@ export const bundleInterchangeSchema: z.ZodType<BundleInterchange> = z
52
54
  triangles: z.array(triangleDocSchema),
53
55
  selections: z.array(selectionDocSchema),
54
56
  results: z.array(z.union([methodResultDocSchema, stochasticResultDocSchema])),
57
+ diagnosticDefinitions: z.array(diagnosticDefinitionDocSchema).optional(),
55
58
  })
56
59
  .passthrough();
57
60
 
@@ -0,0 +1,171 @@
1
+ import type { NormalizedDiagnosticDefinitionIdentity } from "@actuarial-ts/core";
2
+ import { z } from "zod";
3
+ import { envelopeShape, type GeneratorStamp } from "../envelope.js";
4
+
5
+ const token = z.string().min(1);
6
+ const finite = z.number().finite();
7
+ const nullableToken = token.nullable();
8
+ const attributes = z.record(z.union([z.string(), finite, z.boolean(), z.null()]));
9
+ const tolerance = z.object({ absolute: finite.nonnegative(), relative: finite.nonnegative() }).passthrough();
10
+
11
+ export const diagnosticMeasureExpressionSchema: z.ZodTypeAny = z.lazy(() =>
12
+ z.discriminatedUnion("op", [
13
+ z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
14
+ z.object({ op: z.literal("add"), terms: z.array(diagnosticMeasureExpressionSchema).min(1) }).passthrough(),
15
+ z.object({ op: z.literal("subtract"), left: diagnosticMeasureExpressionSchema, right: diagnosticMeasureExpressionSchema }).passthrough(),
16
+ ]),
17
+ );
18
+
19
+ export const diagnosticClaimExpressionSchema: z.ZodTypeAny = z.lazy(() =>
20
+ z.discriminatedUnion("op", [
21
+ z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
22
+ z.object({ op: z.literal("add"), terms: z.array(diagnosticClaimExpressionSchema).min(1) }).passthrough(),
23
+ z.object({ op: z.literal("subtract"), left: diagnosticClaimExpressionSchema, right: diagnosticClaimExpressionSchema }).passthrough(),
24
+ z.object({ op: z.literal("claim-layer"), measureId: token, attachment: finite.nonnegative(), limit: finite.positive().nullable() }).passthrough(),
25
+ ]),
26
+ );
27
+
28
+ export const diagnosticRoleExpressionSchema: z.ZodTypeAny = z.lazy(() =>
29
+ z.discriminatedUnion("op", [
30
+ z.object({ op: z.literal("role"), role: token }).passthrough(),
31
+ z.object({ op: z.literal("add"), terms: z.array(diagnosticRoleExpressionSchema).min(1) }).passthrough(),
32
+ z.object({ op: z.literal("subtract"), left: diagnosticRoleExpressionSchema, right: diagnosticRoleExpressionSchema }).passthrough(),
33
+ ]),
34
+ );
35
+
36
+ const limitation = z.discriminatedUnion("kind", [
37
+ z.object({ kind: z.literal("unlimited") }).passthrough(),
38
+ z.object({ kind: z.literal("unknown"), description: z.string().nullable() }).passthrough(),
39
+ z.object({
40
+ kind: z.enum(["layer", "pre-limited"]),
41
+ attachment: finite.nonnegative(),
42
+ limit: finite.positive().nullable(),
43
+ application: z.enum(["claim", "occurrence", "policy", "source-defined"]),
44
+ derivation: z.discriminatedUnion("kind", [
45
+ z.object({ kind: z.literal("sdk") }).passthrough(),
46
+ z.object({ kind: z.literal("external"), actor: z.enum(["caller", "source"]), transformationRef: token }).passthrough(),
47
+ ]),
48
+ }).passthrough(),
49
+ ]);
50
+
51
+ const ruleOperand = z.discriminatedUnion("source", [
52
+ z.object({ source: z.literal("measure"), expression: diagnosticMeasureExpressionSchema }).passthrough(),
53
+ z.object({ source: z.literal("calculation"), field: z.enum(["numerator", "denominator"]) }).passthrough(),
54
+ z.object({ source: z.literal("constant"), value: finite }).passthrough(),
55
+ ]);
56
+ const operator = z.enum(["lt", "lte", "eq", "neq", "gte", "gt"]);
57
+ const reviewOperand = z.union([
58
+ diagnosticMeasureExpressionSchema,
59
+ z.object({ op: z.literal("constant"), value: finite }).passthrough(),
60
+ ]);
61
+ const reviewBase = {
62
+ id: token,
63
+ code: token,
64
+ description: z.string(),
65
+ severity: z.enum(["warning", "fail"]),
66
+ missingInput: z.enum(["not-evaluated", "finding"]),
67
+ tolerance,
68
+ };
69
+ const reviewFilter = z.object({
70
+ sourceGroups: z.array(token).nullable(), origins: z.array(token).nullable(),
71
+ originFrom: nullableToken, originThrough: nullableToken, valuations: z.array(token).nullable(),
72
+ valuationFrom: nullableToken, valuationThrough: nullableToken,
73
+ minDevelopmentAge: finite.nullable(), maxDevelopmentAge: finite.nullable(),
74
+ }).passthrough();
75
+ const reviewRule = z.discriminatedUnion("kind", [
76
+ z.object({ ...reviewBase, kind: z.literal("compare"), when: z.object({ left: reviewOperand, operator, right: reviewOperand }).passthrough() }).passthrough(),
77
+ z.object({ ...reviewBase, kind: z.literal("reconcile"), actual: diagnosticMeasureExpressionSchema, expected: reviewOperand }).passthrough(),
78
+ z.object({ ...reviewBase, kind: z.literal("monotonic"), expression: diagnosticMeasureExpressionSchema, direction: z.enum(["nondecreasing", "nonincreasing"]) }).passthrough(),
79
+ z.object({ ...reviewBase, kind: z.literal("layer-order"), narrower: diagnosticMeasureExpressionSchema, broader: diagnosticMeasureExpressionSchema, comparability: z.discriminatedUnion("kind", [
80
+ z.object({ kind: z.literal("compiler-proven") }).passthrough(),
81
+ z.object({ kind: z.literal("caller-asserted"), rationaleArtifactId: token }).passthrough(),
82
+ ]) }).passthrough(),
83
+ z.object({ ...reviewBase, kind: z.literal("control-total"), expression: diagnosticMeasureExpressionSchema, expected: finite, filter: reviewFilter.nullable(), projection: z.discriminatedUnion("kind", [
84
+ z.object({ kind: z.literal("valuation"), valuation: token }).passthrough(),
85
+ z.object({ kind: z.literal("latest-valuation-per-origin") }).passthrough(),
86
+ z.object({ kind: z.literal("all-cells") }).passthrough(),
87
+ ]) }).passthrough(),
88
+ ]);
89
+
90
+ const periodAxis = z.discriminatedUnion("kind", [
91
+ z.object({
92
+ kind: z.literal("calendar"), originCadence: z.enum(["month", "quarter", "year"]),
93
+ valuationCadence: z.enum(["month", "quarter", "year"]), originAnchor: z.enum(["start", "end"]),
94
+ valuationAnchor: z.enum(["start", "end"]), ageUnit: z.literal("month"), ageOffset: finite,
95
+ }).passthrough(),
96
+ z.object({
97
+ kind: z.literal("ordered"), id: token, version: token, ageUnit: token, ageOffset: finite,
98
+ origins: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
99
+ valuations: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
100
+ }).passthrough(),
101
+ ]);
102
+
103
+ /**
104
+ * Generic wire schema for the normalized diagnostic vocabulary. Known fields
105
+ * are validated and same-major additions are preserved recursively; the
106
+ * executable converter applies core's closed semantic compiler afterward.
107
+ */
108
+ export const normalizedDiagnosticDefinitionSchema = z.object({
109
+ diagnosticDefinitionVersion: z.literal("1.0.0"), id: token, version: token,
110
+ lossRowGrain: z.enum(["claim", "aggregate"]),
111
+ measures: z.array(z.object({
112
+ id: token, displayName: z.string(), description: z.string(), source: z.enum(["loss", "exposure", "derived"]),
113
+ kind: z.enum(["count", "amount", "exposure"]), unit: token,
114
+ developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]),
115
+ aggregation: z.literal("sum"), missing: z.enum(["unknown", "zero"]), basisId: nullableToken,
116
+ countPopulationId: nullableToken, exposureBasisId: nullableToken,
117
+ exposureTiming: z.enum(["origin-static", "valuation-specific"]).nullable(),
118
+ }).passthrough()),
119
+ countPopulations: z.array(z.object({ id: token, displayName: z.string(), subject: z.enum(["claim", "claimant", "policy", "occurrence", "other", "unknown"]), unit: token, description: z.string(), attributes }).passthrough()),
120
+ exposureBases: z.array(z.object({ id: token, displayName: z.string(), basis: z.enum(["earned", "written", "in-force", "other", "unknown"]), unit: token, description: z.string(), sourceDescription: z.string().nullable(), attributes }).passthrough()),
121
+ amountBases: z.array(z.object({ id: token, displayName: z.string(), currency: token, perspective: z.enum(["gross", "net", "ceded", "other", "unknown"]), components: z.array(z.object({ id: token, treatment: z.enum(["included", "excluded", "unknown"]), limitation }).passthrough()), sourceDescription: z.string().nullable(), attributes }).passthrough()),
122
+ derivedMeasures: z.array(z.object({ id: token, outputMeasureId: token, expression: diagnosticClaimExpressionSchema }).passthrough()),
123
+ formulas: z.array(z.object({
124
+ id: token, version: token,
125
+ roles: z.record(z.object({ kind: z.enum(["count", "amount", "exposure"]), compatibilityGroup: nullableToken, developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]).nullable() }).passthrough()),
126
+ numerator: diagnosticRoleExpressionSchema, denominator: diagnosticRoleExpressionSchema,
127
+ denominatorPolicy: z.literal("positive-or-null"),
128
+ }).passthrough()),
129
+ instances: z.array(z.object({
130
+ id: token, version: token, formulaId: token, bindings: z.record(diagnosticMeasureExpressionSchema),
131
+ presentation: z.object({ displayName: z.string(), description: z.string(), displayUnit: token, scale: finite.positive(), numeratorLabel: z.string(), denominatorLabel: z.string() }).passthrough(),
132
+ rules: z.array(z.object({ id: token, code: token, message: z.string(), severity: z.enum(["warning", "fail"]), when: z.object({ left: ruleOperand, operator, right: ruleOperand, tolerance }).passthrough() }).passthrough()),
133
+ }).passthrough()),
134
+ reviewRules: z.array(reviewRule), periodAxis,
135
+ }).passthrough();
136
+
137
+ export interface DiagnosticDefinitionIdentities {
138
+ algorithm: "fnv1a64-jcs-v1";
139
+ formulaById: Record<string, string>;
140
+ calculationByInstanceId: Record<string, string>;
141
+ definition: string;
142
+ }
143
+
144
+ export interface DiagnosticDefinitionBody {
145
+ definition: NormalizedDiagnosticDefinitionIdentity;
146
+ identities: DiagnosticDefinitionIdentities;
147
+ }
148
+
149
+ export interface DiagnosticDefinitionDoc {
150
+ interchangeVersion: string;
151
+ kind: "diagnostic-definition";
152
+ generator: GeneratorStamp & { [key: string]: unknown };
153
+ createdAt: string;
154
+ extensions?: Record<string, unknown>;
155
+ integrity: string;
156
+ diagnosticDefinition: DiagnosticDefinitionBody;
157
+ [key: string]: unknown;
158
+ }
159
+
160
+ const identityTag = z.string().regex(/^fnv1a64-jcs-v1:[0-9a-f]{16}$/);
161
+ export const diagnosticDefinitionBodySchema: z.ZodType<DiagnosticDefinitionBody> = z.object({
162
+ definition: normalizedDiagnosticDefinitionSchema as z.ZodType<NormalizedDiagnosticDefinitionIdentity>,
163
+ identities: z.object({
164
+ algorithm: z.literal("fnv1a64-jcs-v1"), formulaById: z.record(identityTag),
165
+ calculationByInstanceId: z.record(identityTag), definition: identityTag,
166
+ }).passthrough(),
167
+ }).passthrough();
168
+
169
+ export const diagnosticDefinitionDocSchema: z.ZodType<DiagnosticDefinitionDoc> = z.object({
170
+ ...envelopeShape("diagnostic-definition"), diagnosticDefinition: diagnosticDefinitionBodySchema,
171
+ }).passthrough();