@toolproof-core/genesis 1.0.52 → 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.
Files changed (187) hide show
  1. package/dist/generated-src/declarations/booleans.d.ts +2 -0
  2. package/{generated-src → dist/generated-src}/declarations/booleans.json +1 -1
  3. package/dist/generated-src/declarations/naturals.d.ts +2 -0
  4. package/{generated-src → dist/generated-src}/declarations/naturals.json +1 -1
  5. package/dist/generated-src/declarations/resourceTypes.d.ts +2 -0
  6. package/{generated-src → dist/generated-src}/declarations/resourceTypes.json +1 -1
  7. package/dist/generated-src/declarations/tools.d.ts +2 -0
  8. package/{generated-src → dist/generated-src}/declarations/tools.json +1 -1
  9. package/dist/generated-src/implementations/tools.d.ts +100 -0
  10. package/dist/generated-src/implementations/tools.js +135 -0
  11. package/dist/generated-src/lookups/constants.d.ts +195 -0
  12. package/{generated-src/lookups/constants.ts → dist/generated-src/lookups/constants.js} +68 -2
  13. package/dist/generated-src/lookups/mappings.d.ts +11 -0
  14. package/{generated-src/lookups/mappings.ts → dist/generated-src/lookups/mappings.js} +2 -3
  15. package/dist/generated-src/schemas/schemas.d.ts +2 -0
  16. package/{generated-src → dist/generated-src}/schemas/schemas.json +1 -1
  17. package/dist/generated-src/schemas/standalone/Boolean.d.ts +2 -0
  18. package/dist/generated-src/schemas/standalone/Boolean.json +5 -0
  19. package/dist/generated-src/schemas/standalone/Error.d.ts +2 -0
  20. package/dist/generated-src/schemas/standalone/Error.json +78 -0
  21. package/dist/generated-src/schemas/standalone/Goal.d.ts +2 -0
  22. package/dist/generated-src/schemas/standalone/Goal.json +53 -0
  23. package/dist/generated-src/schemas/standalone/Natural.d.ts +2 -0
  24. package/dist/generated-src/schemas/standalone/Natural.json +6 -0
  25. package/dist/generated-src/schemas/standalone/Resource.d.ts +2 -0
  26. package/dist/generated-src/schemas/standalone/Resource.json +166 -0
  27. package/dist/generated-src/schemas/standalone/ResourceType.d.ts +2 -0
  28. package/dist/generated-src/schemas/standalone/ResourceType.json +147 -0
  29. package/dist/generated-src/schemas/standalone/Strategy.d.ts +2 -0
  30. package/dist/generated-src/schemas/standalone/Strategy.json +637 -0
  31. package/dist/generated-src/schemas/standalone/StrategyTrace.d.ts +2 -0
  32. package/dist/generated-src/schemas/standalone/StrategyTrace.json +816 -0
  33. package/dist/generated-src/schemas/standalone/Suite.d.ts +2 -0
  34. package/dist/generated-src/schemas/standalone/Suite.json +646 -0
  35. package/dist/generated-src/schemas/standalone/Tool.d.ts +2 -0
  36. package/dist/generated-src/schemas/standalone/Tool.json +533 -0
  37. package/dist/generated-src/schemas/zod/Boolean.d.ts +2 -0
  38. package/{generated-src/schemas/zod/Boolean.ts → dist/generated-src/schemas/zod/Boolean.js} +1 -4
  39. package/dist/generated-src/schemas/zod/Error.d.ts +2 -0
  40. package/dist/generated-src/schemas/zod/Error.js +8 -0
  41. package/dist/generated-src/schemas/zod/Goal.d.ts +2 -0
  42. package/dist/generated-src/schemas/zod/Goal.js +5 -0
  43. package/dist/generated-src/schemas/zod/Natural.d.ts +2 -0
  44. package/{generated-src/schemas/zod/Natural.ts → dist/generated-src/schemas/zod/Natural.js} +1 -4
  45. package/dist/generated-src/schemas/zod/Resource.d.ts +2 -0
  46. package/dist/generated-src/schemas/zod/Resource.js +18 -0
  47. package/dist/generated-src/schemas/zod/ResourceType.d.ts +2 -0
  48. package/dist/generated-src/schemas/zod/ResourceType.js +11 -0
  49. package/dist/generated-src/schemas/zod/Strategy.d.ts +12 -0
  50. package/dist/generated-src/schemas/zod/Strategy.js +70 -0
  51. package/dist/generated-src/schemas/zod/StrategyTrace.d.ts +12 -0
  52. package/dist/generated-src/schemas/zod/StrategyTrace.js +74 -0
  53. package/dist/generated-src/schemas/zod/Suite.d.ts +15 -0
  54. package/dist/generated-src/schemas/zod/Suite.js +40 -0
  55. package/dist/generated-src/schemas/zod/Tool.d.ts +9 -0
  56. package/dist/generated-src/schemas/zod/Tool.js +30 -0
  57. package/dist/generated-src/schemas/zod/index.d.ts +10 -0
  58. package/dist/generated-src/timestampedResources/booleans.d.ts +2 -0
  59. package/{generated-src → dist/generated-src}/timestampedResources/booleans.json +1 -1
  60. package/dist/generated-src/timestampedResources/naturals.d.ts +2 -0
  61. package/{generated-src → dist/generated-src}/timestampedResources/naturals.json +1 -1
  62. package/dist/generated-src/timestampedResources/resourceTypes.d.ts +2 -0
  63. package/{generated-src → dist/generated-src}/timestampedResources/resourceTypes.json +1 -1
  64. package/dist/generated-src/timestampedResources/tools.d.ts +2 -0
  65. package/{generated-src → dist/generated-src}/timestampedResources/tools.json +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.js +1 -0
  68. package/dist/scripts/_lib/config.d.ts +83 -0
  69. package/dist/scripts/_lib/config.js +269 -0
  70. package/dist/scripts/generateConstantsAndMappings.d.ts +1 -0
  71. package/dist/scripts/generateConstantsAndMappings.js +41 -0
  72. package/dist/scripts/generateCoreProjection.d.ts +1 -0
  73. package/dist/scripts/generateCoreProjection.js +56 -0
  74. package/dist/scripts/generateDeclarations.d.ts +1 -0
  75. package/dist/scripts/generateDeclarations.js +43 -0
  76. package/dist/scripts/generateDependencies.d.ts +1 -0
  77. package/dist/scripts/generateDependencies.js +25 -0
  78. package/dist/scripts/generateImplementations.d.ts +1 -0
  79. package/dist/scripts/generateImplementations.js +45 -0
  80. package/dist/scripts/generateResourceTypes.d.ts +1 -0
  81. package/dist/scripts/generateResourceTypes.js +33 -0
  82. package/dist/scripts/generateSchemaShims.d.ts +1 -0
  83. package/dist/scripts/generateSchemaShims.js +39 -0
  84. package/dist/scripts/generateStandaloneSchemas.d.ts +1 -0
  85. package/dist/scripts/generateStandaloneSchemas.js +37 -0
  86. package/dist/scripts/generateStandaloneTypes.d.ts +1 -0
  87. package/dist/scripts/generateStandaloneTypes.js +39 -0
  88. package/dist/scripts/generateStandaloneZodSchemas.d.ts +1 -0
  89. package/dist/scripts/generateStandaloneZodSchemas.js +36 -0
  90. package/dist/scripts/generateTerminals.d.ts +1 -0
  91. package/dist/scripts/generateTerminals.js +26 -0
  92. package/dist/scripts/generateTimestampedResources.d.ts +1 -0
  93. package/dist/scripts/generateTimestampedResources.js +79 -0
  94. package/dist/scripts/generateTypes.d.ts +1 -0
  95. package/dist/scripts/generateTypes.js +40 -0
  96. package/dist/scripts/normalizeAnchorsToPointers.d.ts +1 -0
  97. package/dist/scripts/normalizeAnchorsToPointers.js +32 -0
  98. package/dist/src/utils/constantsAndMappings.d.ts +20 -2
  99. package/dist/src/utils/constantsAndMappings.js +113 -5
  100. package/dist/tsconfig.tsbuildinfo +1 -0
  101. package/package.json +42 -8
  102. package/generated-src/implementations/tools.ts +0 -214
  103. package/generated-src/metadata/Core.json +0 -1929
  104. package/generated-src/metadata/dependencyMap.json +0 -297
  105. package/generated-src/metadata/terminals.json +0 -16
  106. package/generated-src/schemas/standalone/Boolean.json +0 -5
  107. package/generated-src/schemas/standalone/Error.json +0 -78
  108. package/generated-src/schemas/standalone/Goal.json +0 -53
  109. package/generated-src/schemas/standalone/Natural.json +0 -6
  110. package/generated-src/schemas/standalone/Resource.json +0 -166
  111. package/generated-src/schemas/standalone/ResourceType.json +0 -147
  112. package/generated-src/schemas/standalone/Strategy.json +0 -637
  113. package/generated-src/schemas/standalone/StrategyTrace.json +0 -816
  114. package/generated-src/schemas/standalone/Suite.json +0 -646
  115. package/generated-src/schemas/standalone/Tool.json +0 -533
  116. package/generated-src/schemas/zod/Error.ts +0 -11
  117. package/generated-src/schemas/zod/Goal.ts +0 -8
  118. package/generated-src/schemas/zod/Resource.ts +0 -21
  119. package/generated-src/schemas/zod/ResourceType.ts +0 -14
  120. package/generated-src/schemas/zod/Strategy.ts +0 -68
  121. package/generated-src/schemas/zod/StrategyTrace.ts +0 -75
  122. package/generated-src/schemas/zod/Suite.ts +0 -44
  123. package/generated-src/schemas/zod/Tool.ts +0 -34
  124. package/src/declarations/booleans.json +0 -4
  125. package/src/declarations/naturals.json +0 -13
  126. package/src/declarations/resourceTypes/resourceTypeShells.json +0 -53
  127. package/src/declarations/resourceTypes/schemas.json +0 -1839
  128. package/src/declarations/tools.json +0 -705
  129. package/src/implementations/tools.ts +0 -214
  130. package/src/index.ts +0 -131
  131. package/src/utils/constantsAndMappings.ts +0 -195
  132. package/src/utils/coreProjection.ts +0 -53
  133. package/src/utils/resourceTypes.ts +0 -71
  134. package/src/utils/schemaDependencies.ts +0 -115
  135. package/src/utils/schemaObjectNormalization.ts +0 -71
  136. package/src/utils/schemaRefNormalization.ts +0 -83
  137. package/src/utils/schemaShims.ts +0 -17
  138. package/src/utils/standaloneSchemas.ts +0 -114
  139. package/src/utils/standaloneTypes.ts +0 -28
  140. package/src/utils/standaloneZodSchemas.ts +0 -72
  141. package/src/utils/timestampedResources.ts +0 -42
  142. package/src/utils/typeGeneration.ts +0 -31
  143. package/src/utils/typeGenerationPostProcess.ts +0 -246
  144. package/src/utils/typeGenerationPreflight.ts +0 -119
  145. package/src/utils/zodCodegen.ts +0 -549
  146. /package/{generated-src/declarations/booleans.ts → dist/generated-src/declarations/booleans.js} +0 -0
  147. /package/{generated-src/declarations/naturals.ts → dist/generated-src/declarations/naturals.js} +0 -0
  148. /package/{generated-src/declarations/resourceTypes.ts → dist/generated-src/declarations/resourceTypes.js} +0 -0
  149. /package/{generated-src/declarations/tools.ts → dist/generated-src/declarations/tools.js} +0 -0
  150. /package/{generated-src/schemas/schemas.ts → dist/generated-src/schemas/schemas.js} +0 -0
  151. /package/{generated-src/schemas/standalone/Boolean.ts → dist/generated-src/schemas/standalone/Boolean.js} +0 -0
  152. /package/{generated-src/schemas/standalone/Error.ts → dist/generated-src/schemas/standalone/Error.js} +0 -0
  153. /package/{generated-src/schemas/standalone/Goal.ts → dist/generated-src/schemas/standalone/Goal.js} +0 -0
  154. /package/{generated-src/schemas/standalone/Natural.ts → dist/generated-src/schemas/standalone/Natural.js} +0 -0
  155. /package/{generated-src/schemas/standalone/Resource.ts → dist/generated-src/schemas/standalone/Resource.js} +0 -0
  156. /package/{generated-src/schemas/standalone/ResourceType.ts → dist/generated-src/schemas/standalone/ResourceType.js} +0 -0
  157. /package/{generated-src/schemas/standalone/Strategy.ts → dist/generated-src/schemas/standalone/Strategy.js} +0 -0
  158. /package/{generated-src/schemas/standalone/StrategyTrace.ts → dist/generated-src/schemas/standalone/StrategyTrace.js} +0 -0
  159. /package/{generated-src/schemas/standalone/Suite.ts → dist/generated-src/schemas/standalone/Suite.js} +0 -0
  160. /package/{generated-src/schemas/standalone/Tool.ts → dist/generated-src/schemas/standalone/Tool.js} +0 -0
  161. /package/{generated-src/schemas/zod/index.ts → dist/generated-src/schemas/zod/index.js} +0 -0
  162. /package/{generated-src/timestampedResources/booleans.ts → dist/generated-src/timestampedResources/booleans.js} +0 -0
  163. /package/{generated-src/timestampedResources/naturals.ts → dist/generated-src/timestampedResources/naturals.js} +0 -0
  164. /package/{generated-src/timestampedResources/resourceTypes.ts → dist/generated-src/timestampedResources/resourceTypes.js} +0 -0
  165. /package/{generated-src/timestampedResources/tools.ts → dist/generated-src/timestampedResources/tools.js} +0 -0
  166. /package/{generated-src → dist/generated-src}/types/standalone/BooleanResource.d.ts +0 -0
  167. /package/{generated-src → dist/generated-src}/types/standalone/BooleanResource.js +0 -0
  168. /package/{generated-src → dist/generated-src}/types/standalone/ErrorResource.d.ts +0 -0
  169. /package/{generated-src → dist/generated-src}/types/standalone/ErrorResource.js +0 -0
  170. /package/{generated-src → dist/generated-src}/types/standalone/GoalResource.d.ts +0 -0
  171. /package/{generated-src → dist/generated-src}/types/standalone/GoalResource.js +0 -0
  172. /package/{generated-src → dist/generated-src}/types/standalone/NaturalResource.d.ts +0 -0
  173. /package/{generated-src → dist/generated-src}/types/standalone/NaturalResource.js +0 -0
  174. /package/{generated-src → dist/generated-src}/types/standalone/ResourceResource.d.ts +0 -0
  175. /package/{generated-src → dist/generated-src}/types/standalone/ResourceResource.js +0 -0
  176. /package/{generated-src → dist/generated-src}/types/standalone/ResourceTypeResource.d.ts +0 -0
  177. /package/{generated-src → dist/generated-src}/types/standalone/ResourceTypeResource.js +0 -0
  178. /package/{generated-src → dist/generated-src}/types/standalone/StrategyResource.d.ts +0 -0
  179. /package/{generated-src → dist/generated-src}/types/standalone/StrategyResource.js +0 -0
  180. /package/{generated-src → dist/generated-src}/types/standalone/StrategyTraceResource.d.ts +0 -0
  181. /package/{generated-src → dist/generated-src}/types/standalone/StrategyTraceResource.js +0 -0
  182. /package/{generated-src → dist/generated-src}/types/standalone/SuiteResource.d.ts +0 -0
  183. /package/{generated-src → dist/generated-src}/types/standalone/SuiteResource.js +0 -0
  184. /package/{generated-src → dist/generated-src}/types/standalone/ToolResource.d.ts +0 -0
  185. /package/{generated-src → dist/generated-src}/types/standalone/ToolResource.js +0 -0
  186. /package/{generated-src → dist/generated-src}/types/types.d.ts +0 -0
  187. /package/{generated-src → dist/generated-src}/types/types.js +0 -0
