@toolproof-core/genesis 1.0.53 → 1.0.54
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.
- package/dist/generated-src/declarations/booleans.d.ts +2 -0
- package/{generated-src → dist/generated-src}/declarations/booleans.json +1 -1
- package/dist/generated-src/declarations/naturals.d.ts +2 -0
- package/{generated-src → dist/generated-src}/declarations/naturals.json +1 -1
- package/dist/generated-src/declarations/resourceTypes.d.ts +2 -0
- package/{generated-src → dist/generated-src}/declarations/resourceTypes.json +1 -1
- package/dist/generated-src/declarations/tools.d.ts +2 -0
- package/{generated-src → dist/generated-src}/declarations/tools.json +1 -1
- package/dist/generated-src/implementations/tools.d.ts +100 -0
- package/dist/generated-src/implementations/tools.js +135 -0
- package/dist/generated-src/lookups/constants.d.ts +195 -0
- package/{generated-src/lookups/constants.ts → dist/generated-src/lookups/constants.js} +1 -2
- package/dist/generated-src/lookups/mappings.d.ts +11 -0
- package/{generated-src/lookups/mappings.ts → dist/generated-src/lookups/mappings.js} +1 -2
- package/dist/generated-src/schemas/schemas.d.ts +2 -0
- package/{generated-src → dist/generated-src}/schemas/schemas.json +1 -1
- package/dist/generated-src/schemas/standalone/Boolean.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Boolean.json +5 -0
- package/dist/generated-src/schemas/standalone/Error.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Error.json +78 -0
- package/dist/generated-src/schemas/standalone/Goal.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Goal.json +53 -0
- package/dist/generated-src/schemas/standalone/Natural.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Natural.json +6 -0
- package/dist/generated-src/schemas/standalone/Resource.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Resource.json +166 -0
- package/dist/generated-src/schemas/standalone/ResourceType.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/ResourceType.json +147 -0
- package/dist/generated-src/schemas/standalone/Strategy.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Strategy.json +637 -0
- package/dist/generated-src/schemas/standalone/StrategyTrace.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/StrategyTrace.json +816 -0
- package/dist/generated-src/schemas/standalone/Suite.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Suite.json +646 -0
- package/dist/generated-src/schemas/standalone/Tool.d.ts +2 -0
- package/dist/generated-src/schemas/standalone/Tool.json +533 -0
- package/dist/generated-src/schemas/zod/Boolean.d.ts +2 -0
- package/{generated-src/schemas/zod/Boolean.ts → dist/generated-src/schemas/zod/Boolean.js} +1 -4
- package/dist/generated-src/schemas/zod/Error.d.ts +2 -0
- package/dist/generated-src/schemas/zod/Error.js +8 -0
- package/dist/generated-src/schemas/zod/Goal.d.ts +2 -0
- package/dist/generated-src/schemas/zod/Goal.js +5 -0
- package/dist/generated-src/schemas/zod/Natural.d.ts +2 -0
- package/{generated-src/schemas/zod/Natural.ts → dist/generated-src/schemas/zod/Natural.js} +1 -4
- package/dist/generated-src/schemas/zod/Resource.d.ts +2 -0
- package/dist/generated-src/schemas/zod/Resource.js +18 -0
- package/dist/generated-src/schemas/zod/ResourceType.d.ts +2 -0
- package/dist/generated-src/schemas/zod/ResourceType.js +11 -0
- package/dist/generated-src/schemas/zod/Strategy.d.ts +12 -0
- package/dist/generated-src/schemas/zod/Strategy.js +70 -0
- package/dist/generated-src/schemas/zod/StrategyTrace.d.ts +12 -0
- package/dist/generated-src/schemas/zod/StrategyTrace.js +74 -0
- package/dist/generated-src/schemas/zod/Suite.d.ts +15 -0
- package/dist/generated-src/schemas/zod/Suite.js +40 -0
- package/dist/generated-src/schemas/zod/Tool.d.ts +9 -0
- package/dist/generated-src/schemas/zod/Tool.js +30 -0
- package/dist/generated-src/schemas/zod/index.d.ts +10 -0
- package/dist/generated-src/timestampedResources/booleans.d.ts +2 -0
- package/{generated-src → dist/generated-src}/timestampedResources/booleans.json +1 -1
- package/dist/generated-src/timestampedResources/naturals.d.ts +2 -0
- package/{generated-src → dist/generated-src}/timestampedResources/naturals.json +1 -1
- package/dist/generated-src/timestampedResources/resourceTypes.d.ts +2 -0
- package/{generated-src → dist/generated-src}/timestampedResources/resourceTypes.json +1 -1
- package/dist/generated-src/timestampedResources/tools.d.ts +2 -0
- package/{generated-src → dist/generated-src}/timestampedResources/tools.json +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/scripts/_lib/config.d.ts +83 -0
- package/dist/scripts/_lib/config.js +269 -0
- package/dist/scripts/generateConstantsAndMappings.d.ts +1 -0
- package/dist/scripts/generateConstantsAndMappings.js +41 -0
- package/dist/scripts/generateCoreProjection.d.ts +1 -0
- package/dist/scripts/generateCoreProjection.js +56 -0
- package/dist/scripts/generateDeclarations.d.ts +1 -0
- package/dist/scripts/generateDeclarations.js +43 -0
- package/dist/scripts/generateDependencies.d.ts +1 -0
- package/dist/scripts/generateDependencies.js +25 -0
- package/dist/scripts/generateImplementations.d.ts +1 -0
- package/dist/scripts/generateImplementations.js +45 -0
- package/dist/scripts/generateResourceTypes.d.ts +1 -0
- package/dist/scripts/generateResourceTypes.js +33 -0
- package/dist/scripts/generateSchemaShims.d.ts +1 -0
- package/dist/scripts/generateSchemaShims.js +39 -0
- package/dist/scripts/generateStandaloneSchemas.d.ts +1 -0
- package/dist/scripts/generateStandaloneSchemas.js +37 -0
- package/dist/scripts/generateStandaloneTypes.d.ts +1 -0
- package/dist/scripts/generateStandaloneTypes.js +39 -0
- package/dist/scripts/generateStandaloneZodSchemas.d.ts +1 -0
- package/dist/scripts/generateStandaloneZodSchemas.js +36 -0
- package/dist/scripts/generateTerminals.d.ts +1 -0
- package/dist/scripts/generateTerminals.js +26 -0
- package/dist/scripts/generateTimestampedResources.d.ts +1 -0
- package/dist/scripts/generateTimestampedResources.js +79 -0
- package/dist/scripts/generateTypes.d.ts +1 -0
- package/dist/scripts/generateTypes.js +40 -0
- package/dist/scripts/normalizeAnchorsToPointers.d.ts +1 -0
- package/dist/scripts/normalizeAnchorsToPointers.js +32 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +42 -8
- package/generated-src/implementations/tools.ts +0 -214
- package/generated-src/metadata/Core.json +0 -1929
- package/generated-src/metadata/dependencyMap.json +0 -297
- package/generated-src/metadata/terminals.json +0 -16
- package/generated-src/schemas/standalone/Boolean.json +0 -5
- package/generated-src/schemas/standalone/Error.json +0 -78
- package/generated-src/schemas/standalone/Goal.json +0 -53
- package/generated-src/schemas/standalone/Natural.json +0 -6
- package/generated-src/schemas/standalone/Resource.json +0 -166
- package/generated-src/schemas/standalone/ResourceType.json +0 -147
- package/generated-src/schemas/standalone/Strategy.json +0 -637
- package/generated-src/schemas/standalone/StrategyTrace.json +0 -816
- package/generated-src/schemas/standalone/Suite.json +0 -646
- package/generated-src/schemas/standalone/Tool.json +0 -533
- package/generated-src/schemas/zod/Error.ts +0 -11
- package/generated-src/schemas/zod/Goal.ts +0 -8
- package/generated-src/schemas/zod/Resource.ts +0 -21
- package/generated-src/schemas/zod/ResourceType.ts +0 -14
- package/generated-src/schemas/zod/Strategy.ts +0 -68
- package/generated-src/schemas/zod/StrategyTrace.ts +0 -75
- package/generated-src/schemas/zod/Suite.ts +0 -44
- package/generated-src/schemas/zod/Tool.ts +0 -34
- package/src/declarations/booleans.json +0 -4
- package/src/declarations/naturals.json +0 -13
- package/src/declarations/resourceTypes/resourceTypeShells.json +0 -53
- package/src/declarations/resourceTypes/schemas.json +0 -1839
- package/src/declarations/tools.json +0 -705
- package/src/implementations/tools.ts +0 -214
- package/src/index.ts +0 -131
- package/src/utils/constantsAndMappings.ts +0 -361
- package/src/utils/coreProjection.ts +0 -53
- package/src/utils/resourceTypes.ts +0 -71
- package/src/utils/schemaDependencies.ts +0 -115
- package/src/utils/schemaObjectNormalization.ts +0 -71
- package/src/utils/schemaRefNormalization.ts +0 -83
- package/src/utils/schemaShims.ts +0 -17
- package/src/utils/standaloneSchemas.ts +0 -114
- package/src/utils/standaloneTypes.ts +0 -28
- package/src/utils/standaloneZodSchemas.ts +0 -72
- package/src/utils/timestampedResources.ts +0 -42
- package/src/utils/typeGeneration.ts +0 -31
- package/src/utils/typeGenerationPostProcess.ts +0 -246
- package/src/utils/typeGenerationPreflight.ts +0 -119
- package/src/utils/zodCodegen.ts +0 -549
- /package/{generated-src/declarations/booleans.ts → dist/generated-src/declarations/booleans.js} +0 -0
- /package/{generated-src/declarations/naturals.ts → dist/generated-src/declarations/naturals.js} +0 -0
- /package/{generated-src/declarations/resourceTypes.ts → dist/generated-src/declarations/resourceTypes.js} +0 -0
- /package/{generated-src/declarations/tools.ts → dist/generated-src/declarations/tools.js} +0 -0
- /package/{generated-src/schemas/schemas.ts → dist/generated-src/schemas/schemas.js} +0 -0
- /package/{generated-src/schemas/standalone/Boolean.ts → dist/generated-src/schemas/standalone/Boolean.js} +0 -0
- /package/{generated-src/schemas/standalone/Error.ts → dist/generated-src/schemas/standalone/Error.js} +0 -0
- /package/{generated-src/schemas/standalone/Goal.ts → dist/generated-src/schemas/standalone/Goal.js} +0 -0
- /package/{generated-src/schemas/standalone/Natural.ts → dist/generated-src/schemas/standalone/Natural.js} +0 -0
- /package/{generated-src/schemas/standalone/Resource.ts → dist/generated-src/schemas/standalone/Resource.js} +0 -0
- /package/{generated-src/schemas/standalone/ResourceType.ts → dist/generated-src/schemas/standalone/ResourceType.js} +0 -0
- /package/{generated-src/schemas/standalone/Strategy.ts → dist/generated-src/schemas/standalone/Strategy.js} +0 -0
- /package/{generated-src/schemas/standalone/StrategyTrace.ts → dist/generated-src/schemas/standalone/StrategyTrace.js} +0 -0
- /package/{generated-src/schemas/standalone/Suite.ts → dist/generated-src/schemas/standalone/Suite.js} +0 -0
- /package/{generated-src/schemas/standalone/Tool.ts → dist/generated-src/schemas/standalone/Tool.js} +0 -0
- /package/{generated-src/schemas/zod/index.ts → dist/generated-src/schemas/zod/index.js} +0 -0
- /package/{generated-src/timestampedResources/booleans.ts → dist/generated-src/timestampedResources/booleans.js} +0 -0
- /package/{generated-src/timestampedResources/naturals.ts → dist/generated-src/timestampedResources/naturals.js} +0 -0
- /package/{generated-src/timestampedResources/resourceTypes.ts → dist/generated-src/timestampedResources/resourceTypes.js} +0 -0
- /package/{generated-src/timestampedResources/tools.ts → dist/generated-src/timestampedResources/tools.js} +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/BooleanResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/BooleanResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ErrorResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ErrorResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/GoalResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/GoalResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/NaturalResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/NaturalResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ResourceResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ResourceResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ResourceTypeResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ResourceTypeResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/StrategyResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/StrategyResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/StrategyTraceResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/StrategyTraceResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/SuiteResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/SuiteResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ToolResource.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/standalone/ToolResource.js +0 -0
- /package/{generated-src → dist/generated-src}/types/types.d.ts +0 -0
- /package/{generated-src → dist/generated-src}/types/types.js +0 -0
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Boolean,
|
|
3
|
-
Natural,
|
|
4
|
-
ResourceType,
|
|
5
|
-
Tool,
|
|
6
|
-
} from '../../generated-src/types/types.js';
|
|
7
|
-
|
|
8
|
-
type GenericAssignmentByRoleName<GenericRoleName extends string> = Record<GenericRoleName, ResourceType>;
|
|
9
|
-
|
|
10
|
-
type InstantiationToolHandleBySpecializationKey = Record<string, Tool>;
|
|
11
|
-
|
|
12
|
-
type TemplateInputs<GenericRoleName extends string> = {
|
|
13
|
-
GenericAssignmentByRoleName: GenericAssignmentByRoleName<GenericRoleName>;
|
|
14
|
-
InstantiationToolHandleBySpecializationKey: InstantiationToolHandleBySpecializationKey;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
type TemplateOutputs = {
|
|
18
|
-
InstantiationTool: Tool;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
type OperandTemplateInputs = TemplateInputs<'OperandType'>;
|
|
22
|
-
|
|
23
|
-
const OPERAND_TYPE_ROLE_NAMES = ['OperandType'] as const;
|
|
24
|
-
|
|
25
|
-
function assertExactKeys(actualKeys: string[], expectedKeys: readonly string[], label: string): void {
|
|
26
|
-
const sortedActualKeys = [...actualKeys].sort();
|
|
27
|
-
const sortedExpectedKeys = [...expectedKeys].sort();
|
|
28
|
-
|
|
29
|
-
if (sortedActualKeys.length !== sortedExpectedKeys.length) {
|
|
30
|
-
throw new Error(
|
|
31
|
-
`${label} must contain exactly [${sortedExpectedKeys.join(', ')}], got [${sortedActualKeys.join(', ')}]`
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
for (let index = 0; index < sortedExpectedKeys.length; index += 1) {
|
|
36
|
-
if (sortedActualKeys[index] !== sortedExpectedKeys[index]) {
|
|
37
|
-
throw new Error(
|
|
38
|
-
`${label} must contain exactly [${sortedExpectedKeys.join(', ')}], got [${sortedActualKeys.join(', ')}]`
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function asNatural(value: number, label: string): Natural {
|
|
45
|
-
if (!Number.isInteger(value) || value < 0) {
|
|
46
|
-
throw new Error(`${label} must be a non-negative integer, got ${value}`);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return value as Natural;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function createSpecializationKey(assignments: Record<string, ResourceType>): string {
|
|
53
|
-
return JSON.stringify(
|
|
54
|
-
Object.entries(assignments)
|
|
55
|
-
.sort(([leftRoleName], [rightRoleName]) => leftRoleName.localeCompare(rightRoleName))
|
|
56
|
-
.map(([roleName, resourceType]) => [roleName, resourceType.handle])
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function resolveTemplateInstantiation<GenericRoleName extends string>(
|
|
61
|
-
inputs: TemplateInputs<GenericRoleName>,
|
|
62
|
-
expectedGenericRoleNames: readonly GenericRoleName[]
|
|
63
|
-
): TemplateOutputs {
|
|
64
|
-
const { GenericAssignmentByRoleName, InstantiationToolHandleBySpecializationKey } = inputs;
|
|
65
|
-
|
|
66
|
-
assertExactKeys(
|
|
67
|
-
Object.keys(GenericAssignmentByRoleName),
|
|
68
|
-
expectedGenericRoleNames,
|
|
69
|
-
'GenericAssignmentByRoleName'
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
const specializationKey = createSpecializationKey(GenericAssignmentByRoleName);
|
|
73
|
-
const instantiationTool = InstantiationToolHandleBySpecializationKey[specializationKey];
|
|
74
|
-
|
|
75
|
-
if (!instantiationTool) {
|
|
76
|
-
throw new Error(`No instantiation tool registered for specializationKey ${specializationKey}`);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return {
|
|
80
|
-
InstantiationTool: instantiationTool,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export function Identity(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
85
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export function Add(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
89
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function Subtract(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
93
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export function Multiply(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
97
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export function Divide(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
101
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export function Double(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
105
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export function LessThan(inputs: OperandTemplateInputs): TemplateOutputs {
|
|
109
|
-
return resolveTemplateInstantiation(inputs, OPERAND_TYPE_ROLE_NAMES);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export function BooleanIdentity(inputs: { In: Boolean }): { Out: Boolean } {
|
|
113
|
-
return {
|
|
114
|
-
Out: inputs.In,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export function NaturalIdentity(inputs: { In: Natural }): { Out: Natural } {
|
|
119
|
-
return {
|
|
120
|
-
Out: inputs.In,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export function NaturalLessThan(inputs: {
|
|
125
|
-
LessThanSource: Natural;
|
|
126
|
-
LessThanTarget: Natural;
|
|
127
|
-
}): { LessThanDecision: Boolean } {
|
|
128
|
-
return {
|
|
129
|
-
LessThanDecision: inputs.LessThanSource < inputs.LessThanTarget,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
export function NaturalAdd(inputs: {
|
|
134
|
-
AddendOne: Natural;
|
|
135
|
-
AddendTwo: Natural;
|
|
136
|
-
}): { Sum: Natural } {
|
|
137
|
-
return {
|
|
138
|
-
Sum: asNatural(inputs.AddendOne + inputs.AddendTwo, 'Sum'),
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export function NaturalSubtract(inputs: {
|
|
143
|
-
Minuend: Natural;
|
|
144
|
-
Subtrahend: Natural;
|
|
145
|
-
}): { Difference: Natural } {
|
|
146
|
-
return {
|
|
147
|
-
Difference: asNatural(inputs.Minuend - inputs.Subtrahend, 'Difference'),
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
export function NaturalMultiply(inputs: {
|
|
152
|
-
Multiplicand: Natural;
|
|
153
|
-
Multiplier: Natural;
|
|
154
|
-
}): { Product: Natural } {
|
|
155
|
-
return {
|
|
156
|
-
Product: asNatural(inputs.Multiplicand * inputs.Multiplier, 'Product'),
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export function NaturalDivide(inputs: {
|
|
161
|
-
Dividend: Natural;
|
|
162
|
-
Divisor: Natural;
|
|
163
|
-
}): { Quotient: Natural; Remainder: Natural } {
|
|
164
|
-
if (inputs.Divisor === 0) {
|
|
165
|
-
throw new Error('Divisor must be non-zero');
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return {
|
|
169
|
-
Quotient: asNatural(Math.floor(inputs.Dividend / inputs.Divisor), 'Quotient'),
|
|
170
|
-
Remainder: asNatural(inputs.Dividend % inputs.Divisor, 'Remainder'),
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export function NaturalDouble(inputs: { N: Natural }): { Doubled: Natural } {
|
|
175
|
-
return {
|
|
176
|
-
Doubled: asNatural(inputs.N * 2, 'Doubled'),
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
export const TOOL_IMPLEMENTATION_BY_NAME = {
|
|
181
|
-
Identity,
|
|
182
|
-
Add,
|
|
183
|
-
Subtract,
|
|
184
|
-
Multiply,
|
|
185
|
-
Divide,
|
|
186
|
-
Double,
|
|
187
|
-
LessThan,
|
|
188
|
-
BooleanIdentity,
|
|
189
|
-
NaturalIdentity,
|
|
190
|
-
NaturalLessThan,
|
|
191
|
-
NaturalAdd,
|
|
192
|
-
NaturalSubtract,
|
|
193
|
-
NaturalMultiply,
|
|
194
|
-
NaturalDivide,
|
|
195
|
-
NaturalDouble,
|
|
196
|
-
} as const;
|
|
197
|
-
|
|
198
|
-
export const TOOL_IMPLEMENTATION_BY_HANDLE = {
|
|
199
|
-
'TOOL-Identity': Identity,
|
|
200
|
-
'TOOL-Add': Add,
|
|
201
|
-
'TOOL-Subtract': Subtract,
|
|
202
|
-
'TOOL-Multiply': Multiply,
|
|
203
|
-
'TOOL-Divide': Divide,
|
|
204
|
-
'TOOL-Double': Double,
|
|
205
|
-
'TOOL-LessThan': LessThan,
|
|
206
|
-
'TOOL-BooleanIdentity': BooleanIdentity,
|
|
207
|
-
'TOOL-NaturalIdentity': NaturalIdentity,
|
|
208
|
-
'TOOL-NaturalLessThan': NaturalLessThan,
|
|
209
|
-
'TOOL-NaturalAdd': NaturalAdd,
|
|
210
|
-
'TOOL-NaturalSubtract': NaturalSubtract,
|
|
211
|
-
'TOOL-NaturalMultiply': NaturalMultiply,
|
|
212
|
-
'TOOL-NaturalDivide': NaturalDivide,
|
|
213
|
-
'TOOL-NaturalDouble': NaturalDouble,
|
|
214
|
-
} as const;
|
package/src/index.ts
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
// Re-export JSON schemas via .ts shims to avoid .json re-exports in declarations
|
|
2
|
-
export { default as Schemas } from '../generated-src/schemas/schemas.js';
|
|
3
|
-
|
|
4
|
-
export { default as ResourceTypeSchema } from '../generated-src/schemas/standalone/ResourceType.js';
|
|
5
|
-
export { default as ToolSchema } from '../generated-src/schemas/standalone/Tool.js';
|
|
6
|
-
export { default as StrategySchema } from '../generated-src/schemas/standalone/Strategy.js';
|
|
7
|
-
export { default as StrategyTraceSchema } from '../generated-src/schemas/standalone/StrategyTrace.js';
|
|
8
|
-
|
|
9
|
-
// Re-export generated Zod validators
|
|
10
|
-
export { ToolSchema as ZodToolSchema } from '../generated-src/schemas/zod/Tool.js';
|
|
11
|
-
export { ResourceTypeSchema as ZodResourceTypeSchema } from '../generated-src/schemas/zod/ResourceType.js';
|
|
12
|
-
export { StrategySchema as ZodStrategySchema } from '../generated-src/schemas/zod/Strategy.js';
|
|
13
|
-
export { StrategyTraceSchema as ZodStrategyTraceSchema } from '../generated-src/schemas/zod/StrategyTrace.js';
|
|
14
|
-
export { GoalSchema as ZodGoalSchema } from '../generated-src/schemas/zod/Goal.js';
|
|
15
|
-
export * as ZodSchemas from '../generated-src/schemas/zod/index.js';
|
|
16
|
-
|
|
17
|
-
export { default as ResourceTypeTimestampedResources } from '../generated-src/timestampedResources/resourceTypes.js';
|
|
18
|
-
|
|
19
|
-
export {
|
|
20
|
-
Add,
|
|
21
|
-
BooleanIdentity,
|
|
22
|
-
createSpecializationKey,
|
|
23
|
-
Divide,
|
|
24
|
-
Double,
|
|
25
|
-
Identity,
|
|
26
|
-
LessThan,
|
|
27
|
-
Multiply,
|
|
28
|
-
NaturalAdd,
|
|
29
|
-
NaturalDivide,
|
|
30
|
-
NaturalDouble,
|
|
31
|
-
NaturalIdentity,
|
|
32
|
-
NaturalLessThan,
|
|
33
|
-
NaturalMultiply,
|
|
34
|
-
NaturalSubtract,
|
|
35
|
-
Subtract,
|
|
36
|
-
TOOL_IMPLEMENTATION_BY_HANDLE,
|
|
37
|
-
TOOL_IMPLEMENTATION_BY_NAME,
|
|
38
|
-
} from '../generated-src/implementations/tools.js';
|
|
39
|
-
|
|
40
|
-
export { default as CONSTANTS } from '../generated-src/lookups/constants.js';
|
|
41
|
-
export { default as MAPPINGS } from '../generated-src/lookups/mappings.js';
|
|
42
|
-
|
|
43
|
-
export type {
|
|
44
|
-
ResourceTypeResource,
|
|
45
|
-
} from '../generated-src/types/standalone/ResourceTypeResource.js';
|
|
46
|
-
export type {
|
|
47
|
-
ToolResource,
|
|
48
|
-
} from '../generated-src/types/standalone/ToolResource.js';
|
|
49
|
-
export type {
|
|
50
|
-
StrategyResource,
|
|
51
|
-
} from '../generated-src/types/standalone/StrategyResource.js';
|
|
52
|
-
export type {
|
|
53
|
-
StrategyTraceResource,
|
|
54
|
-
} from '../generated-src/types/standalone/StrategyTraceResource.js';
|
|
55
|
-
|
|
56
|
-
export type {
|
|
57
|
-
BaseResource,
|
|
58
|
-
BaseStrategy,
|
|
59
|
-
BaseToolStepPathSpec,
|
|
60
|
-
Boolean,
|
|
61
|
-
BranchStep,
|
|
62
|
-
Case,
|
|
63
|
-
ContainerKind,
|
|
64
|
-
DeferredStrategyProvenance,
|
|
65
|
-
Description,
|
|
66
|
-
DescriptionFacet,
|
|
67
|
-
DocumentationSpec,
|
|
68
|
-
ExternalInputPotential,
|
|
69
|
-
GenesisProvenance,
|
|
70
|
-
Goal,
|
|
71
|
-
InputPotential,
|
|
72
|
-
InputResource,
|
|
73
|
-
InternalInputPotential,
|
|
74
|
-
JsonSchemaObject,
|
|
75
|
-
JsonSchemaObject1,
|
|
76
|
-
JsonSchemaObject2,
|
|
77
|
-
Name,
|
|
78
|
-
NameFacet,
|
|
79
|
-
Natural,
|
|
80
|
-
OutputAddress,
|
|
81
|
-
Provenance,
|
|
82
|
-
ProvenanceFacet,
|
|
83
|
-
ProvenanceKind,
|
|
84
|
-
Resource,
|
|
85
|
-
ResourceId,
|
|
86
|
-
ResourcePointer,
|
|
87
|
-
ResourceType,
|
|
88
|
-
ResourceTypeHandle,
|
|
89
|
-
RoleBindingSpec,
|
|
90
|
-
RoleBindingSpecFacet,
|
|
91
|
-
RoleBindingSpecFacet1,
|
|
92
|
-
RoleName,
|
|
93
|
-
RoleNameArray,
|
|
94
|
-
RoleSpec,
|
|
95
|
-
RoleSpecFacet,
|
|
96
|
-
RoleValue,
|
|
97
|
-
RoleValueByName,
|
|
98
|
-
Step,
|
|
99
|
-
StepArray,
|
|
100
|
-
StepArrayArray,
|
|
101
|
-
StepKind,
|
|
102
|
-
StepKindFacet,
|
|
103
|
-
Strategy,
|
|
104
|
-
StrategyHandle,
|
|
105
|
-
StrategyKind,
|
|
106
|
-
StrategyProvenance,
|
|
107
|
-
StrategyStateInputEntry,
|
|
108
|
-
StrategyStateInputEntryByRoleName,
|
|
109
|
-
StrategyStateInputKind,
|
|
110
|
-
StrategyTrace,
|
|
111
|
-
StrategyTraceHandle,
|
|
112
|
-
ThreadedStrategy,
|
|
113
|
-
ThreadedStrategyState,
|
|
114
|
-
ThreadedStrategyStateFacet,
|
|
115
|
-
ThreadedToolStepPath,
|
|
116
|
-
ThreadedToolStepPathSpec,
|
|
117
|
-
Tool,
|
|
118
|
-
ToolHandle,
|
|
119
|
-
ToolStep,
|
|
120
|
-
ToolStepPath,
|
|
121
|
-
ToolStepPathSlot,
|
|
122
|
-
ToolStepPathSlotFacet,
|
|
123
|
-
TypeRef,
|
|
124
|
-
UnthreadedStrategy,
|
|
125
|
-
UnthreadedStrategyState,
|
|
126
|
-
UnthreadedStrategyStateFacet,
|
|
127
|
-
UnthreadedToolStepPath,
|
|
128
|
-
UnthreadedToolStepPathSpec,
|
|
129
|
-
WhileStep,
|
|
130
|
-
ForStep,
|
|
131
|
-
} from '../generated-src/types/types.js';
|
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
type JSONValue = null | boolean | number | string | JSONValue[] | { [k: string]: JSONValue };
|
|
2
|
-
|
|
3
|
-
type HandleRecord = {
|
|
4
|
-
handle?: unknown;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
type HandleRecordByName = Record<string, HandleRecord>;
|
|
8
|
-
|
|
9
|
-
type RoleValueByNameRecord = Record<string, unknown>;
|
|
10
|
-
|
|
11
|
-
type RoleSpecRecord = {
|
|
12
|
-
inputRoleValueByName?: unknown;
|
|
13
|
-
outputRoleValueByName?: unknown;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
type ToolRecord = HandleRecord & {
|
|
17
|
-
isTemplate?: unknown;
|
|
18
|
-
templateToolHandle?: unknown;
|
|
19
|
-
instantiationRoleSpec?: unknown;
|
|
20
|
-
roleSpec?: unknown;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
type ToolRecordByName = Record<string, ToolRecord>;
|
|
24
|
-
|
|
25
|
-
export type GeneratedConstants = {
|
|
26
|
-
Names: Record<string, string>;
|
|
27
|
-
Handles: {
|
|
28
|
-
ResourceTypes: Record<string, string>;
|
|
29
|
-
Tools: Record<string, string>;
|
|
30
|
-
};
|
|
31
|
-
ToolRoleNames: Record<string, Record<string, string>>;
|
|
32
|
-
Enums: Record<string, Record<string, string>>;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export type GeneratedMappings = {
|
|
36
|
-
IdentifierNameToPrefix: Record<string, string>;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
function deriveIdPrefixFromPattern(pattern: string): string | undefined {
|
|
40
|
-
const match = /^\^([^$]+)\.\+\$$/.exec(pattern);
|
|
41
|
-
if (!match) return undefined;
|
|
42
|
-
|
|
43
|
-
const prefix = match[1];
|
|
44
|
-
if (!prefix || /[`\n\r]/.test(prefix)) return undefined;
|
|
45
|
-
|
|
46
|
-
return prefix;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function extractHandlePrefixes(schema: unknown): Record<string, string> {
|
|
50
|
-
if (!schema || typeof schema !== 'object') return {};
|
|
51
|
-
|
|
52
|
-
const defs = (schema as { $defs?: unknown }).$defs;
|
|
53
|
-
if (!defs || typeof defs !== 'object') return {};
|
|
54
|
-
|
|
55
|
-
const defEntries = Object.entries(defs as Record<string, unknown>);
|
|
56
|
-
defEntries.sort(([a], [b]) => a.localeCompare(b));
|
|
57
|
-
|
|
58
|
-
const out: Record<string, string> = {};
|
|
59
|
-
|
|
60
|
-
for (const [defName, defVal] of defEntries) {
|
|
61
|
-
if (!/(Id|Handle)$/.test(defName)) continue;
|
|
62
|
-
if (!defVal || typeof defVal !== 'object' || Array.isArray(defVal)) continue;
|
|
63
|
-
|
|
64
|
-
const value = defVal as { type?: unknown; pattern?: unknown };
|
|
65
|
-
if (value.type !== 'string') continue;
|
|
66
|
-
if (typeof value.pattern !== 'string') continue;
|
|
67
|
-
|
|
68
|
-
const prefix = deriveIdPrefixFromPattern(value.pattern);
|
|
69
|
-
if (!prefix) continue;
|
|
70
|
-
|
|
71
|
-
out[defName] = prefix;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return out;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export function extractSubschemaNames(schema: unknown): Record<string, string> {
|
|
78
|
-
if (!schema || typeof schema !== 'object') return {};
|
|
79
|
-
|
|
80
|
-
const defs = (schema as { $defs?: unknown }).$defs;
|
|
81
|
-
if (!defs || typeof defs !== 'object') return {};
|
|
82
|
-
|
|
83
|
-
const defEntries = Object.entries(defs as Record<string, unknown>);
|
|
84
|
-
defEntries.sort(([a], [b]) => a.localeCompare(b));
|
|
85
|
-
|
|
86
|
-
const out: Record<string, string> = {};
|
|
87
|
-
for (const [defName] of defEntries) {
|
|
88
|
-
if (!defName || /[\n\r`]/.test(defName)) continue;
|
|
89
|
-
out[defName] = defName;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return out;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export function extractEnums(schema: unknown): Record<string, Record<string, string>> {
|
|
96
|
-
if (!schema || typeof schema !== 'object') return {};
|
|
97
|
-
|
|
98
|
-
const defs = (schema as { $defs?: unknown }).$defs;
|
|
99
|
-
if (!defs || typeof defs !== 'object') return {};
|
|
100
|
-
|
|
101
|
-
const defEntries = Object.entries(defs as Record<string, unknown>);
|
|
102
|
-
defEntries.sort(([a], [b]) => a.localeCompare(b));
|
|
103
|
-
|
|
104
|
-
const out: Record<string, Record<string, string>> = {};
|
|
105
|
-
|
|
106
|
-
for (const [defName, defVal] of defEntries) {
|
|
107
|
-
if (!/(Kind|Status)$/.test(defName)) continue;
|
|
108
|
-
if (!defVal || typeof defVal !== 'object' || Array.isArray(defVal)) continue;
|
|
109
|
-
|
|
110
|
-
const value = defVal as { type?: unknown; enum?: unknown };
|
|
111
|
-
if (value.type !== 'string') continue;
|
|
112
|
-
if (!Array.isArray(value.enum) || value.enum.length === 0) continue;
|
|
113
|
-
if (value.enum.some((item) => typeof item !== 'string')) continue;
|
|
114
|
-
|
|
115
|
-
const members: Record<string, string> = {};
|
|
116
|
-
for (const member of value.enum as readonly string[]) {
|
|
117
|
-
members[member] = member;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
out[defName] = members;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return out;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function toHandleConstantKey(handle: string): string {
|
|
127
|
-
return handle.replace(/[^A-Za-z0-9]+/g, '_');
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
export function extractHandles(records: HandleRecordByName): Record<string, string> {
|
|
131
|
-
const recordEntries = Object.entries(records);
|
|
132
|
-
recordEntries.sort(([a], [b]) => a.localeCompare(b));
|
|
133
|
-
|
|
134
|
-
const out: Record<string, string> = {};
|
|
135
|
-
|
|
136
|
-
for (const [, record] of recordEntries) {
|
|
137
|
-
if (!record || typeof record !== 'object') continue;
|
|
138
|
-
if (typeof record.handle !== 'string') continue;
|
|
139
|
-
if (!record.handle || /[\n\r`]/.test(record.handle)) continue;
|
|
140
|
-
|
|
141
|
-
out[toHandleConstantKey(record.handle)] = record.handle;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return out;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
148
|
-
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
function extractRoleNameMap(roleSpec: unknown): Record<string, string> {
|
|
152
|
-
if (!isPlainObject(roleSpec)) {
|
|
153
|
-
return {};
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const out: Record<string, string> = {};
|
|
157
|
-
const groups = [
|
|
158
|
-
roleSpec.inputRoleValueByName,
|
|
159
|
-
roleSpec.outputRoleValueByName,
|
|
160
|
-
];
|
|
161
|
-
|
|
162
|
-
for (const group of groups) {
|
|
163
|
-
if (!isPlainObject(group)) {
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const entries = Object.keys(group).sort((a, b) => a.localeCompare(b));
|
|
168
|
-
for (const roleName of entries) {
|
|
169
|
-
if (!roleName || /[\n\r`]/.test(roleName)) {
|
|
170
|
-
continue;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
out[roleName] = roleName;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return out;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function isCanonicalToolRecord(tool: ToolRecord): boolean {
|
|
181
|
-
if (tool.isTemplate === true) {
|
|
182
|
-
return true;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
return tool.isTemplate === false && tool.templateToolHandle === undefined;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
export function extractToolRoleNames(tools: ToolRecordByName): Record<string, Record<string, string>> {
|
|
189
|
-
const toolEntries = Object.values(tools)
|
|
190
|
-
.filter((tool): tool is ToolRecord => isPlainObject(tool))
|
|
191
|
-
.filter((tool) => typeof tool.handle === 'string' && !!tool.handle)
|
|
192
|
-
.sort((a, b) => String(a.handle).localeCompare(String(b.handle)));
|
|
193
|
-
|
|
194
|
-
const out: Record<string, Record<string, string>> = {};
|
|
195
|
-
|
|
196
|
-
for (const tool of toolEntries) {
|
|
197
|
-
if (!isCanonicalToolRecord(tool)) {
|
|
198
|
-
continue;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
const roleSpec = tool.isTemplate === true
|
|
202
|
-
? tool.instantiationRoleSpec
|
|
203
|
-
: tool.roleSpec;
|
|
204
|
-
|
|
205
|
-
const roleNameMap = extractRoleNameMap(roleSpec);
|
|
206
|
-
if (Object.keys(roleNameMap).length === 0) {
|
|
207
|
-
continue;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
out[toHandleConstantKey(tool.handle as string)] = roleNameMap;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
return out;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export function extractGeneratedConstantsAndMappings(
|
|
217
|
-
schema: JSONValue,
|
|
218
|
-
resourceTypeShells: HandleRecordByName,
|
|
219
|
-
tools: ToolRecordByName,
|
|
220
|
-
): {
|
|
221
|
-
CONSTANTS: GeneratedConstants;
|
|
222
|
-
MAPPINGS: GeneratedMappings;
|
|
223
|
-
} {
|
|
224
|
-
const names = extractSubschemaNames(schema);
|
|
225
|
-
const resourceTypeHandles = extractHandles(resourceTypeShells);
|
|
226
|
-
const toolHandles = extractHandles(tools);
|
|
227
|
-
const toolRoleNames = extractToolRoleNames(tools);
|
|
228
|
-
const enums = extractEnums(schema);
|
|
229
|
-
const handlePrefixes = extractHandlePrefixes(schema);
|
|
230
|
-
|
|
231
|
-
return {
|
|
232
|
-
CONSTANTS: {
|
|
233
|
-
Names: names,
|
|
234
|
-
Handles: {
|
|
235
|
-
ResourceTypes: resourceTypeHandles,
|
|
236
|
-
Tools: toolHandles,
|
|
237
|
-
},
|
|
238
|
-
ToolRoleNames: toolRoleNames,
|
|
239
|
-
Enums: enums,
|
|
240
|
-
},
|
|
241
|
-
MAPPINGS: {
|
|
242
|
-
IdentifierNameToPrefix: handlePrefixes,
|
|
243
|
-
},
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
function escapeTsString(value: string): string {
|
|
248
|
-
return value
|
|
249
|
-
.replace(/\\/g, '\\\\')
|
|
250
|
-
.replace(/\r/g, '\\r')
|
|
251
|
-
.replace(/\n/g, '\\n')
|
|
252
|
-
.replace(/\t/g, '\\t')
|
|
253
|
-
.replace(/'/g, "\\'");
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
function renderTsStringLiteral(value: string): string {
|
|
257
|
-
return `'${escapeTsString(value)}'`;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
function isValidTsIdentifier(key: string): boolean {
|
|
261
|
-
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key);
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
function renderTsKey(key: string): string {
|
|
265
|
-
return isValidTsIdentifier(key) ? key : renderTsStringLiteral(key);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
export function renderConstantsTs(constants: GeneratedConstants): string {
|
|
269
|
-
const nameKeys = Object.keys(constants.Names).sort((a, b) => a.localeCompare(b));
|
|
270
|
-
const resourceTypeHandleKeys = Object.keys(constants.Handles.ResourceTypes).sort((a, b) => a.localeCompare(b));
|
|
271
|
-
const toolHandleKeys = Object.keys(constants.Handles.Tools).sort((a, b) => a.localeCompare(b));
|
|
272
|
-
const toolRoleNameKeys = Object.keys(constants.ToolRoleNames).sort((a, b) => a.localeCompare(b));
|
|
273
|
-
const enumKeys = Object.keys(constants.Enums).sort((a, b) => a.localeCompare(b));
|
|
274
|
-
|
|
275
|
-
const lines: string[] = [];
|
|
276
|
-
lines.push('const CONSTANTS = {');
|
|
277
|
-
lines.push(' Names: {');
|
|
278
|
-
|
|
279
|
-
for (const key of nameKeys) {
|
|
280
|
-
const value = constants.Names[key] ?? '';
|
|
281
|
-
lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
lines.push(' },');
|
|
285
|
-
lines.push(' Handles: {');
|
|
286
|
-
lines.push(' ResourceTypes: {');
|
|
287
|
-
|
|
288
|
-
for (const key of resourceTypeHandleKeys) {
|
|
289
|
-
const value = constants.Handles.ResourceTypes[key] ?? '';
|
|
290
|
-
lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
lines.push(' },');
|
|
294
|
-
lines.push(' Tools: {');
|
|
295
|
-
|
|
296
|
-
for (const key of toolHandleKeys) {
|
|
297
|
-
const value = constants.Handles.Tools[key] ?? '';
|
|
298
|
-
lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
lines.push(' },');
|
|
302
|
-
lines.push(' },');
|
|
303
|
-
lines.push(' ToolRoleNames: {');
|
|
304
|
-
|
|
305
|
-
for (const toolKey of toolRoleNameKeys) {
|
|
306
|
-
const roleNames = constants.ToolRoleNames[toolKey] ?? {};
|
|
307
|
-
const roleKeys = Object.keys(roleNames).sort((a, b) => a.localeCompare(b));
|
|
308
|
-
lines.push(` ${renderTsKey(toolKey)}: {`);
|
|
309
|
-
|
|
310
|
-
for (const roleKey of roleKeys) {
|
|
311
|
-
const value = roleNames[roleKey] ?? '';
|
|
312
|
-
lines.push(` ${renderTsKey(roleKey)}: ${renderTsStringLiteral(value)},`);
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
lines.push(' },');
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
lines.push(' },');
|
|
319
|
-
lines.push(' Enums: {');
|
|
320
|
-
|
|
321
|
-
for (const key of enumKeys) {
|
|
322
|
-
const members = constants.Enums[key] ?? {};
|
|
323
|
-
lines.push(` ${renderTsKey(key)}: {`);
|
|
324
|
-
|
|
325
|
-
for (const memberKey of Object.keys(members)) {
|
|
326
|
-
const value = members[memberKey] ?? '';
|
|
327
|
-
lines.push(` ${renderTsKey(memberKey)}: ${renderTsStringLiteral(value)},`);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
lines.push(' },');
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
lines.push(' }');
|
|
334
|
-
lines.push('} as const;');
|
|
335
|
-
lines.push('');
|
|
336
|
-
lines.push('export default CONSTANTS;');
|
|
337
|
-
lines.push('');
|
|
338
|
-
|
|
339
|
-
return lines.join('\n');
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
export function renderMappingsTs(mappings: GeneratedMappings): string {
|
|
343
|
-
const handleKeys = Object.keys(mappings.IdentifierNameToPrefix).sort((a, b) => a.localeCompare(b));
|
|
344
|
-
|
|
345
|
-
const lines: string[] = [];
|
|
346
|
-
lines.push('const MAPPINGS = {');
|
|
347
|
-
lines.push(' IdentifierNameToPrefix: {');
|
|
348
|
-
|
|
349
|
-
for (const key of handleKeys) {
|
|
350
|
-
const value = mappings.IdentifierNameToPrefix[key] ?? '';
|
|
351
|
-
lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
lines.push(' },');
|
|
355
|
-
lines.push('} as const;');
|
|
356
|
-
lines.push('');
|
|
357
|
-
lines.push('export default MAPPINGS;');
|
|
358
|
-
lines.push('');
|
|
359
|
-
|
|
360
|
-
return lines.join('\n');
|
|
361
|
-
}
|