@almadar/std 16.218.0 → 16.220.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 (77) hide show
  1. package/behaviors/lolo/infra/atoms/std-data-import.lolo +56 -5
  2. package/behaviors/lolo/infra/atoms/std-global-search.lolo +9 -1
  3. package/behaviors/lolo/infra/atoms/std-notification-center.lolo +18 -18
  4. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +5 -5
  5. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +17 -18
  6. package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +215 -0
  7. package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +2 -2
  8. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +169 -0
  9. package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +2 -2
  10. package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +2 -2
  11. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +2 -2
  12. package/behaviors/registry/infra/atoms/std-data-import.orb +329 -6
  13. package/behaviors/registry/infra/atoms/std-global-search.orb +86 -4
  14. package/behaviors/registry/infra/atoms/std-notification-center.orb +41 -33
  15. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +10 -17
  16. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +198 -195
  17. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +723 -0
  18. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +508 -0
  19. package/canonical-operators.json +46 -1
  20. package/dist/behaviors/exports-reader.js +3212 -2818
  21. package/dist/behaviors/functions/index.d.ts +238 -5
  22. package/dist/behaviors/functions/index.js +3207 -2819
  23. package/dist/behaviors/index.d.ts +1 -1
  24. package/dist/behaviors/index.js +3213 -2819
  25. package/dist/behaviors/query.js +3212 -2818
  26. package/dist/behaviors-embeddings.hash.json +3 -3
  27. package/dist/behaviors-embeddings.json +19 -7
  28. package/dist/behaviors-registry.json +2220 -1041
  29. package/dist/index.d.ts +3 -3
  30. package/dist/index.js +3249 -2819
  31. package/dist/knob-embeddings.hash.json +3 -3
  32. package/dist/knob-embeddings.json +1 -1
  33. package/dist/modules/anim.d.ts +1 -1
  34. package/dist/modules/array.d.ts +1 -1
  35. package/dist/modules/async.d.ts +1 -1
  36. package/dist/modules/behavior.d.ts +1 -1
  37. package/dist/modules/browser.d.ts +1 -1
  38. package/dist/modules/composition.d.ts +1 -1
  39. package/dist/modules/contract.d.ts +1 -1
  40. package/dist/modules/core.d.ts +1 -1
  41. package/dist/modules/data.d.ts +1 -1
  42. package/dist/modules/ease.d.ts +1 -1
  43. package/dist/modules/format.d.ts +1 -1
  44. package/dist/modules/geo.d.ts +1 -1
  45. package/dist/modules/graph.d.ts +1 -1
  46. package/dist/modules/grid.d.ts +1 -1
  47. package/dist/modules/index.d.ts +2 -1
  48. package/dist/modules/index.js +30 -1
  49. package/dist/modules/integration.d.ts +1 -1
  50. package/dist/modules/json.d.ts +20 -0
  51. package/dist/modules/json.js +30 -0
  52. package/dist/modules/llm.d.ts +1 -1
  53. package/dist/modules/math.d.ts +1 -1
  54. package/dist/modules/memory.d.ts +1 -1
  55. package/dist/modules/nn.d.ts +1 -1
  56. package/dist/modules/noise.d.ts +1 -1
  57. package/dist/modules/object.d.ts +1 -1
  58. package/dist/modules/os.d.ts +1 -1
  59. package/dist/modules/path.d.ts +1 -1
  60. package/dist/modules/prob.d.ts +1 -1
  61. package/dist/modules/session.d.ts +1 -1
  62. package/dist/modules/str.d.ts +1 -1
  63. package/dist/modules/tensor.d.ts +1 -1
  64. package/dist/modules/time.d.ts +1 -1
  65. package/dist/modules/trace.d.ts +1 -1
  66. package/dist/modules/train.d.ts +1 -1
  67. package/dist/modules/validate.d.ts +1 -1
  68. package/dist/modules/vector.d.ts +1 -1
  69. package/dist/modules/workspace.d.ts +1 -1
  70. package/dist/registry/factory-signatures.json +1 -1
  71. package/dist/registry.d.ts +1 -1
  72. package/dist/registry.js +28 -0
  73. package/dist/{types-C-Yerb4-.d.ts → types-DpbKBJu8.d.ts} +3 -3
  74. package/i18n/ar.json +3 -1
  75. package/i18n/en.json +2 -0
  76. package/i18n/sl.json +3 -1
  77. package/package.json +2 -2
