@toolproof-core/genesis 1.0.49 → 1.0.50

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 (93) hide show
  1. package/dist/src/implementations/tools.d.ts +100 -0
  2. package/dist/src/implementations/tools.js +135 -0
  3. package/dist/src/index.d.ts +5 -4
  4. package/dist/src/index.js +4 -3
  5. package/dist/src/utils/resourceTypes.d.ts +2 -1
  6. package/dist/src/utils/resourceTypes.js +22 -6
  7. package/dist/src/utils/schemaRefNormalization.js +3 -3
  8. package/dist/src/utils/standaloneTypes.js +2 -2
  9. package/dist/src/utils/timestampedResources.d.ts +16 -0
  10. package/dist/src/utils/timestampedResources.js +17 -0
  11. package/dist/src/utils/typeGenerationPostProcess.js +2 -2
  12. package/dist/src/utils/zodCodegen.js +3 -3
  13. package/generated-src/declarations/booleans.json +4 -0
  14. package/generated-src/declarations/booleans.ts +2 -0
  15. package/generated-src/declarations/naturals.json +13 -0
  16. package/generated-src/declarations/naturals.ts +2 -0
  17. package/generated-src/{resourceTypes → declarations}/resourceTypes.json +176 -39
  18. package/generated-src/declarations/resourceTypes.ts +2 -0
  19. package/generated-src/declarations/tools.json +705 -0
  20. package/generated-src/declarations/tools.ts +2 -0
  21. package/generated-src/implementations/tools.ts +214 -0
  22. package/generated-src/{derived → lookups}/constants.ts +4 -5
  23. package/generated-src/metadata/Core.json +51 -114
  24. package/generated-src/metadata/dependencyMap.json +16 -2
  25. package/generated-src/metadata/terminals.json +3 -4
  26. package/generated-src/schemas/schemas.json +198 -29
  27. package/generated-src/schemas/standalone/Resource.json +4 -8
  28. package/generated-src/schemas/standalone/ResourceType.json +21 -5
  29. package/generated-src/schemas/standalone/Strategy.json +4 -8
  30. package/generated-src/schemas/standalone/StrategyTrace.json +4 -8
  31. package/generated-src/schemas/standalone/Suite.json +646 -0
  32. package/generated-src/schemas/standalone/Suite.ts +2 -0
  33. package/generated-src/schemas/standalone/Tool.json +48 -23
  34. package/generated-src/schemas/zod/Resource.ts +2 -2
  35. package/generated-src/schemas/zod/ResourceType.ts +1 -1
  36. package/generated-src/schemas/zod/Strategy.ts +3 -3
  37. package/generated-src/schemas/zod/StrategyTrace.ts +3 -3
  38. package/generated-src/schemas/zod/Suite.ts +44 -0
  39. package/generated-src/schemas/zod/Tool.ts +7 -2
  40. package/generated-src/schemas/zod/index.ts +1 -0
  41. package/{src/genesis/resources → generated-src/timestampedResources}/booleans.json +19 -23
  42. package/generated-src/timestampedResources/booleans.ts +2 -0
  43. package/{src/genesis/resources → generated-src/timestampedResources}/naturals.json +100 -111
  44. package/generated-src/timestampedResources/naturals.ts +2 -0
  45. package/generated-src/{resources → timestampedResources}/resourceTypes.json +202 -66
  46. package/generated-src/timestampedResources/resourceTypes.ts +2 -0
  47. package/{src/genesis/resources → generated-src/timestampedResources}/tools.json +824 -839
  48. package/generated-src/timestampedResources/tools.ts +2 -0
  49. package/generated-src/types/standalone/BooleanResource.d.ts +2 -2
  50. package/generated-src/types/standalone/ErrorResource.d.ts +2 -2
  51. package/generated-src/types/standalone/GoalResource.d.ts +2 -2
  52. package/generated-src/types/standalone/NaturalResource.d.ts +2 -2
  53. package/generated-src/types/standalone/ResourceResource.d.ts +2 -2
  54. package/generated-src/types/standalone/ResourceTypeResource.d.ts +2 -2
  55. package/generated-src/types/standalone/StrategyResource.d.ts +2 -2
  56. package/generated-src/types/standalone/StrategyTraceResource.d.ts +2 -2
  57. package/generated-src/types/standalone/SuiteResource.d.ts +3 -0
  58. package/generated-src/types/standalone/SuiteResource.js +1 -0
  59. package/generated-src/types/standalone/ToolResource.d.ts +2 -2
  60. package/generated-src/types/types.d.ts +57 -14
  61. package/package.json +18 -13
  62. package/src/declarations/booleans.json +4 -0
  63. package/src/declarations/naturals.json +13 -0
  64. package/src/{genesis → declarations/resourceTypes}/resourceTypeShells.json +52 -46
  65. package/src/{genesis → declarations/resourceTypes}/schemas.json +1838 -1669
  66. package/src/declarations/tools.json +705 -0
  67. package/src/implementations/tools.ts +214 -0
  68. package/src/index.ts +131 -110
  69. package/src/utils/constantsAndMappings.ts +194 -194
  70. package/src/utils/coreProjection.ts +52 -52
  71. package/src/utils/resourceTypes.ts +70 -38
  72. package/src/utils/schemaDependencies.ts +114 -114
  73. package/src/utils/schemaObjectNormalization.ts +70 -70
  74. package/src/utils/schemaRefNormalization.ts +82 -82
  75. package/src/utils/schemaShims.ts +16 -16
  76. package/src/utils/standaloneSchemas.ts +113 -113
  77. package/src/utils/standaloneTypes.ts +27 -27
  78. package/src/utils/standaloneZodSchemas.ts +71 -71
  79. package/src/utils/timestampedResources.ts +42 -0
  80. package/src/utils/typeGeneration.ts +30 -30
  81. package/src/utils/typeGenerationPostProcess.ts +245 -245
  82. package/src/utils/typeGenerationPreflight.ts +118 -118
  83. package/src/utils/zodCodegen.ts +548 -548
  84. package/toolproof.json +19 -0
  85. package/dist/src/genesis/resources/implementations/foo.d.ts +0 -1
  86. package/dist/src/genesis/resources/implementations/foo.js +0 -184
  87. package/dist/src/utils/resources.d.ts +0 -5
  88. package/dist/src/utils/resources.js +0 -17
  89. package/generated-src/resourceTypes/resourceTypes.ts +0 -2
  90. package/generated-src/resources/resourceTypes.ts +0 -2
  91. package/src/genesis/resources/implementations/foo.ts +0 -183
  92. package/src/utils/resources.ts +0 -26
  93. /package/generated-src/{derived → lookups}/mappings.ts +0 -0
