@almadar/std 16.145.0 → 16.147.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +269 -0
  2. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +1 -1
  3. package/behaviors/lolo/ml/atoms/std-data-collector.lolo +56 -0
  4. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +90 -0
  5. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +25 -13
  6. package/behaviors/lolo/ml/atoms/std-tokenizer.lolo +108 -0
  7. package/behaviors/lolo/ml/atoms/std-weight-validator.lolo +106 -0
  8. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +14 -0
  9. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +1 -1
  10. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +3 -3
  11. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +4 -4
  12. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +2 -2
  13. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +1 -1
  14. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +1 -1
  15. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
  16. package/behaviors/lolo/ui/core/atoms/std-import.lolo +132 -0
  17. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +5 -5
  18. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +1 -1
  19. package/behaviors/lolo/ui/core/atoms/std-signature-capture.lolo +1 -1
  20. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
  21. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -3
  22. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +0 -2
  23. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +0 -2
  24. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +96 -0
  25. package/behaviors/lolo/ui/core/molecules/ui-import-progress.lolo +49 -0
  26. package/behaviors/lolo/ui/core/molecules/ui-import-source-picker.lolo +67 -0
  27. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +0 -2
  28. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +0 -2
  29. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +0 -2
  30. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +0 -2
  31. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +0 -2
  32. package/behaviors/lolo/ui/game/atoms/std-dungeon-combat.lolo +2 -2
  33. package/behaviors/lolo/ui/game/molecules/std-worldmap-board-2d.lolo +1 -1
  34. package/behaviors/lolo/ui/game/organisms/ui-boardgame-board.lolo +2 -2
  35. package/behaviors/lolo/ui/game/organisms/ui-builder-board.lolo +2 -2
  36. package/behaviors/lolo/ui/game/organisms/ui-debugger-board.lolo +3 -3
  37. package/behaviors/lolo/ui/game/organisms/ui-physics-sandbox-board.lolo +3 -3
  38. package/behaviors/lolo/ui/game/organisms/ui-roguelike-board.lolo +1 -1
  39. package/behaviors/lolo/ui/game/organisms/ui-sequencer-board.lolo +1 -1
  40. package/behaviors/lolo/ui/learning/atoms/std-algo-heapsort.lolo +2 -2
  41. package/behaviors/lolo/ui/learning/atoms/std-algo-mst.lolo +3 -3
  42. package/behaviors/registry/factory-signatures.json +11531 -2142
  43. package/behaviors/registry/infra/atoms/std-migration-job.orb +1310 -0
  44. package/behaviors/registry/infra/atoms/std-mod-queue.orb +5 -5
  45. package/behaviors/registry/ml/atoms/std-data-collector.orb +324 -0
  46. package/behaviors/registry/ml/atoms/std-graph-builder.orb +480 -0
  47. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +127 -72
  48. package/behaviors/registry/ml/atoms/std-tokenizer.orb +570 -0
  49. package/behaviors/registry/ml/atoms/std-weight-validator.orb +624 -0
  50. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +33 -1
  51. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -2
  52. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +17 -21
  53. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +7 -13
  54. package/behaviors/registry/ui/core/atoms/std-event-log.orb +2 -4
  55. package/behaviors/registry/ui/core/atoms/std-file-store.orb +3 -4
  56. package/behaviors/registry/ui/core/atoms/std-gallery.orb +11 -20
  57. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -4
  58. package/behaviors/registry/ui/core/atoms/std-import.orb +701 -0
  59. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +5 -10
  60. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +2 -2
  61. package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -2
  62. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +12 -25
  63. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +13 -26
  64. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +354 -0
  65. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +195 -0
  66. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +279 -0
  67. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +12 -25
  68. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +0 -13
  69. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +8 -21
  70. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +0 -13
  71. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +0 -13
  72. package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +4 -4
  73. package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +6 -9
  74. package/behaviors/registry/ui/game/organisms/ui-boardgame-board.orb +4 -4
  75. package/behaviors/registry/ui/game/organisms/ui-builder-board.orb +4 -4
  76. package/behaviors/registry/ui/game/organisms/ui-debugger-board.orb +12 -12
  77. package/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +19 -19
  78. package/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +1 -1
  79. package/behaviors/registry/ui/game/organisms/ui-sequencer-board.orb +2 -2
  80. package/behaviors/registry/ui/learning/atoms/std-algo-heapsort.orb +8 -8
  81. package/dist/behaviors/behaviors-embeddings.json +568 -496
  82. package/dist/behaviors/behaviors-registry.json +7518 -3936
  83. package/dist/behaviors/exports-reader.js +3093 -2581
  84. package/dist/behaviors/functions/index.d.ts +922 -14
  85. package/dist/behaviors/functions/index.js +3056 -2582
  86. package/dist/behaviors/index.d.ts +1 -1
  87. package/dist/behaviors/index.js +3094 -2582
  88. package/dist/behaviors/knob-embeddings.json +1 -1
  89. package/dist/behaviors/query.js +3093 -2581
  90. package/dist/behaviors/registry/factory-signatures.json +11531 -2142
  91. package/dist/behaviors/registry/infra/atoms/std-migration-job.orb +1310 -0
  92. package/dist/behaviors/registry/infra/atoms/std-mod-queue.orb +5 -5
  93. package/dist/behaviors/registry/ml/atoms/std-data-collector.orb +324 -0
  94. package/dist/behaviors/registry/ml/atoms/std-graph-builder.orb +480 -0
  95. package/dist/behaviors/registry/ml/atoms/std-ml-similarity.orb +127 -72
  96. package/dist/behaviors/registry/ml/atoms/std-tokenizer.orb +570 -0
  97. package/dist/behaviors/registry/ml/atoms/std-weight-validator.orb +624 -0
  98. package/dist/behaviors/registry/ui/core/atoms/std-app-layout.orb +33 -1
  99. package/dist/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -2
  100. package/dist/behaviors/registry/ui/core/atoms/std-esign-flow.orb +17 -21
  101. package/dist/behaviors/registry/ui/core/atoms/std-esign-request.orb +7 -13
  102. package/dist/behaviors/registry/ui/core/atoms/std-event-log.orb +2 -4
  103. package/dist/behaviors/registry/ui/core/atoms/std-file-store.orb +3 -4
  104. package/dist/behaviors/registry/ui/core/atoms/std-gallery.orb +11 -20
  105. package/dist/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -4
  106. package/dist/behaviors/registry/ui/core/atoms/std-import.orb +701 -0
  107. package/dist/behaviors/registry/ui/core/atoms/std-recurrence.orb +5 -10
  108. package/dist/behaviors/registry/ui/core/atoms/std-saved-search.orb +2 -2
  109. package/dist/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -2
  110. package/dist/behaviors/registry/ui/core/molecules/ui-data-grid.orb +12 -25
  111. package/dist/behaviors/registry/ui/core/molecules/ui-data-list.orb +13 -26
  112. package/dist/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +354 -0
  113. package/dist/behaviors/registry/ui/core/molecules/ui-import-progress.orb +195 -0
  114. package/dist/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +279 -0
  115. package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +12 -25
  116. package/dist/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +0 -13
  117. package/dist/behaviors/registry/ui/core/organisms/ui-entity-list.orb +8 -21
  118. package/dist/behaviors/registry/ui/core/organisms/ui-entity-table.orb +0 -13
  119. package/dist/behaviors/registry/ui/core/organisms/ui-timeline.orb +0 -13
  120. package/dist/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +4 -4
  121. package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +6 -9
  122. package/dist/behaviors/registry/ui/game/organisms/ui-boardgame-board.orb +4 -4
  123. package/dist/behaviors/registry/ui/game/organisms/ui-builder-board.orb +4 -4
  124. package/dist/behaviors/registry/ui/game/organisms/ui-debugger-board.orb +12 -12
  125. package/dist/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +19 -19
  126. package/dist/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +1 -1
  127. package/dist/behaviors/registry/ui/game/organisms/ui-sequencer-board.orb +2 -2
  128. package/dist/behaviors/registry/ui/learning/atoms/std-algo-heapsort.orb +8 -8
  129. package/dist/behaviors-embeddings.json +568 -496
  130. package/dist/behaviors-registry.json +7518 -3936
  131. package/dist/index.d.ts +1 -1
  132. package/dist/index.js +3094 -2582
  133. package/dist/knob-embeddings.json +1 -1
  134. package/dist/registry/factory-signatures.json +11531 -2142
  135. package/package.json +2 -2