@@ -137,6 +137,14 @@
137
137
  "kind": "trait",
138
138
  "owner": "workspace",
139
139
  "renames": []
140
+ },
141
+ "trt_01M2RAZG5FVSE7MW01G6BQGQE1": {
142
+ "bakedName": "InlineTypographyRender5",
143
+ "curName": "InlineTypographyRender5",
144
+ "id": "trt_01M2RAZG5FVSE7MW01G6BQGQE1",
145
+ "kind": "trait",
146
+ "owner": "workspace",
147
+ "renames": []
140
148
  }
141
149
  },
142
150
  "schemaVersion": 1
@@ -305,6 +313,10 @@
305
313
  {
306
314
  "ref": "InlineTypographyRender4",
307
315
  "refId": "trt_01M2HF5GMNH5WR6RWC7C05RFQT"
316
+ },
317
+ {
318
+ "ref": "InlineTypographyRender5",
319
+ "refId": "trt_01M2RAZG5FVSE7MW01G6BQGQE1"
308
320
  }
309
321
  ]
310
322
  }
@@ -1230,7 +1242,59 @@
1230
1242
  "placeholder": "@config.placeholder",
1231
1243
  "type": "search-input"
1232
1244
  },
1233
- "@trait.InlineTypographyRender4"
1245
+ [
1246
+ "array/map",
1247
+ [
1248
+ "array/filter",
1249
+ "@entity.results",
1250
+ [
1251
+ "fn",
1252
+ "g",
1253
+ [
1254
+ "!=",
1255
+ "@g.resultsJson",
1256
+ ""
1257
+ ]
1258
+ ]
1259
+ ],
1260
+ [
1261
+ "fn",
1262
+ "g",
1263
+ {
1264
+ "children": [
1265
+ "@trait.InlineTypographyRender4",
1266
+ [
1267
+ "array/map",
1268
+ [
1269
+ "array/filter",
1270
+ [
1271
+ "str/split",
1272
+ "@g.resultsJson",
1273
+ ", "
1274
+ ],
1275
+ [
1276
+ "fn",
1277
+ "item",
1278
+ [
1279
+ "!=",
1280
+ "@item",
1281
+ ""
1282
+ ]
1283
+ ]
1284
+ ],
1285
+ [
1286
+ "fn",
1287
+ "item",
1288
+ "@trait.InlineTypographyRender5"
1289
+ ]
1290
+ ]
1291
+ ],
1292
+ "direction": "vertical",
1293
+ "gap": "sm",
1294
+ "type": "stack"
1295
+ }
1296
+ ]
1297
+ ]
1234
1298
  ],
1235
1299
  "direction": "vertical",
1236
1300
  "gap": "md",
@@ -1314,7 +1378,8 @@
1314
1378
  "InlineSpinnerRender2": "trt_01M2HF5GMNQ98TN6V15AA4B52H",
1315
1379
  "InlineTypographyRender1": "trt_01M2HF5GMNZQ67R15B1XS75064",
1316
1380
  "InlineTypographyRender3": "trt_01M2HF5GMN2FE93FP2KKCTC5FB",
1317
- "InlineTypographyRender4": "trt_01M2HF5GMNH5WR6RWC7C05RFQT"
1381
+ "InlineTypographyRender4": "trt_01M2HF5GMNH5WR6RWC7C05RFQT",
1382
+ "InlineTypographyRender5": "trt_01M2RAZG5FVSE7MW01G6BQGQE1"
1318
1383
  }
1319
1384
  },