@@ -0,0 +1,36 @@
1
+ import * as fs from 'node:fs';
2
+ import { getConfig } from './_lib/config.js';
3
+ import { generateStandaloneZodBarrel, generateStandaloneZodModule, } from '../src/utils/standaloneZodSchemas.js';
4
+ function main() {
5
+ try {
6
+ const config = getConfig();
7
+ const resourceTypeShellsPath = config.getResourceTypeShellsSourcePath();
8
+ if (!fs.existsSync(resourceTypeShellsPath)) {
9
+ throw new Error(`Resource type records source file not found at ${resourceTypeShellsPath}`);
10
+ }
11
+ const resourceTypeShells = JSON.parse(fs.readFileSync(resourceTypeShellsPath, 'utf8'));
12
+ const names = Object.keys(resourceTypeShells);
13
+ const zodDir = config.getZodSchemasDir();
14
+ fs.mkdirSync(zodDir, { recursive: true });
15
+ for (const name of names) {
16
+ const inPath = config.getStandaloneSchemaPath(`${name}.json`);
17
+ if (!fs.existsSync(inPath)) {
18
+ throw new Error(`Standalone schema not found at ${inPath}. Run generateStandaloneSchemas first.`);
19
+ }
20
+ const parsed = JSON.parse(fs.readFileSync(inPath, 'utf8'));
21
+ const generated = generateStandaloneZodModule(name, parsed);
22
+ const outPath = config.getZodSchemaPath(generated.fileName);
23
+ fs.writeFileSync(outPath, generated.content, 'utf8');
24
+ if (generated.warnings.length > 0) {
25
+ console.warn(`Generated Zod schema '${name}' with ${generated.warnings.length} warning(s).`);
26
+ }
27
+ console.log(`Wrote ${outPath}`);
28
+ }
29
+ fs.writeFileSync(config.getZodIndexPath(), generateStandaloneZodBarrel(names), 'utf8');
30
+ }
31
+ catch (error) {
32
+ console.error(error?.message ?? error);
33
+ process.exitCode = 1;
34
+ }
35
+ }
36
+ void main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { getConfig } from './_lib/config.js';
4
+ import { computeTerminalsInKeyOrder, normalizeDependencyMap, } from '../src/utils/schemaDependencies.js';
5
+ function main() {
6
+ try {
7
+ const config = getConfig();
8
+ const inPath = config.getDependencyMapPath();
9
+ const outPath = config.getTerminalsPath();
10
+ if (!fs.existsSync(inPath)) {
11
+ throw new Error(`Dependency map not found at ${inPath}. Run generateDependencies first.`);
12
+ }
13
+ const raw = fs.readFileSync(inPath, 'utf8');
14
+ const parsed = JSON.parse(raw);
15
+ const dependencyMap = normalizeDependencyMap(parsed);
16
+ const terminals = computeTerminalsInKeyOrder(dependencyMap);
17
+ fs.mkdirSync(path.dirname(outPath), { recursive: true });
18
+ fs.writeFileSync(outPath, JSON.stringify(terminals, null, 4), 'utf8');
19
+ console.log(`Wrote terminals to ${outPath}`);
20
+ }
21
+ catch (error) {
22
+ console.error(error?.message ?? error);
23
+ process.exitCode = 1;
24
+ }
25
+ }
26
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,79 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { getConfig } from './_lib/config.js';
4
+ import { generateTimestampedResources } from '../src/utils/timestampedResources.js';
5
+ /**
6
+ * Wrap canonical declarations with TimestampedResource records.
7
+ */
8
+ // IMPURE: Script entrypoint (config + filesystem I/O + console + process exit code).
9
+ function main() {
10
+ try {
11
+ const config = getConfig();
12
+ const jobs = [
13
+ {
14
+ inPath: config.getResourceTypesDeclarationPath(),
15
+ outPath: config.getResourceTypeTimestampedResourcesPath(),
16
+ label: 'resource type',
17
+ resourceTypeHandle: 'TYPE-ResourceType',
18
+ getResourceId: (value) => getResourceIdFromHandle(value),
19
+ },
20
+ {
21
+ inPath: config.getToolsDeclarationPath(),
22
+ outPath: config.getToolTimestampedResourcesPath(),
23
+ label: 'tool',
24
+ resourceTypeHandle: 'TYPE-Tool',
25
+ getResourceId: (value) => getResourceIdFromHandle(value),
26
+ },
27
+ {
28
+ inPath: config.getBooleansDeclarationPath(),
29
+ outPath: config.getBooleanTimestampedResourcesPath(),
30
+ label: 'boolean',
31
+ resourceTypeHandle: 'TYPE-Boolean',
32
+ getResourceId: (value) => `RESOURCE-BOOLEAN:${value === true ? 'True' : 'False'}`,
33
+ },
34
+ {
35
+ inPath: config.getNaturalsDeclarationPath(),
36
+ outPath: config.getNaturalTimestampedResourcesPath(),
37
+ label: 'natural',
38
+ resourceTypeHandle: 'TYPE-Natural',
39
+ getResourceId: (value) => `RESOURCE-NATURAL:${String(value)}`,
40
+ },
41
+ ];
42
+ for (const job of jobs) {
43
+ if (!fs.existsSync(job.inPath)) {
44
+ throw new Error(`Generated ${job.label} declarations file not found at ${job.inPath}`);
45
+ }
46
+ const declarations = JSON.parse(fs.readFileSync(job.inPath, 'utf-8'));
47
+ if (!Array.isArray(declarations)) {
48
+ throw new Error(`Generated ${job.label} declarations file must be an array at ${job.inPath}`);
49
+ }
50
+ const timestampedResources = generateTimestampedResources(declarations, {
51
+ resourceTypeHandle: job.resourceTypeHandle,
52
+ getResourceId: job.getResourceId,
53
+ });
54
+ fs.mkdirSync(path.dirname(job.outPath), { recursive: true });
55
+ fs.writeFileSync(job.outPath, JSON.stringify(timestampedResources, null, 4), 'utf-8');
56
+ console.log(`Generated ${timestampedResources.length} ${job.label} timestamped resources -> ${job.outPath}`);
57
+ }
58
+ }
59
+ catch (error) {
60
+ console.error(error?.message ?? error);
61
+ process.exitCode = 1;
62
+ }
63
+ }
64
+ function getResourceIdFromHandle(value) {
65
+ if (value && typeof value === 'object' && 'handle' in value && typeof value.handle === 'string') {
66
+ return formatResourceIdFromHandle(value.handle);
67
+ }
68
+ throw new Error('Timestamped resource generation requires declaration values with a string handle.');
69
+ }
70
+ function formatResourceIdFromHandle(handle) {
71
+ const separatorIndex = handle.indexOf('-');
72
+ if (separatorIndex === -1) {
73
+ return `RESOURCE-${handle}`;
74
+ }
75
+ const namespace = handle.slice(0, separatorIndex);
76
+ const localPart = handle.slice(separatorIndex + 1);
77
+ return `RESOURCE-${namespace}:${localPart}`;
78
+ }
79
+ main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { getConfig } from './_lib/config.js';
4
+ import { generateTypeDeclarations } from '../src/utils/typeGeneration.js';
5
+ async function main() {
6
+ try {
7
+ const config = getConfig();
8
+ const schemaPath = config.getSchemasPath();
9
+ const srcTypesDir = config.getTypesSrcDir();
10
+ const distTypesDir = config.getTypesDistDir();
11
+ const srcOutputPath = config.getTypesDtsSrcPath();
12
+ const distOutputPath = config.getTypesDtsDistPath();
13
+ const srcJsPath = config.getTypesJsSrcPath();
14
+ const distJsPath = config.getTypesJsDistPath();
15
+ if (!fs.existsSync(schemaPath)) {
16
+ throw new Error(`Generated schemas file not found at ${schemaPath}\n` +
17
+ 'Run the normalization step first (for example: pnpm run normalizeAnchorsToPointers).');
18
+ }
19
+ const parsedSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf8'));
20
+ const rootName = path.basename(schemaPath, path.extname(schemaPath));
21
+ const output = await generateTypeDeclarations(parsedSchema, rootName);
22
+ fs.mkdirSync(srcTypesDir, { recursive: true });
23
+ fs.writeFileSync(srcOutputPath, output, 'utf8');
24
+ console.log(`Wrote ${srcOutputPath}`);
25
+ fs.mkdirSync(distTypesDir, { recursive: true });
26
+ fs.writeFileSync(distOutputPath, output, 'utf8');
27
+ console.log(`Wrote ${distOutputPath}`);
28
+ if (!fs.existsSync(srcJsPath)) {
29
+ fs.writeFileSync(srcJsPath, 'export {}\n', 'utf8');
30
+ console.log(`Wrote ${srcJsPath}`);
31
+ }
32
+ fs.writeFileSync(distJsPath, 'export {}\n', 'utf8');
33
+ console.log(`Wrote ${distJsPath}`);
34
+ }
35
+ catch (error) {
36
+ console.error(error?.message ?? error);
37
+ process.exitCode = 1;
38
+ }
39
+ }
40
+ void main();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { getConfig } from './_lib/config.js';
4
+ import { normalizeAnchorsToPointers } from '../src/utils/schemaRefNormalization.js';
5
+ /**
6
+ * Rewrite local anchor refs in the configured source schema document to JSON pointers.
7
+ */
8
+ // IMPURE: Script entrypoint (config + filesystem I/O + console + process exit code).
9
+ function main() {
10
+ try {
11
+ const config = getConfig();
12
+ const inPath = config.getSchemasSourcePath();
13
+ const outPath = config.getSchemasPath();
14
+ if (!fs.existsSync(inPath)) {
15
+ throw new Error(`Schema source file not found at ${inPath}`);
16
+ }
17
+ const raw = fs.readFileSync(inPath, 'utf-8');
18
+ const schemas = JSON.parse(raw);
19
+ if (!schemas.$defs || typeof schemas.$defs !== 'object') {
20
+ throw new Error('Source schema document must have root $defs');
21
+ }
22
+ const normalizedSchemas = normalizeAnchorsToPointers(schemas);
23
+ fs.mkdirSync(path.dirname(outPath), { recursive: true });
24
+ fs.writeFileSync(outPath, JSON.stringify(normalizedSchemas, null, 4), 'utf-8');
25
+ console.log(`Wrote generated schemas with pointer refs to ${outPath}`);
26
+ }
27
+ catch (error) {
28
+ console.error(error?.message ?? error);
29
+ process.exitCode = 1;
30
+ }
31
+ }
32
+ main();
@@ -1,17 +1,35 @@
1
1
  type JSONValue = null | boolean | number | string | JSONValue[] | {
2
2
  [k: string]: JSONValue;
3
3
  };
