tpmkms_4wp 9.3.0-beta.10 → 9.3.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/crew.instance.json +36 -36
- package/common/dateTimeSelectors.instance.json +31 -6
- package/common/dateTimeSelectors.js +9 -3
- package/common/dateTimeSelectors.test.json +5 -5
- package/common/fastfood.instance.json +0 -288
- package/common/helpers/dateTimeSelectors.js +27 -0
- package/common/people.instance.json +60 -0
- package/common/reminders.instance.json +1 -1
- package/common/reminders.js +4 -3
- package/common/reminders.test.json +17 -19
- package/common/reports.instance.json +1 -1
- package/package.json +2 -2
@@ -13229,24 +13229,6 @@
|
|
13229
13229
|
0
|
13230
13230
|
]
|
13231
13231
|
],
|
13232
|
-
[
|
13233
|
-
[
|
13234
|
-
"is",
|
13235
|
-
0
|
13236
|
-
],
|
13237
|
-
[
|
13238
|
-
"name",
|
13239
|
-
0
|
13240
|
-
],
|
13241
|
-
[
|
13242
|
-
"possession",
|
13243
|
-
0
|
13244
|
-
],
|
13245
|
-
[
|
13246
|
-
"spock",
|
13247
|
-
0
|
13248
|
-
]
|
13249
|
-
],
|
13250
13232
|
[
|
13251
13233
|
[
|
13252
13234
|
"is",
|
@@ -30514,6 +30496,24 @@
|
|
30514
30496
|
0
|
30515
30497
|
]
|
30516
30498
|
],
|
30499
|
+
[
|
30500
|
+
[
|
30501
|
+
"is",
|
30502
|
+
0
|
30503
|
+
],
|
30504
|
+
[
|
30505
|
+
"propertyOf",
|
30506
|
+
0
|
30507
|
+
],
|
30508
|
+
[
|
30509
|
+
"the",
|
30510
|
+
0
|
30511
|
+
],
|
30512
|
+
[
|
30513
|
+
"unknown",
|
30514
|
+
0
|
30515
|
+
]
|
30516
|
+
],
|
30517
30517
|
[
|
30518
30518
|
[
|
30519
30519
|
"is",
|
@@ -52696,24 +52696,6 @@
|
|
52696
52696
|
0
|
52697
52697
|
]
|
52698
52698
|
],
|
52699
|
-
[
|
52700
|
-
[
|
52701
|
-
"is",
|
52702
|
-
0
|
52703
|
-
],
|
52704
|
-
[
|
52705
|
-
"name",
|
52706
|
-
0
|
52707
|
-
],
|
52708
|
-
[
|
52709
|
-
"possession",
|
52710
|
-
0
|
52711
|
-
],
|
52712
|
-
[
|
52713
|
-
"spock",
|
52714
|
-
0
|
52715
|
-
]
|
52716
|
-
],
|
52717
52699
|
[
|
52718
52700
|
[
|
52719
52701
|
"is",
|
@@ -53140,6 +53122,24 @@
|
|
53140
53122
|
0
|
53141
53123
|
]
|
53142
53124
|
],
|
53125
|
+
[
|
53126
|
+
[
|
53127
|
+
"is",
|
53128
|
+
0
|
53129
|
+
],
|
53130
|
+
[
|
53131
|
+
"propertyOf",
|
53132
|
+
0
|
53133
|
+
],
|
53134
|
+
[
|
53135
|
+
"the",
|
53136
|
+
0
|
53137
|
+
],
|
53138
|
+
[
|
53139
|
+
"unknown",
|
53140
|
+
0
|
53141
|
+
]
|
53142
|
+
],
|
53143
53143
|
[
|
53144
53144
|
[
|
53145
53145
|
"is",
|
@@ -7,11 +7,25 @@
|
|
7
7
|
"bridges": [
|
8
8
|
{
|
9
9
|
"id": "dateTimeSelector",
|
10
|
+
"after": [
|
11
|
+
"preposition"
|
12
|
+
],
|
13
|
+
"before": [
|
14
|
+
"verb"
|
15
|
+
],
|
10
16
|
"convolution": true,
|
11
17
|
"children": [
|
12
|
-
"
|
13
|
-
"atTime"
|
14
|
-
|
18
|
+
"onDate_dates",
|
19
|
+
"atTime",
|
20
|
+
"date_dates"
|
21
|
+
],
|
22
|
+
"bridge": "{ ...next(operator), date: after[0], time: after[1], interpolate: '${date} ${time}' }"
|
23
|
+
}
|
24
|
+
],
|
25
|
+
"semantics": [
|
26
|
+
{
|
27
|
+
"match": "({context, isA}) => isA(context.marker, 'dateTimeSelector') && !!context.evaluate",
|
28
|
+
"apply": "({context, isProcess}) => {\n context.evalue = instantiate(isProcess, context)\n }"
|
15
29
|
}
|
16
30
|
]
|
17
31
|
}
|
@@ -25,12 +39,23 @@
|
|
25
39
|
"bridges": [
|
26
40
|
{
|
27
41
|
"id": "dateTimeSelector",
|
42
|
+
"after": [
|
43
|
+
"preposition"
|
44
|
+
],
|
45
|
+
"before": [
|
46
|
+
"verb"
|
47
|
+
],
|
28
48
|
"convolution": true,
|
29
49
|
"children": [
|
30
|
-
"
|
31
|
-
"atTime"
|
32
|
-
|
50
|
+
"onDate_dates",
|
51
|
+
"atTime",
|
52
|
+
"date_dates"
|
53
|
+
],
|
54
|
+
"bridge": "{ ...next(operator), date: after[0], time: after[1], interpolate: '${date} ${time}' }"
|
33
55
|
}
|
56
|
+
],
|
57
|
+
"semantics": [
|
58
|
+
{}
|
34
59
|
]
|
35
60
|
}
|
36
61
|
],
|
@@ -13,13 +13,19 @@ const dateTimeSelectors_helpers = require('./helpers/dateTimeSelectors')
|
|
13
13
|
make it friday instead
|
14
14
|
2 sundays from now
|
15
15
|
the sunday after july 1st
|
16
|
+
the first tuesday after july 1st
|
17
|
+
the first tuesday on or after july 1st
|
18
|
+
the last tuesday of every month
|
19
|
+
the last tuesday of every third month
|
20
|
+
monday at 10 am
|
21
|
+
10 am
|
16
22
|
*/
|
17
23
|
|
18
24
|
function instantiate(isProcess, dateTimeSelector) {
|
19
25
|
let now;
|
20
26
|
if (isProcess) {
|
21
|
-
// so the unit tests work consistently
|
22
|
-
now = new Date(2025,
|
27
|
+
// so the unit tests work consistently. the month is zero based so 5 is june
|
28
|
+
now = new Date(2025, 5, 29, 14, 52, 0)
|
23
29
|
} else {
|
24
30
|
now = new Date()
|
25
31
|
}
|
@@ -54,7 +60,7 @@ const template = {
|
|
54
60
|
],
|
55
61
|
semantics: [
|
56
62
|
{
|
57
|
-
match: ({context, isA}) => isA(context.marker, 'dateTimeSelector') && !!
|
63
|
+
match: ({context, isA}) => isA(context.marker, 'dateTimeSelector') && !!context.evaluate,
|
58
64
|
apply: ({context, isProcess}) => {
|
59
65
|
context.evalue = instantiate(isProcess, context)
|
60
66
|
},
|
@@ -2273,7 +2273,7 @@
|
|
2273
2273
|
"end": 22,
|
2274
2274
|
"start": 0
|
2275
2275
|
},
|
2276
|
-
"response": "2025-
|
2276
|
+
"response": "2025-06-30T21:00:00.000Z",
|
2277
2277
|
"text": "evaluate monday at 2 pm",
|
2278
2278
|
"topLevel": true,
|
2279
2279
|
"touchedBy": [
|
@@ -2381,7 +2381,7 @@
|
|
2381
2381
|
],
|
2382
2382
|
"developerTest": false,
|
2383
2383
|
"generatedParenthesized": [
|
2384
|
-
"(2025-
|
2384
|
+
"(2025-06-30T21:00:00.000Z)"
|
2385
2385
|
],
|
2386
2386
|
"metadata": {
|
2387
2387
|
"opChoices": [
|
@@ -3206,7 +3206,7 @@
|
|
3206
3206
|
"end": 22,
|
3207
3207
|
"start": 0
|
3208
3208
|
},
|
3209
|
-
"response": "2025-
|
3209
|
+
"response": "2025-06-30T21:00:00.000Z",
|
3210
3210
|
"text": "evaluate monday at 2 pm",
|
3211
3211
|
"topLevel": true,
|
3212
3212
|
"touchedBy": [
|
@@ -3318,7 +3318,7 @@
|
|
3318
3318
|
"paraphrasesParenthesized": [
|
3319
3319
|
],
|
3320
3320
|
"responses": [
|
3321
|
-
"2025-
|
3321
|
+
"2025-06-30T21:00:00.000Z"
|
3322
3322
|
]
|
3323
3323
|
},
|
3324
3324
|
{
|
@@ -4231,7 +4231,7 @@
|
|
4231
4231
|
],
|
4232
4232
|
"query": "evaluate monday at 2 pm",
|
4233
4233
|
"responses": [
|
4234
|
-
"2025-
|
4234
|
+
"2025-06-30T21:00:00.000Z"
|
4235
4235
|
],
|
4236
4236
|
"summaries": [
|
4237
4237
|
{
|
@@ -89995,24 +89995,6 @@
|
|
89995
89995
|
0
|
89996
89996
|
]
|
89997
89997
|
],
|
89998
|
-
[
|
89999
|
-
[
|
90000
|
-
"list",
|
90001
|
-
1
|
90002
|
-
],
|
90003
|
-
[
|
90004
|
-
"modifies",
|
90005
|
-
0
|
90006
|
-
],
|
90007
|
-
[
|
90008
|
-
"strawberry",
|
90009
|
-
0
|
90010
|
-
],
|
90011
|
-
[
|
90012
|
-
"unknown",
|
90013
|
-
0
|
90014
|
-
]
|
90015
|
-
],
|
90016
89998
|
[
|
90017
89999
|
[
|
90018
90000
|
"list",
|
@@ -97389,24 +97371,6 @@
|
|
97389
97371
|
1
|
97390
97372
|
]
|
97391
97373
|
],
|
97392
|
-
[
|
97393
|
-
[
|
97394
|
-
"countable",
|
97395
|
-
0
|
97396
|
-
],
|
97397
|
-
[
|
97398
|
-
"is",
|
97399
|
-
0
|
97400
|
-
],
|
97401
|
-
[
|
97402
|
-
"list",
|
97403
|
-
1
|
97404
|
-
],
|
97405
|
-
[
|
97406
|
-
"strawberry",
|
97407
|
-
0
|
97408
|
-
]
|
97409
|
-
],
|
97410
97374
|
[
|
97411
97375
|
[
|
97412
97376
|
"countable",
|
@@ -137513,60 +137477,6 @@
|
|
137513
137477
|
0
|
137514
137478
|
]
|
137515
137479
|
],
|
137516
|
-
[
|
137517
|
-
[
|
137518
|
-
"asiago",
|
137519
|
-
0
|
137520
|
-
],
|
137521
|
-
[
|
137522
|
-
"chicken",
|
137523
|
-
0
|
137524
|
-
],
|
137525
|
-
[
|
137526
|
-
"club",
|
137527
|
-
0
|
137528
|
-
],
|
137529
|
-
[
|
137530
|
-
"cod",
|
137531
|
-
0
|
137532
|
-
],
|
137533
|
-
[
|
137534
|
-
"comma",
|
137535
|
-
0
|
137536
|
-
],
|
137537
|
-
[
|
137538
|
-
"grill",
|
137539
|
-
0
|
137540
|
-
],
|
137541
|
-
[
|
137542
|
-
"is",
|
137543
|
-
0
|
137544
|
-
],
|
137545
|
-
[
|
137546
|
-
"list",
|
137547
|
-
0
|
137548
|
-
],
|
137549
|
-
[
|
137550
|
-
"premium",
|
137551
|
-
0
|
137552
|
-
],
|
137553
|
-
[
|
137554
|
-
"ranch",
|
137555
|
-
0
|
137556
|
-
],
|
137557
|
-
[
|
137558
|
-
"sandwich",
|
137559
|
-
0
|
137560
|
-
],
|
137561
|
-
[
|
137562
|
-
"ultimate",
|
137563
|
-
0
|
137564
|
-
],
|
137565
|
-
[
|
137566
|
-
"unknown",
|
137567
|
-
0
|
137568
|
-
]
|
137569
|
-
],
|
137570
137480
|
[
|
137571
137481
|
[
|
137572
137482
|
"chicken",
|
@@ -137853,24 +137763,6 @@
|
|
137853
137763
|
0
|
137854
137764
|
]
|
137855
137765
|
],
|
137856
|
-
[
|
137857
|
-
[
|
137858
|
-
"is",
|
137859
|
-
0
|
137860
|
-
],
|
137861
|
-
[
|
137862
|
-
"list",
|
137863
|
-
1
|
137864
|
-
],
|
137865
|
-
[
|
137866
|
-
"sandwich",
|
137867
|
-
0
|
137868
|
-
],
|
137869
|
-
[
|
137870
|
-
"unknown",
|
137871
|
-
0
|
137872
|
-
]
|
137873
|
-
],
|
137874
137766
|
[
|
137875
137767
|
[
|
137876
137768
|
"is",
|
@@ -347921,24 +347813,6 @@
|
|
347921
347813
|
0
|
347922
347814
|
]
|
347923
347815
|
],
|
347924
|
-
[
|
347925
|
-
[
|
347926
|
-
"breakfast",
|
347927
|
-
0
|
347928
|
-
],
|
347929
|
-
[
|
347930
|
-
"is",
|
347931
|
-
0
|
347932
|
-
],
|
347933
|
-
[
|
347934
|
-
"list",
|
347935
|
-
1
|
347936
|
-
],
|
347937
|
-
[
|
347938
|
-
"meal",
|
347939
|
-
0
|
347940
|
-
]
|
347941
|
-
],
|
347942
347816
|
[
|
347943
347817
|
[
|
347944
347818
|
"is",
|
@@ -596185,24 +596059,6 @@
|
|
596185
596059
|
1
|
596186
596060
|
]
|
596187
596061
|
],
|
596188
|
-
[
|
596189
|
-
[
|
596190
|
-
"is",
|
596191
|
-
0
|
596192
|
-
],
|
596193
|
-
[
|
596194
|
-
"list",
|
596195
|
-
1
|
596196
|
-
],
|
596197
|
-
[
|
596198
|
-
"meal",
|
596199
|
-
0
|
596200
|
-
],
|
596201
|
-
[
|
596202
|
-
"value",
|
596203
|
-
0
|
596204
|
-
]
|
596205
|
-
],
|
596206
596062
|
[
|
596207
596063
|
[
|
596208
596064
|
"is",
|
@@ -609870,60 +609726,6 @@
|
|
609870
609726
|
0
|
609871
609727
|
]
|
609872
609728
|
],
|
609873
|
-
[
|
609874
|
-
[
|
609875
|
-
"asiago",
|
609876
|
-
0
|
609877
|
-
],
|
609878
|
-
[
|
609879
|
-
"chicken",
|
609880
|
-
0
|
609881
|
-
],
|
609882
|
-
[
|
609883
|
-
"club",
|
609884
|
-
0
|
609885
|
-
],
|
609886
|
-
[
|
609887
|
-
"cod",
|
609888
|
-
0
|
609889
|
-
],
|
609890
|
-
[
|
609891
|
-
"comma",
|
609892
|
-
0
|
609893
|
-
],
|
609894
|
-
[
|
609895
|
-
"grill",
|
609896
|
-
0
|
609897
|
-
],
|
609898
|
-
[
|
609899
|
-
"is",
|
609900
|
-
0
|
609901
|
-
],
|
609902
|
-
[
|
609903
|
-
"list",
|
609904
|
-
0
|
609905
|
-
],
|
609906
|
-
[
|
609907
|
-
"premium",
|
609908
|
-
0
|
609909
|
-
],
|
609910
|
-
[
|
609911
|
-
"ranch",
|
609912
|
-
0
|
609913
|
-
],
|
609914
|
-
[
|
609915
|
-
"sandwich",
|
609916
|
-
0
|
609917
|
-
],
|
609918
|
-
[
|
609919
|
-
"ultimate",
|
609920
|
-
0
|
609921
|
-
],
|
609922
|
-
[
|
609923
|
-
"unknown",
|
609924
|
-
0
|
609925
|
-
]
|
609926
|
-
],
|
609927
609729
|
[
|
609928
609730
|
[
|
609929
609731
|
"bacon",
|
@@ -611666,24 +611468,6 @@
|
|
611666
611468
|
0
|
611667
611469
|
]
|
611668
611470
|
],
|
611669
|
-
[
|
611670
|
-
[
|
611671
|
-
"breakfast",
|
611672
|
-
0
|
611673
|
-
],
|
611674
|
-
[
|
611675
|
-
"is",
|
611676
|
-
0
|
611677
|
-
],
|
611678
|
-
[
|
611679
|
-
"list",
|
611680
|
-
1
|
611681
|
-
],
|
611682
|
-
[
|
611683
|
-
"meal",
|
611684
|
-
0
|
611685
|
-
]
|
611686
|
-
],
|
611687
611471
|
[
|
611688
611472
|
[
|
611689
611473
|
"breakfast",
|
@@ -613212,24 +612996,6 @@
|
|
613212
612996
|
0
|
613213
612997
|
]
|
613214
612998
|
],
|
613215
|
-
[
|
613216
|
-
[
|
613217
|
-
"countable",
|
613218
|
-
0
|
613219
|
-
],
|
613220
|
-
[
|
613221
|
-
"is",
|
613222
|
-
0
|
613223
|
-
],
|
613224
|
-
[
|
613225
|
-
"list",
|
613226
|
-
1
|
613227
|
-
],
|
613228
|
-
[
|
613229
|
-
"strawberry",
|
613230
|
-
0
|
613231
|
-
]
|
613232
|
-
],
|
613233
612999
|
[
|
613234
613000
|
[
|
613235
613001
|
"double",
|
@@ -613934,24 +613700,6 @@
|
|
613934
613700
|
0
|
613935
613701
|
]
|
613936
613702
|
],
|
613937
|
-
[
|
613938
|
-
[
|
613939
|
-
"is",
|
613940
|
-
0
|
613941
|
-
],
|
613942
|
-
[
|
613943
|
-
"list",
|
613944
|
-
1
|
613945
|
-
],
|
613946
|
-
[
|
613947
|
-
"meal",
|
613948
|
-
0
|
613949
|
-
],
|
613950
|
-
[
|
613951
|
-
"value",
|
613952
|
-
0
|
613953
|
-
]
|
613954
|
-
],
|
613955
613703
|
[
|
613956
613704
|
[
|
613957
613705
|
"is",
|
@@ -614016,24 +613764,6 @@
|
|
614016
613764
|
0
|
614017
613765
|
]
|
614018
613766
|
],
|
614019
|
-
[
|
614020
|
-
[
|
614021
|
-
"is",
|
614022
|
-
0
|
614023
|
-
],
|
614024
|
-
[
|
614025
|
-
"list",
|
614026
|
-
1
|
614027
|
-
],
|
614028
|
-
[
|
614029
|
-
"sandwich",
|
614030
|
-
0
|
614031
|
-
],
|
614032
|
-
[
|
614033
|
-
"unknown",
|
614034
|
-
0
|
614035
|
-
]
|
614036
|
-
],
|
614037
613767
|
[
|
614038
613768
|
[
|
614039
613769
|
"is",
|
@@ -614302,24 +614032,6 @@
|
|
614302
614032
|
0
|
614303
614033
|
]
|
614304
614034
|
],
|
614305
|
-
[
|
614306
|
-
[
|
614307
|
-
"list",
|
614308
|
-
1
|
614309
|
-
],
|
614310
|
-
[
|
614311
|
-
"modifies",
|
614312
|
-
0
|
614313
|
-
],
|
614314
|
-
[
|
614315
|
-
"strawberry",
|
614316
|
-
0
|
614317
|
-
],
|
614318
|
-
[
|
614319
|
-
"unknown",
|
614320
|
-
0
|
614321
|
-
]
|
614322
|
-
],
|
614323
614035
|
[
|
614324
614036
|
[
|
614325
614037
|
"list",
|
@@ -30,12 +30,39 @@ function getNextDayOfWeek(date, targetDay) {
|
|
30
30
|
return nextDate;
|
31
31
|
}
|
32
32
|
|
33
|
+
function getTime(time) {
|
34
|
+
let hour = 0
|
35
|
+
const minute = 0
|
36
|
+
const second = 0
|
37
|
+
let hour_offset = 0
|
38
|
+
if (time.time.ampm.ampm == 'pm') {
|
39
|
+
hour_offset = 12
|
40
|
+
}
|
41
|
+
if (time.marker == 'integer') {
|
42
|
+
hour = time.value
|
43
|
+
} else if (time.marker == 'atTime') {
|
44
|
+
hour = time.time.value
|
45
|
+
}
|
46
|
+
hour += hour_offset
|
47
|
+
return { hour, minute, second }
|
48
|
+
}
|
49
|
+
|
33
50
|
instantiate = (now, context) => {
|
34
51
|
if (context.dateTimeSelector) {
|
35
52
|
const dateTimeSelector = getNextDayOfWeek(now, context.dateTimeSelector?.value)
|
36
53
|
if (dateTimeSelector) {
|
37
54
|
return dateTimeSelector.toISOString()
|
38
55
|
}
|
56
|
+
} else if (context.marker == 'dateTimeSelector') {
|
57
|
+
// (on date) OR (date)
|
58
|
+
const date = context.date?.date || context.date
|
59
|
+
const dateTimeSelector = getNextDayOfWeek(now, date.value)
|
60
|
+
const hms = getTime(context.time)
|
61
|
+
dateTimeSelector.setHours(hms.hour)
|
62
|
+
dateTimeSelector.setMinutes(hms.minute)
|
63
|
+
dateTimeSelector.setSeconds(hms.second)
|
64
|
+
dateTimeSelector.setMilliseconds(0)
|
65
|
+
return dateTimeSelector.toISOString()
|
39
66
|
}
|
40
67
|
}
|
41
68
|
|
@@ -5522,6 +5522,36 @@
|
|
5522
5522
|
0
|
5523
5523
|
]
|
5524
5524
|
],
|
5525
|
+
[
|
5526
|
+
[
|
5527
|
+
"isEd",
|
5528
|
+
0
|
5529
|
+
],
|
5530
|
+
[
|
5531
|
+
"means",
|
5532
|
+
0
|
5533
|
+
],
|
5534
|
+
[
|
5535
|
+
"owned",
|
5536
|
+
0
|
5537
|
+
],
|
5538
|
+
[
|
5539
|
+
"ownee",
|
5540
|
+
0
|
5541
|
+
],
|
5542
|
+
[
|
5543
|
+
"owner",
|
5544
|
+
0
|
5545
|
+
],
|
5546
|
+
[
|
5547
|
+
"owns",
|
5548
|
+
0
|
5549
|
+
],
|
5550
|
+
[
|
5551
|
+
"unknown",
|
5552
|
+
0
|
5553
|
+
]
|
5554
|
+
],
|
5525
5555
|
[
|
5526
5556
|
[
|
5527
5557
|
"means",
|
@@ -8918,6 +8948,36 @@
|
|
8918
8948
|
0
|
8919
8949
|
]
|
8920
8950
|
],
|
8951
|
+
[
|
8952
|
+
[
|
8953
|
+
"isEd",
|
8954
|
+
0
|
8955
|
+
],
|
8956
|
+
[
|
8957
|
+
"means",
|
8958
|
+
0
|
8959
|
+
],
|
8960
|
+
[
|
8961
|
+
"owned",
|
8962
|
+
0
|
8963
|
+
],
|
8964
|
+
[
|
8965
|
+
"ownee",
|
8966
|
+
0
|
8967
|
+
],
|
8968
|
+
[
|
8969
|
+
"owner",
|
8970
|
+
0
|
8971
|
+
],
|
8972
|
+
[
|
8973
|
+
"owns",
|
8974
|
+
0
|
8975
|
+
],
|
8976
|
+
[
|
8977
|
+
"unknown",
|
8978
|
+
0
|
8979
|
+
]
|
8980
|
+
],
|
8921
8981
|
[
|
8922
8982
|
[
|
8923
8983
|
"isEd",
|
@@ -17,7 +17,7 @@
|
|
17
17
|
"bridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
18
18
|
"withDateBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
19
19
|
"withDateAndTimeBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
20
|
-
"semantic": "async ({api, gsp, gp, context}) => {\n const text = await gsp(context.reminder.slice(1));\n const reminder = { text, dateTimeSelector: context.date }\n if (context.date) {\n reminder.dateTimeSelector = context.date\n reminder.dateTimeSelectorText = await gp(context.date)\n }\n await api.instantiate(reminder)\n api.add(reminder)\n }"
|
20
|
+
"semantic": "async ({api, gsp, gp, context}) => {\n const text = await gsp(context.reminder.slice(1));\n const reminder = { text, dateTimeSelector: context.date }\n if (context.date) {\n reminder.dateTimeSelector = context.date\n reminder.dateTimeSelectorText = await gp(context.date)\n }\n debugger\n await api.instantiate(reminder)\n api.add(reminder)\n }"
|
21
21
|
},
|
22
22
|
{
|
23
23
|
"id": "reminders",
|
package/common/reminders.js
CHANGED
@@ -33,13 +33,14 @@ class API {
|
|
33
33
|
let now;
|
34
34
|
if (this.args.isProcess) {
|
35
35
|
// so the unit tests work consistently
|
36
|
-
now = new Date(2025,
|
36
|
+
now = new Date(2025, 5, 29, 14, 52, 0)
|
37
37
|
} else {
|
38
38
|
now = new Date()
|
39
39
|
}
|
40
|
-
// reminder.nextISODate =
|
41
|
-
// debugger
|
40
|
+
// reminder.nextISODate = dateTimeSelectors.instantiate(now, reminder)
|
42
41
|
// TODO make the evaluate work --> const value = await this.args.e(reminder.dateTimeSelector)
|
42
|
+
const value = await this.args.e(reminder.dateTimeSelector)
|
43
|
+
reminder.nextISODate = value?.evalue
|
43
44
|
}
|
44
45
|
|
45
46
|
// the user of the KM can override this. this can be used to sync the GUI and the LUI
|
@@ -322,6 +322,7 @@
|
|
322
322
|
"concept": "concept2",
|
323
323
|
"conjunction": "conjunction2",
|
324
324
|
"countable": "countable2",
|
325
|
+
"dateTimeSelectors": "dateTimeSelectors2",
|
325
326
|
"dates": "dates2",
|
326
327
|
"dialogues": "dialogues2",
|
327
328
|
"evaluate": "evaluate2",
|
@@ -362,6 +363,9 @@
|
|
362
363
|
"countable2": {
|
363
364
|
"km": "countable2"
|
364
365
|
},
|
366
|
+
"dateTimeSelectors2": {
|
367
|
+
"km": "dateTimeSelectors2"
|
368
|
+
},
|
365
369
|
"dates2": {
|
366
370
|
"km": "dates2"
|
367
371
|
},
|
@@ -509,8 +513,7 @@
|
|
509
513
|
"modifies",
|
510
514
|
"is",
|
511
515
|
"isQuery",
|
512
|
-
"remember"
|
513
|
-
"evaluate"
|
516
|
+
"remember"
|
514
517
|
]
|
515
518
|
},
|
516
519
|
"concepts": [
|
@@ -557,7 +560,6 @@
|
|
557
560
|
"adjective",
|
558
561
|
"orAble",
|
559
562
|
"ifAble",
|
560
|
-
"evaluate",
|
561
563
|
"each",
|
562
564
|
"every",
|
563
565
|
"distributable",
|
@@ -633,9 +635,6 @@
|
|
633
635
|
"each": [
|
634
636
|
"article"
|
635
637
|
],
|
636
|
-
"evaluate": [
|
637
|
-
"verb"
|
638
|
-
],
|
639
638
|
"every": [
|
640
639
|
"article"
|
641
640
|
],
|
@@ -837,8 +836,6 @@
|
|
837
836
|
},
|
838
837
|
"era_dates": {
|
839
838
|
},
|
840
|
-
"evaluate": {
|
841
|
-
},
|
842
839
|
"every": {
|
843
840
|
},
|
844
841
|
"february_dates": {
|
@@ -1173,6 +1170,7 @@
|
|
1173
1170
|
"touchedBy": [
|
1174
1171
|
"dates#call2",
|
1175
1172
|
"instance6#dates#call2",
|
1173
|
+
"instance6#dateTimeSelectors#call2",
|
1176
1174
|
"instance6#reminders#call2"
|
1177
1175
|
],
|
1178
1176
|
"value": "resetIdSuffix",
|
@@ -1318,6 +1316,7 @@
|
|
1318
1316
|
"touchedBy": [
|
1319
1317
|
"dates#call2",
|
1320
1318
|
"instance3#dates#call2",
|
1319
|
+
"instance3#dateTimeSelectors#call2",
|
1321
1320
|
"instance3#reminders#call2"
|
1322
1321
|
],
|
1323
1322
|
"two": {
|
@@ -1572,6 +1571,7 @@
|
|
1572
1571
|
"touchedBy": [
|
1573
1572
|
"dates#call2",
|
1574
1573
|
"instance2#dates#call2",
|
1574
|
+
"instance2#dateTimeSelectors#call2",
|
1575
1575
|
"instance2#reminders#call2"
|
1576
1576
|
],
|
1577
1577
|
"two": {
|
@@ -1981,6 +1981,7 @@
|
|
1981
1981
|
"touchedBy": [
|
1982
1982
|
"dates#call2",
|
1983
1983
|
"instance1#dates#call2",
|
1984
|
+
"instance1#dateTimeSelectors#call2",
|
1984
1985
|
"instance1#reminders#call2"
|
1985
1986
|
],
|
1986
1987
|
"two": {
|
@@ -2879,6 +2880,7 @@
|
|
2879
2880
|
"concept": "concept2",
|
2880
2881
|
"conjunction": "conjunction2",
|
2881
2882
|
"countable": "countable2",
|
2883
|
+
"dateTimeSelectors": "dateTimeSelectors2",
|
2882
2884
|
"dates": "dates2",
|
2883
2885
|
"dialogues": "dialogues2",
|
2884
2886
|
"evaluate": "evaluate2",
|
@@ -2919,6 +2921,9 @@
|
|
2919
2921
|
"countable2": {
|
2920
2922
|
"km": "countable2"
|
2921
2923
|
},
|
2924
|
+
"dateTimeSelectors2": {
|
2925
|
+
"km": "dateTimeSelectors2"
|
2926
|
+
},
|
2922
2927
|
"dates2": {
|
2923
2928
|
"km": "dates2"
|
2924
2929
|
},
|
@@ -3066,8 +3071,7 @@
|
|
3066
3071
|
"modifies",
|
3067
3072
|
"is",
|
3068
3073
|
"isQuery",
|
3069
|
-
"remember"
|
3070
|
-
"evaluate"
|
3074
|
+
"remember"
|
3071
3075
|
]
|
3072
3076
|
},
|
3073
3077
|
"concepts": [
|
@@ -3114,7 +3118,6 @@
|
|
3114
3118
|
"adjective",
|
3115
3119
|
"orAble",
|
3116
3120
|
"ifAble",
|
3117
|
-
"evaluate",
|
3118
3121
|
"each",
|
3119
3122
|
"every",
|
3120
3123
|
"distributable",
|
@@ -3190,9 +3193,6 @@
|
|
3190
3193
|
"each": [
|
3191
3194
|
"article"
|
3192
3195
|
],
|
3193
|
-
"evaluate": [
|
3194
|
-
"verb"
|
3195
|
-
],
|
3196
3196
|
"every": [
|
3197
3197
|
"article"
|
3198
3198
|
],
|
@@ -3394,8 +3394,6 @@
|
|
3394
3394
|
},
|
3395
3395
|
"era_dates": {
|
3396
3396
|
},
|
3397
|
-
"evaluate": {
|
3398
|
-
},
|
3399
3397
|
"every": {
|
3400
3398
|
},
|
3401
3399
|
"february_dates": {
|
@@ -3839,6 +3837,7 @@
|
|
3839
3837
|
"touchedBy": [
|
3840
3838
|
"dates#call2",
|
3841
3839
|
"instance6#dates#call2",
|
3840
|
+
"instance6#dateTimeSelectors#call2",
|
3842
3841
|
"instance6#reminders#call2"
|
3843
3842
|
],
|
3844
3843
|
"value": "resetIdSuffix",
|
@@ -4536,7 +4535,6 @@
|
|
4536
4535
|
"word": "monday"
|
4537
4536
|
}
|
4538
4537
|
],
|
4539
|
-
"developerTest": false,
|
4540
4538
|
"generatedParenthesized": [
|
4541
4539
|
"",
|
4542
4540
|
"(When should I remind you to go to regina)",
|
@@ -6673,7 +6671,6 @@
|
|
6673
6671
|
"word": "remind"
|
6674
6672
|
}
|
6675
6673
|
],
|
6676
|
-
"developerTest": false,
|
6677
6674
|
"generatedParenthesized": [
|
6678
6675
|
""
|
6679
6676
|
],
|
@@ -9910,7 +9907,6 @@
|
|
9910
9907
|
"word": "remind"
|
9911
9908
|
}
|
9912
9909
|
],
|
9913
|
-
"developerTest": false,
|
9914
9910
|
"generatedParenthesized": [
|
9915
9911
|
""
|
9916
9912
|
],
|
@@ -11061,6 +11057,7 @@
|
|
11061
11057
|
"dateTimeSelectorText": "on monday at 10 am",
|
11062
11058
|
"fromSTM": true,
|
11063
11059
|
"id": 1,
|
11060
|
+
"nextISODate": "2025-06-30T17:00:00.000Z",
|
11064
11061
|
"pullFromContext": false,
|
11065
11062
|
"stm": {
|
11066
11063
|
"id": 1
|
@@ -11209,6 +11206,7 @@
|
|
11209
11206
|
"dateTimeSelectorText": "on monday at 10 am",
|
11210
11207
|
"fromSTM": true,
|
11211
11208
|
"id": 1,
|
11209
|
+
"nextISODate": "2025-06-30T17:00:00.000Z",
|
11212
11210
|
"pullFromContext": false,
|
11213
11211
|
"stm": {
|
11214
11212
|
"id": 1
|
@@ -1048,7 +1048,7 @@
|
|
1048
1048
|
}
|
1049
1049
|
]
|
1050
1050
|
},
|
1051
|
-
"trace": "\n\n>>>>>>>>>>>>> Counter 1\n summary\n\n 0. price/0 (1, 0) - \"price\"\n 1. list/0 (1, 6) - \"and\"\n 2. quantity/0 (1, 10) - \"quantity\"\n 3. is/0 (1, 15) - \"are\"\n 4. property/0 (dead) (1, 21) - \"properties\"\n\n details\n\n 0. price/0 (1, 0) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. list/0 (1, 6) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. quantity/0 (1, 10) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. is/0 (1, 15) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. property/0 (dead) (1, 21) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('price', 0)\n Context:\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n\n>>>>>>>>>>>>> Counter 2\n summary\n\n *0. price/1 (dead) (2, 0) - \"price\"\n 1. list/0 (1, 6) - \"and\"\n 2. quantity/0 (1, 10) - \"quantity\"\n 3. is/0 (1, 15) - \"are\"\n 4. property/0 (dead) (1, 21) - \"properties\"\n\n details\n\n *0. price/1 (dead) (2, 0) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. list/0 (1, 6) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. quantity/0 (1, 10) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. is/0 (1, 15) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. property/0 (dead) (1, 21) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('list', 0)\n Context:\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n\n\n>>>>>>>>>>>>> Counter 3\n summary\n\n *0. list/1 (3, 0) - \"price and quantity\"\n 1. is/0 (1, 15) - \"are\"\n 2. property/0 (dead) (1, 21) - \"properties\"\n\n details\n\n *0. list/1 (3, 0) - \"price and quantity\"\n {\n prioritized_by: [('list', 0)]\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['listable', 'quantity', 'queryable', 'number', 'property', 'comparable', 'theAble', 'quantifier']}\n\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n 1. is/0 (1, 15) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 2. property/0 (dead) (1, 21) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('is', 0)\n Context:\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 4\n summary\n\n *0. is/1 (4, 0) - \"price and quantity are properties\"\n\n details\n\n *0. is/1 (4, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n Variables:\n {'found_types': []}\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['listable', 'quantity', 'queryable', 'number', 'property', 'comparable', 'theAble', 'quantifier']}\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('is', 1)\n Context:\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n Variables:\n {'found_types': []}\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['listable', 'quantity', 'queryable', 'number', 'property', 'comparable', 'theAble', 'quantifier']}\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 5\n summary\n\n *0. is/2 (dead) (5, 0) - \"price and quantity are properties\"\n\n details\n\n *0. is/2 (dead) (5, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 1)]\n dead: true\n marker: \n Operator(is/2)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['listable', 'quantity', 'queryable', 'number', 'property', 'comparable', 'theAble', 'quantifier']}\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'price'\n, 'quantity'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\n",
|
1051
|
+
"trace": "\n\n>>>>>>>>>>>>> Counter 1\n summary\n\n 0. price/0 (1, 0) - \"price\"\n 1. list/0 (1, 6) - \"and\"\n 2. quantity/0 (1, 10) - \"quantity\"\n 3. is/0 (1, 15) - \"are\"\n 4. property/0 (dead) (1, 21) - \"properties\"\n\n details\n\n 0. price/0 (1, 0) - \"price\"\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. list/0 (1, 6) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. quantity/0 (1, 10) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. is/0 (1, 15) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. property/0 (dead) (1, 21) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('price', 0)\n Context:\n {\n default: true\n marker: \n Operator(price/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n\n>>>>>>>>>>>>> Counter 2\n summary\n\n *0. price/1 (dead) (2, 0) - \"price\"\n 1. list/0 (1, 6) - \"and\"\n 2. quantity/0 (1, 10) - \"quantity\"\n 3. is/0 (1, 15) - \"are\"\n 4. property/0 (dead) (1, 21) - \"properties\"\n\n details\n\n *0. price/1 (dead) (2, 0) - \"price\"\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n 1. list/0 (1, 6) - \"and\"\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n 2. quantity/0 (1, 10) - \"quantity\"\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n 3. is/0 (1, 15) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 4. property/0 (dead) (1, 21) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('list', 0)\n Context:\n {\n default: true\n marker: \n Operator(list/0), passthrough\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n ]\n Evaluator:\n Bridge('{ ...next(operator), listable: true, isList: true, value: append(before, after) }')\n\n range: {'start': 6, 'end': 8}\n text: \"and\"\n word: \"and\"\n }\n\n\n>>>>>>>>>>>>> Counter 3\n summary\n\n *0. list/1 (3, 0) - \"price and quantity\"\n 1. is/0 (1, 15) - \"are\"\n 2. property/0 (dead) (1, 21) - \"properties\"\n\n details\n\n *0. list/1 (3, 0) - \"price and quantity\"\n {\n prioritized_by: [('list', 0)]\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['property', 'number', 'comparable', 'queryable', 'theAble', 'quantity', 'quantifier', 'listable']}\n\n range: {'start': 0, 'end': 17}\n text: \"price and quantity\"\n types: [\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n 1. is/0 (1, 15) - \"are\"\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n 2. property/0 (dead) (1, 21) - \"properties\"\n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n value: \"property\"\n word: \"properties\"\n }\n<<<<<<<<<<<<<\nNext Op (index=1) is ('is', 0)\n Context:\n {\n marker: \n Operator(is/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n Left Selector: [ListableType(Listable(Type('queryable')))]\n Right Selector: [ListableType(Listable(Type('queryable')))]\n ]\n Evaluator:\n Bridge('{ ...next(operator), one: { number: operator.number, ...before[0] }, two: after[0] }')\n\n number: \"many\"\n range: {'start': 19, 'end': 21}\n text: \"are\"\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 4\n summary\n\n *0. is/1 (4, 0) - \"price and quantity are properties\"\n\n details\n\n *0. is/1 (4, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n Variables:\n {'found_types': []}\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['property', 'number', 'comparable', 'queryable', 'theAble', 'quantity', 'quantifier', 'listable']}\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'quantity'\n, 'price'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\nNext Op (index=0) is ('is', 1)\n Context:\n {\n prioritized_by: [('is', 0)]\n marker: \n Operator(is/1)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n Variables:\n {'found_types': []}\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['property', 'number', 'comparable', 'queryable', 'theAble', 'quantity', 'quantifier', 'listable']}\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'quantity'\n, 'price'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n\n\n>>>>>>>>>>>>> Counter 5\n summary\n\n *0. is/2 (dead) (5, 0) - \"price and quantity are properties\"\n\n details\n\n *0. is/2 (dead) (5, 0) - \"price and quantity are properties\"\n {\n prioritized_by: [('is', 1)]\n dead: true\n marker: \n Operator(is/2)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n number: \"many\"\n one: \n {\n default: true\n isList: true\n listable: true\n marker: \n Operator(list/1), passthrough\n Selectors:\n [\n Selector, passthrough\n Bridge('{ ...operator, value: append(before, operator.value) }')\n , same/()\n Left Selector: [And([\"ListableType(Listable(Type(variable: 'type')))\", \"Listable(Unify(Property(('context', 'instance')), Property(('variables', 'instance'))))\"])]\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...operator, value: append(before, operator.value) }')\n Variables:\n {'found_types': ['quantity', 'price'], 'type': ['property', 'number', 'comparable', 'queryable', 'theAble', 'quantity', 'quantifier', 'listable']}\n\n number: \"many\"\n range: {'start': 0, 'end': 32}\n text: \"price and quantity\"\n types: [\n 'quantity'\n, 'price'\n ]\n value: [\n {\n prioritized_by: [('price', 0)]\n dead: true\n default: true\n marker: \n Operator(price/1)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 0, 'end': 4}\n text: \"price\"\n value: \"price\"\n word: \"price\"\n }\n\n {\n default: true\n marker: \n Operator(quantity/0)\n Selectors:\n [\n Selector\n Bridge('{ ...next(operator) }')\n Left Selector: []\n Right Selector: []\n ]\n Evaluator:\n Bridge('{ ...next(operator) }')\n\n range: {'start': 10, 'end': 17}\n text: \"quantity\"\n value: \"quantity\"\n word: \"quantity\"\n }\n ]\n word: \"and\"\n }\n\n range: {'start': 0, 'end': 32}\n text: \"price and quantity are properties\"\n two: \n {\n dead: true\n marker: \n Operator(property/0)\n Selectors:\n [\n Selector\n Left Selector: []\n Right Selector: []\n ]\n\n range: {'start': 23, 'end': 32}\n text: \"properties\"\n types: [\n 'property'\n ]\n value: \"property\"\n word: \"properties\"\n }\n\n word: \"are\"\n }\n<<<<<<<<<<<<<\n",
|
1052
1052
|
"contexts": [
|
1053
1053
|
{
|
1054
1054
|
"number": "many",
|
package/package.json
CHANGED
@@ -341,8 +341,8 @@
|
|
341
341
|
"scriptjs": "^2.5.9",
|
342
342
|
"table": "^6.7.1",
|
343
343
|
"uuid": "^9.0.0",
|
344
|
-
"theprogrammablemind_4wp": "9.3.0-beta.
|
344
|
+
"theprogrammablemind_4wp": "9.3.0-beta.12"
|
345
345
|
},
|
346
|
-
"version": "9.3.0-beta.
|
346
|
+
"version": "9.3.0-beta.12",
|
347
347
|
"license": "UNLICENSED"
|
348
348
|
}
|