1320
1385
  {
@@ -1369,11 +1434,11 @@
1369
1434
  {
1370
1435
  "config": {
1371
1436
  "content": {
1372
- "default": "@entity.resultsSummary",
1437
+ "default": "@g.moduleKey",
1373
1438
  "type": "unknown"
1374
1439
  },
1375
1440
  "variant": {
1376
- "default": "body",
1441
+ "default": "h4",
1377
1442
  "type": "unknown"
1378
1443
  }
1379
1444
  },
@@ -1382,6 +1447,23 @@
1382
1447
  "linkedEntityId": "ent_01M2HF5GMNGVKWFSM4E6WE1SAY",
1383
1448
  "name": "InlineTypographyRender4",
1384
1449
  "ref": "Typography.traits.TypographyRender"
1450
+ },
1451
+ {
1452
+ "config": {
1453
+ "content": {
1454
+ "default": "@item",
1455
+ "type": "unknown"
1456
+ },
1457
+ "variant": {
1458
+ "default": "body",
1459
+ "type": "unknown"
1460
+ }
1461
+ },
1462
+ "id": "trt_01M2RAZG5FVSE7MW01G6BQGQE1",
1463
+ "linkedEntity": "SearchQuery",
1464
+ "linkedEntityId": "ent_01M2HF5GMNGVKWFSM4E6WE1SAY",
1465
+ "name": "InlineTypographyRender5",
1466
+ "ref": "Typography.traits.TypographyRender"
1385
1467
  }
1386
1468
  ],
1387
1469
  "types": {
@@ -449,19 +449,34 @@
449
449
  "type": "string"
450
450
  },
451
451
  {
452
- "default": "",
453
452
  "description": "Owner of this preference row — rows are meant to be private to their owner. Access predicates need an [identity] roster, so the binding organism (which declares one) owns the @read/@update scoping; the generic atom cannot.",
454
- "name": "userId",
453
+ "name": "personId",
454
+ "required": true,
455
455
  "synonyms": "user, owner, account",
456
456
  "type": "string"
457
457
  },
458
458
  {
459
459
  "default": "",
460
460
  "description": "Event key this preference applies to (matches a listener's eventKey); blank = all events.",
461
- "name": "eventType",
461
+ "name": "eventKey",
462
462
  "synonyms": "event, trigger, subscription, topic",
463
463
  "type": "string"
464
464
  },
465
+ {
466
+ "default": "in_app",
467
+ "description": "Channel override for this user.",
468
+ "name": "channel",
469
+ "synonyms": "preferred channel, delivery method",
470
+ "type": "string",
471
+ "values": [
472
+ "in_app",
473
+ "email",
474
+ "push",
475
+ "slack",
476
+ "sms",
477
+ "webhook"
478
+ ]
479
+ },
465
480
  {
466
481
  "default": "instant",
467
482
  "description": "Delivery mode: instant (default), digest (deferred to the drain cycle), or off (muted).",
@@ -476,23 +491,23 @@
476
491
  },
477
492
  {
478
493
  "default": "",
479
- "description": "Channel override for this user (in-app/email/sms/push/webhook); blank = the listener's configured channel.",
480
- "name": "channel",
481
- "synonyms": "preferred channel, delivery method",
494
+ "description": "Per-user quiet-hours window as \"HH:MM-HH:MM\" (e.g. 22:00-07:00); blank = disabled.",
495
+ "name": "quietHours",
496
+ "synonyms": "do not disturb, quiet window, night mode",
482
497
  "type": "string"
483
498
  },
484
499
  {
485
500
  "default": 0.0,
486
- "description": "Per-user quiet-hours start (hour 0-23); equal to quietEndHour = disabled.",
487
- "name": "quietStartHour",
488
- "synonyms": "quiet start, do not disturb from",
501
+ "description": "Timestamp indicating when this preference row was created.",
502
+ "name": "createdAt",
503
+ "synonyms": "creation time, created",
489
504
  "type": "number"
490
505
  },
491
506
  {
492
507
  "default": 0.0,
493
- "description": "Per-user quiet-hours end (hour 0-23); equal to quietStartHour = disabled.",
494
- "name": "quietEndHour",
495
- "synonyms": "quiet end, do not disturb until",
508
+ "description": "Timestamp indicating when this preference row was last updated.",
509
+ "name": "updatedAt",
510
+ "synonyms": "modified, last updated",
496
511
  "type": "number"
497
512
  }
498
513
  ],
@@ -961,7 +976,7 @@
961
976
  "name": "Save Preference",