4
+ type HandleRecord = {
5
+ handle?: unknown;
6
+ };
7
+ type HandleRecordByName = Record<string, HandleRecord>;
8
+ type ToolRecord = HandleRecord & {
9
+ isTemplate?: unknown;
10
+ templateToolHandle?: unknown;
11
+ instantiationRoleSpec?: unknown;
12
+ roleSpec?: unknown;
13
+ };
14
+ type ToolRecordByName = Record<string, ToolRecord>;
4
15
  export type GeneratedConstants = {
5
16
  Names: Record<string, string>;
17
+ Handles: {
18
+ ResourceTypes: Record<string, string>;
19
+ Tools: Record<string, string>;
20
+ };
21
+ ToolRoleNames: Record<string, Record<string, string>>;
6
22
  Enums: Record<string, Record<string, string>>;
7
23
  };
8
24
  export type GeneratedMappings = {
9
- HandleNameToPrefix: Record<string, string>;
25
+ IdentifierNameToPrefix: Record<string, string>;
10
26
  };
11
27
  export declare function extractHandlePrefixes(schema: unknown): Record<string, string>;
12
28
  export declare function extractSubschemaNames(schema: unknown): Record<string, string>;
13
29
  export declare function extractEnums(schema: unknown): Record<string, Record<string, string>>;