@@ -0,0 +1,705 @@
1
+ [
2
+ {
3
+ "handle": "TOOL-Identity",
4
+ "name": "Identity",
5
+ "symbol": "id",
6
+ "description": "dummy-description",
7
+ "isTemplate": true,
8
+ "instantiationRoleSpec": {
9
+ "inputRoleValueByName": {
10
+ "In": {
11
+ "typeRef": {
12
+ "roleSchema": {
13
+ "$ref": "#OperandType"
14
+ }
15
+ },
16
+ "containerKind": "scalar"
17
+ }
18
+ },
19
+ "outputRoleValueByName": {
20
+ "Out": {
21
+ "typeRef": {
22
+ "roleSchema": {
23
+ "$ref": "#OperandType"
24
+ }
25
+ },
26
+ "containerKind": "scalar"
27
+ }
28
+ }
29
+ },
30
+ "roleSpec": {
31
+ "inputRoleValueByName": {
32
+ "GenericAssignmentByRoleName": {
33
+ "typeRef": {
34
+ "resourceTypeHandle": "TYPE-ResourceType"
35
+ },
36
+ "containerKind": "map",
37
+ "mapKeys": [
38
+ "OperandType"
39
+ ]
40
+ },
41
+ "InstantiationToolHandleBySpecializationKey": {
42
+ "typeRef": {
43
+ "resourceTypeHandle": "TYPE-Tool"
44
+ },
45
+ "containerKind": "map"
46
+ }
47
+ },
48
+ "outputRoleValueByName": {
49
+ "InstantiationTool": {
50
+ "typeRef": {
51
+ "resourceTypeHandle": "TYPE-Tool"
52
+ },
53
+ "containerKind": "scalar"
54
+ }
55
+ }
56
+ }
57
+ },
58
+ {
59
+ "handle": "TOOL-Add",
60
+ "name": "Add",
61
+ "symbol": "+",
62
+ "description": "dummy-description",
63
+ "isTemplate": true,
64
+ "instantiationRoleSpec": {
65
+ "inputRoleValueByName": {
66
+ "AddendOne": {
67
+ "typeRef": {
68
+ "roleSchema": {
69
+ "$ref": "#OperandType"
70
+ }
71
+ },
72
+ "containerKind": "scalar"
73
+ },
74
+ "AddendTwo": {
75
+ "typeRef": {
76
+ "roleSchema": {
77
+ "$ref": "#OperandType"
78
+ }
79
+ },
80
+ "containerKind": "scalar"
81
+ }
82
+ },
83
+ "outputRoleValueByName": {
84
+ "Sum": {
85
+ "typeRef": {
86
+ "roleSchema": {
87
+ "$ref": "#OperandType"
88
+ }
89
+ },
90
+ "containerKind": "scalar"
91
+ }
92
+ }
93
+ },
94
+ "roleSpec": {
95
+ "inputRoleValueByName": {
96
+ "GenericAssignmentByRoleName": {
97
+ "typeRef": {
98
+ "resourceTypeHandle": "TYPE-ResourceType"
99
+ },
100
+ "containerKind": "map",
101
+ "mapKeys": [
102
+ "OperandType"
103
+ ]
104
+ },
105
+ "InstantiationToolHandleBySpecializationKey": {
106
+ "typeRef": {
107
+ "resourceTypeHandle": "TYPE-Tool"
108
+ },
109
+ "containerKind": "map"
110
+ }
111
+ },
112
+ "outputRoleValueByName": {
113
+ "InstantiationTool": {
114
+ "typeRef": {
115
+ "resourceTypeHandle": "TYPE-Tool"
116
+ },
117
+ "containerKind": "scalar"
118
+ }
119
+ }
120
+ }
121
+ },
122
+ {
123
+ "handle": "TOOL-Subtract",
124
+ "name": "Subtract",
125
+ "symbol": "-",
126
+ "description": "dummy-description",
127
+ "isTemplate": true,
128
+ "instantiationRoleSpec": {
129
+ "inputRoleValueByName": {
130
+ "Minuend": {
131
+ "typeRef": {
132
+ "roleSchema": {
133
+ "$ref": "#OperandType"
134
+ }
135
+ },
136
+ "containerKind": "scalar"
137
+ },
138
+ "Subtrahend": {
139
+ "typeRef": {
140
+ "roleSchema": {
141
+ "$ref": "#OperandType"
142
+ }
143
+ },
144
+ "containerKind": "scalar"
145
+ }
146
+ },
147
+ "outputRoleValueByName": {
148
+ "Difference": {
149
+ "typeRef": {
150
+ "roleSchema": {
151
+ "$ref": "#OperandType"
152
+ }
153
+ },
154
+ "containerKind": "scalar"
155
+ }
156
+ }
157
+ },
158
+ "roleSpec": {
159
+ "inputRoleValueByName": {
160
+ "GenericAssignmentByRoleName": {
161
+ "typeRef": {
162
+ "resourceTypeHandle": "TYPE-ResourceType"
163
+ },
164
+ "containerKind": "map",
165
+ "mapKeys": [
166
+ "OperandType"
167
+ ]
168
+ },
169
+ "InstantiationToolHandleBySpecializationKey": {
170
+ "typeRef": {
171
+ "resourceTypeHandle": "TYPE-Tool"
172
+ },
173
+ "containerKind": "map"
174
+ }
175
+ },
176
+ "outputRoleValueByName": {
177
+ "InstantiationTool": {
178
+ "typeRef": {
179
+ "resourceTypeHandle": "TYPE-Tool"
180
+ },
181
+ "containerKind": "scalar"
182
+ }
183
+ }
184
+ }
185
+ },
186
+ {
187
+ "handle": "TOOL-Multiply",
188
+ "name": "Multiply",
189
+ "symbol": "X",
190
+ "description": "dummy-description",
191
+ "isTemplate": true,
192
+ "instantiationRoleSpec": {
193
+ "inputRoleValueByName": {
194
+ "Multiplicand": {
195
+ "typeRef": {
196
+ "roleSchema": {
197
+ "$ref": "#OperandType"
198
+ }
199
+ },
200
+ "containerKind": "scalar"
201
+ },
202
+ "Multiplier": {
203
+ "typeRef": {
204
+ "roleSchema": {
205
+ "$ref": "#OperandType"
206
+ }
207
+ },
208
+ "containerKind": "scalar"
209
+ }
210
+ },
211
+ "outputRoleValueByName": {
212
+ "Product": {
213
+ "typeRef": {
214
+ "roleSchema": {
215
+ "$ref": "#OperandType"
216
+ }
217
+ },
218
+ "containerKind": "scalar"
219
+ }
220
+ }
221
+ },
222
+ "roleSpec": {
223
+ "inputRoleValueByName": {
224
+ "GenericAssignmentByRoleName": {
225
+ "typeRef": {
226
+ "resourceTypeHandle": "TYPE-ResourceType"
227
+ },
228
+ "containerKind": "map",
229
+ "mapKeys": [
230
+ "OperandType"
231
+ ]
232
+ },
233
+ "InstantiationToolHandleBySpecializationKey": {
234
+ "typeRef": {
235
+ "resourceTypeHandle": "TYPE-Tool"
236
+ },
237
+ "containerKind": "map"
238
+ }
239
+ },
240
+ "outputRoleValueByName": {
241
+ "InstantiationTool": {
242
+ "typeRef": {
243
+ "resourceTypeHandle": "TYPE-Tool"
244
+ },
245
+ "containerKind": "scalar"
246
+ }
247
+ }
248
+ }
249
+ },
250
+ {
251
+ "handle": "TOOL-Divide",
252
+ "name": "Divide",
253
+ "symbol": "÷",
254
+ "description": "dummy-description",
255
+ "isTemplate": true,
256
+ "instantiationRoleSpec": {
257
+ "inputRoleValueByName": {
258
+ "Dividend": {
259
+ "typeRef": {
260
+ "roleSchema": {
261
+ "$ref": "#OperandType"
262
+ }
263
+ },
264
+ "containerKind": "scalar"
265
+ },
266
+ "Divisor": {
267
+ "typeRef": {
268
+ "roleSchema": {
269
+ "$ref": "#OperandType"
270
+ }
271
+ },
272
+ "containerKind": "scalar"
273
+ }
274
+ },
275
+ "outputRoleValueByName": {
276
+ "Quotient": {
277
+ "typeRef": {
278
+ "roleSchema": {
279
+ "$ref": "#OperandType"
280
+ }
281
+ },
282
+ "containerKind": "scalar"
283
+ },
284
+ "Remainder": {
285
+ "typeRef": {
286
+ "roleSchema": {
287
+ "$ref": "#OperandType"
288
+ }
289
+ },
290
+ "containerKind": "scalar"
291
+ }
292
+ }
293
+ },
294
+ "roleSpec": {
295
+ "inputRoleValueByName": {
296
+ "GenericAssignmentByRoleName": {
297
+ "typeRef": {
298
+ "resourceTypeHandle": "TYPE-ResourceType"
299
+ },
300
+ "containerKind": "map",
301
+ "mapKeys": [
302
+ "OperandType"
303
+ ]
304
+ },
305
+ "InstantiationToolHandleBySpecializationKey": {
306
+ "typeRef": {
307
+ "resourceTypeHandle": "TYPE-Tool"
308
+ },
309
+ "containerKind": "map"
310
+ }
311
+ },
312
+ "outputRoleValueByName": {
313
+ "InstantiationTool": {
314
+ "typeRef": {
315
+ "resourceTypeHandle": "TYPE-Tool"
316
+ },
317
+ "containerKind": "scalar"
318
+ }
319
+ }
320
+ }
321
+ },
322
+ {
323
+ "handle": "TOOL-Double",
324
+ "name": "Double",
325
+ "symbol": "X2",
326
+ "description": "dummy-description",
327
+ "isTemplate": true,
328
+ "instantiationRoleSpec": {
329
+ "inputRoleValueByName": {
330
+ "N": {
331
+ "typeRef": {
332
+ "roleSchema": {
333
+ "$ref": "#OperandType"
334
+ }
335
+ },
336
+ "containerKind": "scalar"
337
+ }
338
+ },
339
+ "outputRoleValueByName": {
340
+ "Doubled": {
341
+ "typeRef": {
342
+ "roleSchema": {
343
+ "$ref": "#OperandType"
344
+ }
345
+ },
346
+ "containerKind": "scalar"
347
+ }
348
+ }
349
+ },
350
+ "roleSpec": {
351
+ "inputRoleValueByName": {
352
+ "GenericAssignmentByRoleName": {
353
+ "typeRef": {
354
+ "resourceTypeHandle": "TYPE-ResourceType"
355
+ },
356
+ "containerKind": "map",
357
+ "mapKeys": [
358
+ "OperandType"
359
+ ]
360
+ },
361
+ "InstantiationToolHandleBySpecializationKey": {
362
+ "typeRef": {
363
+ "resourceTypeHandle": "TYPE-Tool"
364
+ },
365
+ "containerKind": "map"
366
+ }
367
+ },
368
+ "outputRoleValueByName": {
369
+ "InstantiationTool": {
370
+ "typeRef": {
371
+ "resourceTypeHandle": "TYPE-Tool"
372
+ },
373
+ "containerKind": "scalar"
374
+ }
375
+ }
376
+ }
377
+ },
378
+ {
379
+ "handle": "TOOL-LessThan",
380
+ "name": "LessThan",
381
+ "symbol": "<",
382
+ "description": "dummy-description",
383
+ "isTemplate": true,
384
+ "instantiationRoleSpec": {
385
+ "inputRoleValueByName": {
386
+ "LessThanSource": {
387
+ "typeRef": {
388
+ "roleSchema": {
389
+ "$ref": "#OperandType"
390
+ }
391
+ },
392
+ "containerKind": "scalar"
393
+ },
394
+ "LessThanTarget": {
395
+ "typeRef": {
396
+ "roleSchema": {
397
+ "$ref": "#OperandType"
398
+ }
399
+ },
400
+ "containerKind": "scalar"
401
+ }
402
+ },
403
+ "outputRoleValueByName": {
404
+ "LessThanDecision": {
405
+ "typeRef": {
406
+ "resourceTypeHandle": "TYPE-Boolean"
407
+ },
408
+ "containerKind": "scalar"
409
+ }
410
+ }
411
+ },
412
+ "roleSpec": {
413
+ "inputRoleValueByName": {
414
+ "GenericAssignmentByRoleName": {
415
+ "typeRef": {
416
+ "resourceTypeHandle": "TYPE-ResourceType"
417
+ },
418
+ "containerKind": "map",
419
+ "mapKeys": [
420
+ "OperandType"
421
+ ]
422
+ },
423
+ "InstantiationToolHandleBySpecializationKey": {
424
+ "typeRef": {
425
+ "resourceTypeHandle": "TYPE-Tool"
426
+ },
427
+ "containerKind": "map"
428
+ }
429
+ },
430
+ "outputRoleValueByName": {
431
+ "InstantiationTool": {
432
+ "typeRef": {
433
+ "resourceTypeHandle": "TYPE-Tool"
434
+ },
435
+ "containerKind": "scalar"
436
+ }
437
+ }
438
+ }
439
+ },
440
+ {
441
+ "handle": "TOOL-BooleanIdentity",
442
+ "name": "BooleanIdentity",
443
+ "symbol": "id",
444
+ "description": "dummy-description",
445
+ "isTemplate": false,
446
+ "templateToolHandle": "TOOL-Identity",
447
+ "roleSpec": {
448
+ "inputRoleValueByName": {
449
+ "In": {
450
+ "typeRef": {
451
+ "resourceTypeHandle": "TYPE-Boolean"
452
+ },
453
+ "containerKind": "scalar"
454
+ }
455
+ },
456
+ "outputRoleValueByName": {
457
+ "Out": {
458
+ "typeRef": {
459
+ "resourceTypeHandle": "TYPE-Boolean"
460
+ },
461
+ "containerKind": "scalar"
462
+ }
463
+ }
464
+ }
465
+ },
466
+ {
467
+ "handle": "TOOL-NaturalIdentity",
468
+ "name": "NaturalIdentity",
469
+ "symbol": "id",
470
+ "description": "dummy-description",
471
+ "isTemplate": false,
472
+ "templateToolHandle": "TOOL-Identity",
473
+ "roleSpec": {
474
+ "inputRoleValueByName": {
475
+ "In": {
476
+ "typeRef": {
477
+ "resourceTypeHandle": "TYPE-Natural"
478
+ },
479
+ "containerKind": "scalar"
480
+ }
481
+ },
482
+ "outputRoleValueByName": {
483
+ "Out": {
484
+ "typeRef": {
485
+ "resourceTypeHandle": "TYPE-Natural"
486
+ },
487
+ "containerKind": "scalar"
488
+ }
489
+ }
490
+ }
491
+ },
492
+ {
493
+ "handle": "TOOL-NaturalLessThan",
494
+ "name": "NaturalLessThan",
495
+ "symbol": "<",
496
+ "description": "dummy-description",
497
+ "isTemplate": false,
498
+ "templateToolHandle": "TOOL-LessThan",
499
+ "roleSpec": {
500
+ "inputRoleValueByName": {
501
+ "LessThanSource": {
502
+ "typeRef": {
503
+ "resourceTypeHandle": "TYPE-Natural"
504
+ },
505
+ "containerKind": "scalar"
506
+ },
507
+ "LessThanTarget": {
508
+ "typeRef": {
509
+ "resourceTypeHandle": "TYPE-Natural"
510
+ },
511
+ "containerKind": "scalar"
512
+ }
513
+ },
514
+ "outputRoleValueByName": {
515
+ "LessThanDecision": {
516
+ "typeRef": {
517
+ "resourceTypeHandle": "TYPE-Boolean"
518
+ },
519
+ "containerKind": "scalar"
520
+ }
521
+ }
522
+ }
523
+ },
524
+ {
525
+ "handle": "TOOL-NaturalAdd",
526
+ "name": "NaturalAdd",
527
+ "symbol": "+",
528
+ "description": "dummy-description",
529
+ "isTemplate": false,
530
+ "templateToolHandle": "TOOL-Add",
531
+ "roleSpec": {
532
+ "inputRoleValueByName": {
533
+ "AddendOne": {
534
+ "typeRef": {
535
+ "resourceTypeHandle": "TYPE-Natural"
536
+ },
537
+ "containerKind": "scalar"
538
+ },
539
+ "AddendTwo": {
540
+ "typeRef": {
541
+ "resourceTypeHandle": "TYPE-Natural"
542
+ },
543
+ "containerKind": "scalar"
544
+ }
545
+ },
546
+ "outputRoleValueByName": {
547
+ "Sum": {
548
+ "typeRef": {
549
+ "resourceTypeHandle": "TYPE-Natural"
550
+ },
551
+ "containerKind": "scalar"
552
+ }
553
+ }
554
+ }
555
+ },
556
+ {
557
+ "handle": "TOOL-NaturalSubtract",
558
+ "name": "NaturalSubtract",
559
+ "symbol": "-",
560
+ "description": "dummy-description",
561
+ "isTemplate": false,
562
+ "templateToolHandle": "TOOL-Subtract",
563
+ "roleSpec": {
564
+ "inputRoleValueByName": {
565
+ "Minuend": {
566
+ "typeRef": {
567
+ "resourceTypeHandle": "TYPE-Natural"
568
+ },
569
+ "containerKind": "scalar"
570
+ },
571
+ "Subtrahend": {
572
+ "typeRef": {
573
+ "resourceTypeHandle": "TYPE-Natural"
574
+ },
575
+ "containerKind": "scalar"
576
+ }
577
+ },
578
+ "outputRoleValueByName": {
579
+ "Difference": {
580
+ "typeRef": {
581
+ "resourceTypeHandle": "TYPE-Natural"
582
+ },
583
+ "containerKind": "scalar"
584
+ }
585
+ },
586
+ "refinementSchema": {
587
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
588
+ "type": "object",
589
+ "required": [
590
+ "Minuend",
591
+ "Subtrahend"
592
+ ],
593
+ "properties": {
594
+ "Subtrahend": {
595
+ "exclusiveMaximum": {
596
+ "$data": "1/Minuend"
597
+ }
598
+ }
599
+ }
600
+ }
601
+ }
602
+ },
603
+ {
604
+ "handle": "TOOL-NaturalMultiply",
605
+ "name": "NaturalMultiply",
606
+ "symbol": "X",
607
+ "description": "dummy-description",
608
+ "isTemplate": false,
609
+ "templateToolHandle": "TOOL-Multiply",
610
+ "roleSpec": {
611
+ "inputRoleValueByName": {
612
+ "Multiplicand": {
613
+ "typeRef": {
614
+ "resourceTypeHandle": "TYPE-Natural"
615
+ },
616
+ "containerKind": "scalar"
617
+ },
618
+ "Multiplier": {
619
+ "typeRef": {
620
+ "resourceTypeHandle": "TYPE-Natural"
621
+ },
622
+ "containerKind": "scalar"
623
+ }
624
+ },
625
+ "outputRoleValueByName": {
626
+ "Product": {
627
+ "typeRef": {
628
+ "resourceTypeHandle": "TYPE-Natural"
629
+ },
630
+ "containerKind": "scalar"
631
+ }
632
+ }
633
+ }
634
+ },
635
+ {
636
+ "handle": "TOOL-NaturalDivide",
637
+ "name": "NaturalDivide",
638
+ "symbol": "÷",
639
+ "description": "dummy-description",
640
+ "isTemplate": false,
641
+ "templateToolHandle": "TOOL-Divide",
642
+ "roleSpec": {
643
+ "inputRoleValueByName": {
644
+ "Dividend": {
645
+ "typeRef": {
646
+ "resourceTypeHandle": "TYPE-Natural"
647
+ },
648
+ "containerKind": "scalar"
649
+ },
650
+ "Divisor": {
651
+ "typeRef": {
652
+ "resourceTypeHandle": "TYPE-Natural"
653
+ },
654
+ "containerKind": "scalar",
655
+ "refinementSchema": {
656
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
657
+ "not": {
658
+ "const": 0
659
+ }
660
+ }
661
+ }
662
+ },
663
+ "outputRoleValueByName": {
664
+ "Quotient": {
665
+ "typeRef": {
666
+ "resourceTypeHandle": "TYPE-Natural"
667
+ },
668
+ "containerKind": "scalar"
669
+ },
670
+ "Remainder": {
671
+ "typeRef": {
672
+ "resourceTypeHandle": "TYPE-Natural"
673
+ },
674
+ "containerKind": "scalar"
675
+ }
676
+ }
677
+ }
678
+ },
679
+ {
680
+ "handle": "TOOL-NaturalDouble",
681
+ "name": "NaturalDouble",
682
+ "symbol": "X2",
683
+ "description": "dummy-description",
684
+ "isTemplate": false,
685
+ "templateToolHandle": "TOOL-Double",
686
+ "roleSpec": {
687
+ "inputRoleValueByName": {
688
+ "N": {
689
+ "typeRef": {
690
+ "resourceTypeHandle": "TYPE-Natural"
691
+ },
692
+ "containerKind": "scalar"
693
+ }
694
+ },
695
+ "outputRoleValueByName": {
696
+ "Doubled": {
697
+ "typeRef": {
698
+ "resourceTypeHandle": "TYPE-Natural"
699
+ },
700
+ "containerKind": "scalar"
701
+ }
702
+ }
703
+ }
704
+ }
705
+ ]