962
977
  "payloadSchema": [
963
978
  {
964
- "name": "eventType",
979
+ "name": "eventKey",
965
980
  "type": "string"
966
981
  },
967
982
  {
@@ -973,12 +988,8 @@
973
988
  "type": "string"
974
989
  },
975
990
  {
976
- "name": "quietStartHour",
977
- "type": "number"
978
- },
979
- {
980
- "name": "quietEndHour",
981
- "type": "number"
991
+ "name": "quietHours",
992
+ "type": "string"
982
993
  }
983
994
  ]
984
995
  },
@@ -992,7 +1003,7 @@
992
1003
  "type": "string"
993
1004
  },
994
1005
  {
995
- "name": "eventType",
1006
+ "name": "eventKey",
996
1007
  "type": "string"
997
1008
  },
998
1009
  {
@@ -1004,12 +1015,8 @@
1004
1015
  "type": "string"
1005
1016
  },
1006
1017
  {
1007
- "name": "quietStartHour",
1008
- "type": "number"
1009
- },
1010
- {
1011
- "name": "quietEndHour",
1012
- "type": "number"
1018
+ "name": "quietHours",
1019
+ "type": "string"
1013
1020
  }
1014
1021
  ]
1015
1022
  },
@@ -1131,11 +1138,12 @@
1131
1138
  "NotificationPreference",
1132
1139
  {
1133
1140
  "channel": "@payload.channel",
1134
- "eventType": "@payload.eventType",
1141
+ "createdAt": "@now",
1142
+ "eventKey": "@payload.eventKey",
1135
1143
  "mode": "@payload.mode",
1136
- "quietEndHour": "@payload.quietEndHour",
1137
- "quietStartHour": "@payload.quietStartHour",
1138
- "userId": "@user.id"
1144
+ "personId": "@user.id",
1145
+ "quietHours": "@payload.quietHours",
1146
+ "updatedAt": "@now"
1139
1147
  },