14
- export declare function extractGeneratedConstantsAndMappings(schema: JSONValue): {
30
+ export declare function extractHandles(records: HandleRecordByName): Record<string, string>;
31
+ export declare function extractToolRoleNames(tools: ToolRecordByName): Record<string, Record<string, string>>;
32
+ export declare function extractGeneratedConstantsAndMappings(schema: JSONValue, resourceTypeShells: HandleRecordByName, tools: ToolRecordByName): {
15
33
  CONSTANTS: GeneratedConstants;
16
34
  MAPPINGS: GeneratedMappings;
17
35
  };
@@ -78,17 +78,96 @@ export function extractEnums(schema) {
78
78
  }
79
79
  return out;
80
80
  }
81
- export function extractGeneratedConstantsAndMappings(schema) {
81
+ function toHandleConstantKey(handle) {
82
+ return handle.replace(/[^A-Za-z0-9]+/g, '_');
83
+ }
84
+ export function extractHandles(records) {
85
+ const recordEntries = Object.entries(records);
86
+ recordEntries.sort(([a], [b]) => a.localeCompare(b));
87
+ const out = {};
88
+ for (const [, record] of recordEntries) {
89
+ if (!record || typeof record !== 'object')
90
+ continue;
91
+ if (typeof record.handle !== 'string')
92
+ continue;
93
+ if (!record.handle || /[\n\r`]/.test(record.handle))
94
+ continue;
95
+ out[toHandleConstantKey(record.handle)] = record.handle;
96
+ }
97
+ return out;
98
+ }
99
+ function isPlainObject(value) {
100
+ return !!value && typeof value === 'object' && !Array.isArray(value);
101
+ }
102
+ function extractRoleNameMap(roleSpec) {
103
+ if (!isPlainObject(roleSpec)) {
104
+ return {};
105
+ }
106
+ const out = {};
107
+ const groups = [
108
+ roleSpec.inputRoleValueByName,
109
+ roleSpec.outputRoleValueByName,
110
+ ];
111
+ for (const group of groups) {
112
+ if (!isPlainObject(group)) {
113
+ continue;
114
+ }
115
+ const entries = Object.keys(group).sort((a, b) => a.localeCompare(b));
116
+ for (const roleName of entries) {
117
+ if (!roleName || /[\n\r`]/.test(roleName)) {
118
+ continue;
119
+ }
120
+ out[roleName] = roleName;
121
+ }
122
+ }
123
+ return out;
124
+ }
125
+ function isCanonicalToolRecord(tool) {
126
+ if (tool.isTemplate === true) {
127
+ return true;
128
+ }
129
+ return tool.isTemplate === false && tool.templateToolHandle === undefined;
130
+ }
131
+ export function extractToolRoleNames(tools) {
132
+ const toolEntries = Object.values(tools)
133
+ .filter((tool) => isPlainObject(tool))
134
+ .filter((tool) => typeof tool.handle === 'string' && !!tool.handle)
135
+ .sort((a, b) => String(a.handle).localeCompare(String(b.handle)));
136
+ const out = {};
137
+ for (const tool of toolEntries) {
138
+ if (!isCanonicalToolRecord(tool)) {
139
+ continue;
140
+ }
141
+ const roleSpec = tool.isTemplate === true
142
+ ? tool.instantiationRoleSpec
143
+ : tool.roleSpec;
144
+ const roleNameMap = extractRoleNameMap(roleSpec);
145
+ if (Object.keys(roleNameMap).length === 0) {
146
+ continue;
147
+ }
148
+ out[toHandleConstantKey(tool.handle)] = roleNameMap;
149
+ }
150
+ return out;
151
+ }
152
+ export function extractGeneratedConstantsAndMappings(schema, resourceTypeShells, tools) {
82
153
  const names = extractSubschemaNames(schema);
154
+ const resourceTypeHandles = extractHandles(resourceTypeShells);
155
+ const toolHandles = extractHandles(tools);
156
+ const toolRoleNames = extractToolRoleNames(tools);
83
157
  const enums = extractEnums(schema);
84
158
  const handlePrefixes = extractHandlePrefixes(schema);
85
159
  return {
86
160
  CONSTANTS: {
87
161
  Names: names,
162
+ Handles: {
163
+ ResourceTypes: resourceTypeHandles,
164
+ Tools: toolHandles,
165
+ },
166
+ ToolRoleNames: toolRoleNames,
88
167
  Enums: enums,
89
168
  },
90
169
  MAPPINGS: {
91
- HandleNameToPrefix: handlePrefixes,
170
+ IdentifierNameToPrefix: handlePrefixes,
92
171
  },
93
172
  };
94
173
  }