@@ -0,0 +1,624 @@
1
+ {
2
+ "description": "std-weight-validator — a constraint-checking atom for model weights, applying the same discipline as the zero-warning validator to weights: constrained and checked, not trusted (Almadar_Intelligence_Ladder.md §7.5). Checks a candidate weight tensor against three pure predicate constraints — magnitude bounds (every element's absolute value must clear maxMagnitude), forbidden regions (excluded [min,max] bands no weight may land in even within the magnitude bound), and a regression threshold against a baseline tensor (per-element drift must not exceed regressionThreshold; 0 disables the check) — and reports every violated check with its detail. Emits WEIGHTS_ACCEPTED when all three checks clear, or WEIGHTS_REJECTED carrying the full violations list otherwise. Pure circuit logic: predicates and comparisons only, no ML compute, no model call.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01KYE96EQJVQSXXAST8EAFQGKY": {
6
+ "bakedName": "WeightValidation",
7
+ "curName": "WeightValidation",
8
+ "id": "ent_01KYE96EQJVQSXXAST8EAFQGKY",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01KYE96EQJ77T61A54324JTA7Y": {
14
+ "bakedName": "VALIDATE_WEIGHTS",
15
+ "curName": "VALIDATE_WEIGHTS",
16
+ "id": "evt_01KYE96EQJ77T61A54324JTA7Y",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01KYE96EQJ329VGV8APPE3R2B1",
20
+ "renames": []
21
+ },
22
+ "evt_01KYE96EQJA3HEMSHMVK0H37E4": {
23
+ "bakedName": "WEIGHTS_ACCEPTED",
24
+ "curName": "WEIGHTS_ACCEPTED",
25
+ "id": "evt_01KYE96EQJA3HEMSHMVK0H37E4",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01KYE96EQJ329VGV8APPE3R2B1",
29
+ "renames": []
30
+ },
31
+ "evt_01KYE96EQJH84979QCX1HZBEXA": {
32
+ "bakedName": "WEIGHTS_REJECTED",
33
+ "curName": "WEIGHTS_REJECTED",
34
+ "id": "evt_01KYE96EQJH84979QCX1HZBEXA",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01KYE96EQJ329VGV8APPE3R2B1",
38
+ "renames": []
39
+ },
40
+ "evt_01KYE96EQJMZ5G1V4MJ0MXPYAN": {
41
+ "bakedName": "RESET",
42
+ "curName": "RESET",
43
+ "id": "evt_01KYE96EQJMZ5G1V4MJ0MXPYAN",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01KYE96EQJ329VGV8APPE3R2B1",
47
+ "renames": []
48
+ },
49
+ "evt_01KYE96EQJZMW4XV88YSBCZTG7": {
50
+ "bakedName": "INIT",
51
+ "curName": "INIT",
52
+ "id": "evt_01KYE96EQJZMW4XV88YSBCZTG7",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01KYE96EQJ329VGV8APPE3R2B1",
56
+ "renames": []
57
+ },
58
+ "orb_01KYE96EQJCJ1Z46P1JD2X1304": {
59
+ "bakedName": "MlWeightValidatorOrbital",
60
+ "curName": "MlWeightValidatorOrbital",
61
+ "id": "orb_01KYE96EQJCJ1Z46P1JD2X1304",
62
+ "kind": "orbital",
63
+ "owner": "workspace",
64
+ "renames": []
65
+ },
66
+ "pag_01KYE96EQJC2SM5TND1FJWXSXV": {
67
+ "bakedName": "MlWeightValidatorPage",
68
+ "curName": "MlWeightValidatorPage",
69
+ "id": "pag_01KYE96EQJC2SM5TND1FJWXSXV",
70
+ "kind": "page",
71
+ "owner": "workspace",
72
+ "renames": []
73
+ },
74
+ "trt_01KYE96EQJ329VGV8APPE3R2B1": {
75
+ "bakedName": "WeightValidatorRun",
76
+ "curName": "WeightValidatorRun",
77
+ "id": "trt_01KYE96EQJ329VGV8APPE3R2B1",
78
+ "kind": "trait",
79
+ "owner": "workspace",
80
+ "renames": []
81
+ }
82
+ },
83
+ "schemaVersion": 1
84
+ },
85
+ "name": "std-weight-validator",
86
+ "orbitals": [
87
+ {
88
+ "entity": {
89
+ "fields": [
90
+ {
91
+ "default": [],
92
+ "items": {
93
+ "type": "number"
94
+ },
95
+ "name": "weights",
96
+ "type": "array"
97
+ },
98
+ {
99
+ "default": [],
100
+ "items": {
101
+ "type": "number"
102
+ },
103
+ "name": "baseline",
104
+ "type": "array"
105
+ },
106
+ {
107
+ "default": [],
108
+ "items": {
109
+ "type": "object"
110
+ },
111
+ "name": "violations",
112
+ "type": "array"
113
+ },
114
+ {
115
+ "default": false,
116
+ "name": "valid",
117
+ "type": "boolean"
118
+ },
119
+ {
120
+ "default": "idle",
121
+ "name": "status",
122
+ "type": "string",
123
+ "values": [
124
+ "idle",
125
+ "checked"
126
+ ]
127
+ }
128
+ ],
129
+ "id": "ent_01KYE96EQJVQSXXAST8EAFQGKY",
130
+ "name": "WeightValidation",
131
+ "persistence": "runtime"
132
+ },
133
+ "id": "orb_01KYE96EQJCJ1Z46P1JD2X1304",
134
+ "name": "MlWeightValidatorOrbital",
135
+ "pages": [
136
+ {
137
+ "id": "pag_01KYE96EQJC2SM5TND1FJWXSXV",
138
+ "name": "MlWeightValidatorPage",
139
+ "path": "/ml-weight-validator",
140
+ "traits": [
141
+ {
142
+ "ref": "WeightValidatorRun",
143
+ "refId": "trt_01KYE96EQJ329VGV8APPE3R2B1"
144
+ }
145
+ ]
146
+ }
147
+ ],
148
+ "traits": [
149
+ {
150
+ "category": "lifecycle",
151
+ "config": {
152
+ "forbiddenRegions": {
153
+ "default": [],
154
+ "description": "Value ranges no weight may fall inside, even within the magnitude bound",
155
+ "items": {
156
+ "properties": {
157
+ "max": {
158
+ "name": "max",
159
+ "required": true,
160
+ "type": "number"
161
+ },
162
+ "min": {
163
+ "name": "min",
164
+ "required": true,
165
+ "type": "number"
166
+ }
167
+ },
168
+ "type": "object"
169
+ },
170
+ "label": "Forbidden regions",
171
+ "tier": "domain",
172
+ "type": "[Range]"
173
+ },
174
+ "maxMagnitude": {
175
+ "default": 10.0,
176
+ "description": "Every weight's absolute value must not exceed this bound",
177
+ "label": "Max weight magnitude",
178
+ "tier": "policy",
179
+ "type": "float"
180
+ },
181
+ "regressionThreshold": {
182
+ "default": 0.0,
183
+ "description": "Max allowed per-element absolute drift between candidate and baseline weights; 0 disables the regression check",
184
+ "label": "Regression threshold",
185
+ "tier": "policy",
186
+ "type": "float"
187
+ }
188
+ },
189
+ "emits": [
190
+ {
191
+ "description": "All constraint checks passed — magnitude bounds, forbidden regions, and regression are all clear",
192
+ "event": "WEIGHTS_ACCEPTED",
193
+ "eventId": "evt_01KYE96EQJA3HEMSHMVK0H37E4",
194
+ "payloadSchema": [
195
+ {
196
+ "name": "weights",
197
+ "required": true,
198
+ "type": "[float]"
199
+ }
200
+ ],
201
+ "scope": "external",
202
+ "tier": "primary"
203
+ },
204
+ {
205
+ "description": "At least one constraint check failed; violations lists every failing check with its detail (magnitude, forbidden-region, or regression). request echoes the originating request untouched so the next rung can project its own inputs out of it",
206
+ "event": "WEIGHTS_REJECTED",
207
+ "eventId": "evt_01KYE96EQJH84979QCX1HZBEXA",
208
+ "payloadSchema": [
209
+ {
210
+ "name": "violations",
211
+ "required": true,
212
+ "type": "[object]"
213
+ },
214
+ {
215
+ "name": "request",
216
+ "type": "object"
217
+ }
218
+ ],
219
+ "scope": "external",
220
+ "tier": "primary"
221
+ }
222
+ ],
223
+ "entityRefIds": {
224
+ "WeightValidation": "ent_01KYE96EQJVQSXXAST8EAFQGKY"
225
+ },
226
+ "id": "trt_01KYE96EQJ329VGV8APPE3R2B1",
227
+ "linkedEntity": "WeightValidation",
228
+ "linkedEntityId": "ent_01KYE96EQJVQSXXAST8EAFQGKY",
229
+ "name": "WeightValidatorRun",
230
+ "scope": "instance",
231
+ "stateMachine": {
232
+ "events": [
233
+ {
234
+ "id": "evt_01KYE96EQJZMW4XV88YSBCZTG7",
235
+ "key": "INIT",
236
+ "name": "Initialize"
237
+ },
238
+ {
239
+ "id": "evt_01KYE96EQJ77T61A54324JTA7Y",
240
+ "key": "VALIDATE_WEIGHTS",
241
+ "name": "Validate Weights",
242
+ "payloadSchema": [
243
+ {
244
+ "name": "weights",
245
+ "required": true,
246
+ "type": "[float]"
247
+ },
248
+ {
249
+ "name": "baseline",
250
+ "type": "[float]"
251
+ },
252
+ {
253
+ "name": "request",
254
+ "type": "object"
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ "id": "evt_01KYE96EQJMZ5G1V4MJ0MXPYAN",
260
+ "key": "RESET",
261
+ "name": "Reset"
262
+ },
263
+ {
264
+ "description": "All constraint checks passed — magnitude bounds, forbidden regions, and regression are all clear",
265
+ "id": "evt_01KYE96EQJA3HEMSHMVK0H37E4",
266
+ "key": "WEIGHTS_ACCEPTED",
267
+ "name": "Weights Accepted",
268
+ "payloadSchema": [
269
+ {
270
+ "name": "weights",
271
+ "required": true,
272
+ "type": "[float]"
273
+ }
274
+ ],
275
+ "tier": "primary"
276
+ },
277
+ {
278
+ "description": "At least one constraint check failed; violations lists every failing check with its detail (magnitude, forbidden-region, or regression). request echoes the originating request untouched so the next rung can project its own inputs out of it",
279
+ "id": "evt_01KYE96EQJH84979QCX1HZBEXA",
280
+ "key": "WEIGHTS_REJECTED",
281
+ "name": "Weights Rejected",
282
+ "payloadSchema": [
283
+ {
284
+ "name": "violations",
285
+ "required": true,
286
+ "type": "[object]"
287
+ },
288
+ {
289
+ "name": "request",
290
+ "type": "object"
291
+ }
292
+ ],
293
+ "tier": "primary"
294
+ }
295
+ ],
296
+ "states": [
297
+ {
298
+ "isInitial": true,
299
+ "name": "idle"
300
+ },
301
+ {
302
+ "name": "checked"
303
+ }
304
+ ],
305
+ "transitions": [
306
+ {
307
+ "effects": [
308
+ [
309
+ "set",
310
+ "@entity.weights",
311
+ []
312
+ ],
313
+ [
314
+ "set",
315
+ "@entity.baseline",
316
+ []
317
+ ],
318
+ [
319
+ "set",
320
+ "@entity.violations",
321
+ []
322
+ ],
323
+ [
324
+ "set",
325
+ "@entity.valid",
326
+ false
327
+ ],
328
+ [
329
+ "set",
330
+ "@entity.status",
331
+ "idle"
332
+ ]
333
+ ],
334
+ "event": "INIT",
335
+ "eventId": "evt_01KYE96EQJZMW4XV88YSBCZTG7",
336
+ "from": "idle",
337
+ "to": "idle"
338
+ },
339
+ {
340
+ "effects": [
341
+ [
342
+ "let",
343
+ [
344
+ [
345
+ "cand",
346
+ "@payload.weights"
347
+ ],
348
+ [
349
+ "base",
350
+ "@payload.baseline"
351
+ ],
352
+ [
353
+ "magnitudeHits",
354
+ [
355
+ "array/filter",
356
+ "@cand",
357
+ [
358
+ "fn",
359
+ "w",
360
+ [
361
+ ">",
362
+ [
363
+ "math/abs",
364
+ "@w"
365
+ ],
366
+ "@config.maxMagnitude"
367
+ ]
368
+ ]
369
+ ]
370
+ ],
371
+ [
372
+ "regionHits",
373
+ [
374
+ "array/filter",
375
+ "@cand",
376
+ [
377
+ "fn",
378
+ "w",
379
+ [
380
+ "array/some",
381
+ "@config.forbiddenRegions",
382
+ [
383
+ "fn",
384
+ "r",
385
+ [
386
+ "and",
387
+ [
388
+ ">=",
389
+ "@w",
390
+ "@r.min"
391
+ ],
392
+ [
393
+ "<=",
394
+ "@w",
395
+ "@r.max"
396
+ ]
397
+ ]
398
+ ]
399
+ ]
400
+ ]
401
+ ]
402
+ ],
403
+ [
404
+ "regressionHits",
405
+ [
406
+ "if",
407
+ [
408
+ ">",
409
+ "@config.regressionThreshold",
410
+ 0.0
411
+ ],
412
+ [
413
+ "array/filter",
414
+ [
415
+ "array/range",
416
+ 0.0,
417
+ [
418
+ "array/len",
419
+ "@cand"
420
+ ]
421
+ ],
422
+ [
423
+ "fn",
424
+ "i",
425
+ [
426
+ ">",
427
+ [
428
+ "math/abs",
429
+ [
430
+ "-",
431
+ [
432
+ "array/nth",
433
+ "@cand",
434
+ "@i"
435
+ ],
436
+ [
437
+ "array/nth",
438
+ "@base",
439
+ "@i"
440
+ ]
441
+ ]
442
+ ],
443
+ "@config.regressionThreshold"
444
+ ]
445
+ ]
446
+ ],
447
+ []
448
+ ]
449
+ ],
450
+ [
451
+ "violations",
452
+ [
453
+ "array/concat",
454
+ [
455
+ "array/map",
456
+ "@magnitudeHits",
457
+ [
458
+ "fn",
459
+ "w",
460
+ {
461
+ "check": "magnitude",
462
+ "value": "@w"
463
+ }
464
+ ]
465
+ ],
466
+ [
467
+ "array/map",
468
+ "@regionHits",
469
+ [
470
+ "fn",
471
+ "w",
472
+ {
473
+ "check": "forbidden-region",
474
+ "value": "@w"
475
+ }
476
+ ]
477
+ ],
478
+ [
479
+ "array/map",
480
+ "@regressionHits",
481
+ [
482
+ "fn",
483
+ "i",
484
+ {
485
+ "check": "regression",
486
+ "index": "@i"
487
+ }
488
+ ]
489
+ ]
490
+ ]
491
+ ]
492
+ ],
493
+ [
494
+ "do",
495
+ [
496
+ "set",
497
+ "@entity.weights",
498
+ "@cand"
499
+ ],
500
+ [
501
+ "set",
502
+ "@entity.baseline",
503
+ "@base"
504
+ ],
505
+ [
506
+ "set",
507
+ "@entity.violations",
508
+ "@violations"
509
+ ],
510
+ [
511
+ "if",
512
+ [
513
+ "==",
514
+ [
515
+ "array/len",
516
+ "@violations"
517
+ ],
518
+ 0.0
519
+ ],
520
+ [
521
+ "do",
522
+ [
523
+ "set",
524
+ "@entity.valid",
525
+ true
526
+ ],
527
+ [
528
+ "set",
529
+ "@entity.status",
530
+ "checked"
531
+ ],
532
+ [
533
+ "emit",
534
+ "WEIGHTS_ACCEPTED",
535
+ {
536
+ "weights": "@cand"
537
+ }
538
+ ]
539
+ ],
540
+ [
541
+ "do",
542
+ [
543
+ "set",
544
+ "@entity.valid",
545
+ false
546
+ ],
547
+ [
548
+ "set",
549
+ "@entity.status",
550
+ "checked"
551
+ ],
552
+ [
553
+ "emit",
554
+ "WEIGHTS_REJECTED",
555
+ {
556
+ "request": "@payload.request",
557
+ "violations": "@violations"
558
+ }
559
+ ]
560
+ ]
561
+ ]
562
+ ]
563
+ ]
564
+ ],
565
+ "event": "VALIDATE_WEIGHTS",
566
+ "eventId": "evt_01KYE96EQJ77T61A54324JTA7Y",
567
+ "from": "idle",
568
+ "to": "checked"
569
+ },
570
+ {
571
+ "effects": [
572
+ [
573
+ "set",
574
+ "@entity.status",
575
+ "checked"
576
+ ]
577
+ ],
578
+ "event": "INIT",
579
+ "eventId": "evt_01KYE96EQJZMW4XV88YSBCZTG7",
580
+ "from": "checked",
581
+ "to": "checked"
582
+ },
583
+ {
584
+ "effects": [
585
+ [
586
+ "set",
587
+ "@entity.weights",
588
+ []
589
+ ],
590
+ [
591
+ "set",
592
+ "@entity.baseline",
593
+ []
594
+ ],
595
+ [
596
+ "set",
597
+ "@entity.violations",
598
+ []
599
+ ],
600
+ [
601
+ "set",
602
+ "@entity.valid",
603
+ false
604
+ ],
605
+ [
606
+ "set",
607
+ "@entity.status",
608
+ "idle"
609
+ ]
610
+ ],
611
+ "event": "RESET",
612
+ "eventId": "evt_01KYE96EQJMZ5G1V4MJ0MXPYAN",
613
+ "from": "checked",
614
+ "to": "idle"
615
+ }
616
+ ]
617
+ }
618
+ }
619
+ ]
620
+ }
621
+ ],
622
+ "schemaVersion": 1,
623
+ "version": "1.0.0"
624
+ }
@@ -300,6 +300,28 @@
300
300
  "synonyms": "toolbar buttons, header actions, shortcut icons, quick actions",
301
301
  "tier": "presentation",
302
302
  "type": "[ItemAction]"
303
+ },
304
+ "viewerAvatar": {
305
+ "default": "",
306
+ "description": "Avatar image URL for the account menu.",
307
+ "label": "Signed-in avatar",
308
+ "tier": "presentation",
309
+ "type": "string"
310
+ },
311
+ "viewerEmail": {
312
+ "default": "",
313
+ "description": "Email shown under the name in the account menu — typically @user.email.",
314
+ "label": "Signed-in email",
315
+ "tier": "presentation",
316
+ "type": "string"
317
+ },
318
+ "viewerName": {
319
+ "default": "",
320
+ "description": "Display name of the signed-in viewer, shown in the app bar's account menu — typically @user.name. Blank renders no account menu, so people can see which account (and which persona) they are viewing the app as only when it is actually known.",
321
+ "label": "Who is signed in",
322
+ "synonyms": "signed in user, current user, account, profile, persona, who am i",
323
+ "tier": "presentation",
324
+ "type": "string"
303
325
  }
304
326
  },
305
327
  "emits": [
@@ -489,7 +511,17 @@
489
511
  "notifications": "@config.notifications",
490
512
  "searchEvent": "@config.searchEvent",
491
513
  "topBarActions": "@config.topBarActions",
492
- "type": "@config.layoutPattern"
514
+ "type": "@config.layoutPattern",
515
+ "user": [
516
+ "if",
517
+ "@config.viewerName",
518
+ {
519
+ "avatar": "@config.viewerAvatar",
520
+ "email": "@config.viewerEmail",
521
+ "name": "@config.viewerName"
522
+ },
523
+ null
524
+ ]
493
525
  }
494
526
  ],
495
527
  "className": "min-h-screen w-full",
@@ -144,7 +144,7 @@
144
144
  "name": "workDate",
145
145
  "required": true,
146
146
  "synonyms": "date, transaction date, service date",
147
- "type": "string"
147
+ "type": "date"
148
148
  },
149
149
  {
150
150
  "default": 0.0,
@@ -286,7 +286,7 @@
286
286
  {
287
287
  "name": "workDate",
288
288
  "required": true,
289
- "type": "string"
289
+ "type": "date"
290
290
  },
291
291
  {
292
292
  "name": "hours",