1140
1148
  {
1141
1149
  "emit": {
@@ -1158,11 +1166,11 @@
1158
1166
  "NotificationPreference",
1159
1167
  {
1160
1168
  "channel": "@payload.channel",
1161
- "eventType": "@payload.eventType",
1169
+ "eventKey": "@payload.eventKey",
1162
1170
  "id": "@payload.id",
1163
1171
  "mode": "@payload.mode",
1164
- "quietEndHour": "@payload.quietEndHour",
1165
- "quietStartHour": "@payload.quietStartHour"
1172
+ "quietHours": "@payload.quietHours",
1173
+ "updatedAt": "@now"
1166
1174
  },
1167
1175
  {
1168
1176
  "emit": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "std-notification-preferences — per-person notification preference store plus a consultable gate. Owns NotificationPreference rows (one per person + event key: channel override in_app/email/push/slack, mode instant/digest, quiet-hours window 'HH:MM-HH:MM' such as 22:00-07:00). The PreferencesManage trait is standard CRUD over the store (list / create / update / delete, persisted, success/failure cascade arms): a data-grid browse plus ModalRecordModal create/edit forms whose SAVE carries the full row payload (std-list daisy-chain idiom). The PreferenceGate trait is the consult half other notify traits call: emit CHECK_PREFERENCE { personId, eventKey } and the gate fetches the matching row (a row whose eventKey is blank applies to every event) and answers PREFERENCE_RESOLVED { personId, eventKey, channel, mode, suppressed } — suppressed is true only when the row's quietHours window covers the current hour; mode 'digest' rides on the verdict for the caller to defer. Default policy: no matching row — or a failed lookup — resolves fail-open to { channel: in_app, mode: instant, suppressed: false }; the absence of a preference never silences a notification.",
2
+ "description": "std-notification-preferences — per-person notification preference store plus a consultable gate. Owns NotificationPreference rows (one per person + event key: channel override in_app/email/push/slack/sms/webhook, mode instant/digest/off, quiet-hours window 'HH:MM-HH:MM' such as 22:00-07:00). The PreferencesManage trait is standard CRUD over the store (list / create / update / delete, persisted, success/failure cascade arms): a data-grid browse plus ModalRecordModal create/edit forms whose SAVE carries the full row payload (std-list daisy-chain idiom). The PreferenceGate trait is the consult half other notify traits call: emit CHECK_PREFERENCE { personId, eventKey } and the gate fetches the matching row (a row whose eventKey is blank applies to every event) and answers PREFERENCE_RESOLVED { personId, eventKey, channel, mode, suppressed } — suppressed is true only when the row's quietHours window covers the current hour; mode 'digest' rides on the verdict for the caller to defer. Default policy: no matching row — or a failed lookup — resolves fail-open to { channel: in_app, mode: instant, suppressed: false }; the absence of a preference never silences a notification.",
3
3
  "ledger": {
4
4
  "entries": {
5
5
  "ent_01M2HEX5N29SFAW1SYFN346B12": {
@@ -266,7 +266,7 @@
266
266
  }
267
267
  ],
268
268
  "entity": {
269
- "collection": "notification_preferences",
269
+ "collection": "notificationPreferences",
270
270
  "fields": [
271
271
  {
272
272
  "name": "id",
@@ -281,9 +281,9 @@
281
281
  "type": "string"
282
282
  },
283
283
  {
284
+ "default": "",
284
285
  "description": "Event key this preference applies to (matches a notify listener's eventKey); blank = all events.",
285
286
  "name": "eventKey",
286
- "required": true,
287
287
  "synonyms": "event, trigger, topic, subscription",
288
288
  "type": "string"
289
289
  },
@@ -297,18 +297,21 @@
297
297
  "in_app",
298
298
  "email",
299
299
  "push",
300
- "slack"
300
+ "slack",
301
+ "sms",
302
+ "webhook"
301
303
  ]
302
304
  },
303
305
  {
304
306
  "default": "instant",
305
- "description": "Delivery mode: instant (default) or digest (deferred to a batch cycle).",
307
+ "description": "Delivery mode: instant (default), digest (deferred to a batch cycle), or off (muted).",
306
308
  "name": "mode",
307
- "synonyms": "delivery mode, frequency, cadence, defer",
309
+ "synonyms": "delivery mode, frequency, cadence, mute, defer",
308
310
  "type": "string",
309
311
  "values": [
310
312
  "instant",
311
- "digest"
313
+ "digest",
314
+ "off"
312
315
  ]
313
316
  },
314
317
  {
@@ -442,7 +445,6 @@
442
445
  },
443
446
  {
444
447
  "name": "eventKey",
445
- "required": true,
446
448
  "type": "string"
447
449
  },
448
450
  {
@@ -498,7 +500,6 @@
498
500
  },
499
501
  {
500
502
  "name": "eventKey",
501
- "required": true,
502
503
  "type": "string"
503
504
  },
504
505
  {
@@ -549,7 +550,6 @@
549
550
  },
550
551
  {
551
552
  "name": "eventKey",
552
- "required": true,
553
553
  "type": "string"
554
554
  },
555
555
  {
@@ -701,7 +701,6 @@
701
701
  },
702
702
  {
703
703
  "name": "eventKey",
704
- "required": true,
705
704
  "type": "string"
706
705
  },
707
706
  {
@@ -776,7 +775,6 @@
776
775
  },
777
776
  {
778
777
  "name": "eventKey",
779
- "required": true,
780
778
  "type": "string"
781
779
  },
782
780
  {
@@ -828,7 +826,6 @@
828
826
  },
829
827
  {
830
828
  "name": "eventKey",
831
- "required": true,
832
829
  "type": "string"
833
830
  },
834
831
  {
@@ -881,7 +878,6 @@
881
878
  },
882
879
  {
883
880
  "name": "eventKey",
884
- "required": true,
885
881
  "type": "string"
886
882
  },
887
883
  {
@@ -1003,7 +999,6 @@
1003
999
  },
1004
1000
  {
1005
1001
  "name": "eventKey",
1006
- "required": true,
1007
1002
  "type": "string"
1008
1003
  },
1009
1004
  {
@@ -1658,7 +1653,6 @@
1658
1653
  },
1659
1654
  {
1660
1655
  "name": "eventKey",
1661
- "required": true,
1662
1656
  "type": "string"
1663
1657
  },
1664
1658
  {
@@ -1752,7 +1746,6 @@
1752
1746
  },
1753
1747
  {
1754
1748
  "name": "eventKey",
1755
- "required": true,
1756
1749
  "type": "string"
1757
1750
  },
1758
1751
  {