@@ -111,6 +190,9 @@ function renderTsKey(key) {
111
190
  }
112
191
  export function renderConstantsTs(constants) {
113
192
  const nameKeys = Object.keys(constants.Names).sort((a, b) => a.localeCompare(b));
193
+ const resourceTypeHandleKeys = Object.keys(constants.Handles.ResourceTypes).sort((a, b) => a.localeCompare(b));
194
+ const toolHandleKeys = Object.keys(constants.Handles.Tools).sort((a, b) => a.localeCompare(b));
195
+ const toolRoleNameKeys = Object.keys(constants.ToolRoleNames).sort((a, b) => a.localeCompare(b));
114
196
  const enumKeys = Object.keys(constants.Enums).sort((a, b) => a.localeCompare(b));
115
197
  const lines = [];
116
198
  lines.push('const CONSTANTS = {');
@@ -120,6 +202,32 @@ export function renderConstantsTs(constants) {
120
202
  lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
121
203
  }
122
204
  lines.push(' },');
205
+ lines.push(' Handles: {');
206
+ lines.push(' ResourceTypes: {');
207
+ for (const key of resourceTypeHandleKeys) {
208
+ const value = constants.Handles.ResourceTypes[key] ?? '';
209
+ lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
210
+ }
211
+ lines.push(' },');
212
+ lines.push(' Tools: {');
213
+ for (const key of toolHandleKeys) {
214
+ const value = constants.Handles.Tools[key] ?? '';
215
+ lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
216
+ }
217
+ lines.push(' },');
218
+ lines.push(' },');
219
+ lines.push(' ToolRoleNames: {');
220
+ for (const toolKey of toolRoleNameKeys) {
221
+ const roleNames = constants.ToolRoleNames[toolKey] ?? {};
222
+ const roleKeys = Object.keys(roleNames).sort((a, b) => a.localeCompare(b));
223
+ lines.push(` ${renderTsKey(toolKey)}: {`);
224
+ for (const roleKey of roleKeys) {
225
+ const value = roleNames[roleKey] ?? '';
226
+ lines.push(` ${renderTsKey(roleKey)}: ${renderTsStringLiteral(value)},`);
227
+ }
228
+ lines.push(' },');
229
+ }
230
+ lines.push(' },');
123
231
  lines.push(' Enums: {');
124
232
  for (const key of enumKeys) {
125
233
  const members = constants.Enums[key] ?? {};
@@ -138,12 +246,12 @@ export function renderConstantsTs(constants) {
138
246
  return lines.join('\n');
139
247
  }
140
248
  export function renderMappingsTs(mappings) {
141
- const handleKeys = Object.keys(mappings.HandleNameToPrefix).sort((a, b) => a.localeCompare(b));
249
+ const handleKeys = Object.keys(mappings.IdentifierNameToPrefix).sort((a, b) => a.localeCompare(b));
142
250
  const lines = [];
143
251
  lines.push('const MAPPINGS = {');
144
- lines.push(' HandleNameToPrefix: {');
252
+ lines.push(' IdentifierNameToPrefix: {');
145
253
  for (const key of handleKeys) {
146
- const value = mappings.HandleNameToPrefix[key] ?? '';
254
+ const value = mappings.IdentifierNameToPrefix[key] ?? '';
147
255
  lines.push(` ${renderTsKey(key)}: ${renderTsStringLiteral(value)},`);
148
256
  }
149
257
  lines.push(' },');
@@ -0,0 +1 @@
1
+ {"root":["../index.ts","../src/index.ts","../src/implementations/tools.ts","../src/utils/constantsandmappings.ts","../src/utils/coreprojection.ts","../src/utils/resourcetypes.ts","../src/utils/schemadependencies.ts","../src/utils/schemaobjectnormalization.ts","../src/utils/schemarefnormalization.ts","../src/utils/schemashims.ts","../src/utils/standaloneschemas.ts","../src/utils/standalonetypes.ts","../src/utils/standalonezodschemas.ts","../src/utils/timestampedresources.ts","../src/utils/typegeneration.ts","../src/utils/typegenerationpostprocess.ts","../src/utils/typegenerationpreflight.ts","../src/utils/zodcodegen.ts","../generated-src/declarations/booleans.ts","../generated-src/declarations/naturals.ts","../generated-src/declarations/resourcetypes.ts","../generated-src/declarations/tools.ts","../generated-src/implementations/tools.ts","../generated-src/lookups/constants.ts","../generated-src/lookups/mappings.ts","../generated-src/schemas/schemas.ts","../generated-src/schemas/standalone/boolean.ts","../generated-src/schemas/standalone/error.ts","../generated-src/schemas/standalone/goal.ts","../generated-src/schemas/standalone/natural.ts","../generated-src/schemas/standalone/resource.ts","../generated-src/schemas/standalone/resourcetype.ts","../generated-src/schemas/standalone/strategy.ts","../generated-src/schemas/standalone/strategytrace.ts","../generated-src/schemas/standalone/suite.ts","../generated-src/schemas/standalone/tool.ts","../generated-src/schemas/zod/boolean.ts","../generated-src/schemas/zod/error.ts","../generated-src/schemas/zod/goal.ts","../generated-src/schemas/zod/natural.ts","../generated-src/schemas/zod/resource.ts","../generated-src/schemas/zod/resourcetype.ts","../generated-src/schemas/zod/strategy.ts","../generated-src/schemas/zod/strategytrace.ts","../generated-src/schemas/zod/suite.ts","../generated-src/schemas/zod/tool.ts","../generated-src/schemas/zod/index.ts","../generated-src/timestampedresources/booleans.ts","../generated-src/timestampedresources/naturals.ts","../generated-src/timestampedresources/resourcetypes.ts","../generated-src/timestampedresources/tools.ts","../generated-src/types/types.d.ts","../generated-src/types/standalone/booleanresource.d.ts","../generated-src/types/standalone/errorresource.d.ts","../generated-src/types/standalone/goalresource.d.ts","../generated-src/types/standalone/naturalresource.d.ts","../generated-src/types/standalone/resourceresource.d.ts","../generated-src/types/standalone/resourcetyperesource.d.ts","../generated-src/types/standalone/strategyresource.d.ts","../generated-src/types/standalone/strategytraceresource.d.ts","../generated-src/types/standalone/suiteresource.d.ts","../generated-src/types/standalone/toolresource.d.ts","../scripts/generateconstantsandmappings.ts","../scripts/generatecoreprojection.ts","../scripts/generatedeclarations.ts","../scripts/generatedependencies.ts","../scripts/generateimplementations.ts","../scripts/generateresourcetypes.ts","../scripts/generateschemashims.ts","../scripts/generatestandaloneschemas.ts","../scripts/generatestandalonetypes.ts","../scripts/generatestandalonezodschemas.ts","../scripts/generateterminals.ts","../scripts/generatetimestampedresources.ts","../scripts/generatetypes.ts","../scripts/normalizeanchorstopointers.ts","../scripts/_lib/config.ts"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,20 +1,54 @@
1
1
  {
2
2
  "name": "@toolproof-core/genesis",
3
- "version": "1.0.52",
3
+ "version": "1.0.54",
4
4
  "description": "Core ToolProof ontology, schemas, declarations, implementations, and generated type artifacts.",
5
- "main": "dist/src/index.js",
6
- "types": "dist/src/index.d.ts",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
- "import": "./dist/src/index.js",
10
- "types": "./dist/src/index.d.ts"
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./lookups/constants": {
13
+ "import": "./dist/generated-src/lookups/constants.js",
14
+ "types": "./dist/generated-src/lookups/constants.d.ts"
15
+ },
16
+ "./lookups/mappings": {
17
+ "import": "./dist/generated-src/lookups/mappings.js",
18
+ "types": "./dist/generated-src/lookups/mappings.d.ts"
19
+ },
20
+ "./types": {
21
+ "import": "./dist/generated-src/types/types.js",
22
+ "types": "./dist/generated-src/types/types.d.ts"
23
+ },
24
+ "./schemas": {
25
+ "import": "./dist/generated-src/schemas/schemas.js",
26
+ "types": "./dist/generated-src/schemas/schemas.d.ts"
27
+ },
28
+ "./implementations/tools": {
29
+ "import": "./dist/generated-src/implementations/tools.js",
30
+ "types": "./dist/generated-src/implementations/tools.d.ts"
31
+ },
32
+ "./timestamped-resources/resource-types": {
33
+ "import": "./dist/generated-src/timestampedResources/resourceTypes.js",
34
+ "types": "./dist/generated-src/timestampedResources/resourceTypes.d.ts"
35
+ },
36
+ "./timestamped-resources/tools": {
37
+ "import": "./dist/generated-src/timestampedResources/tools.js",
38
+ "types": "./dist/generated-src/timestampedResources/tools.d.ts"
39
+ },
40
+ "./timestamped-resources/booleans": {
41
+ "import": "./dist/generated-src/timestampedResources/booleans.js",
42
+ "types": "./dist/generated-src/timestampedResources/booleans.d.ts"
43
+ },
44
+ "./timestamped-resources/naturals": {
45
+ "import": "./dist/generated-src/timestampedResources/naturals.js",
46
+ "types": "./dist/generated-src/timestampedResources/naturals.d.ts"
11
47
  }
12
48
  },
13
49
  "files": [
14
50
  "toolproof.json",
15
- "dist/src",
16
- "src",
17
- "generated-src"
51
+ "dist"
18
52
  ],
19
53
  "type": "module",
20
54
  "keywords": [],