tpmkms_4wp 9.4.2 → 9.4.3-beta.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.
- package/common/asking.js +4 -0
- package/common/colors.instance.json +0 -28
- package/common/crew.instance.json +0 -36
- package/common/dates.instance.json +0 -84
- package/common/edible.instance.json +0 -56
- package/common/fastfood.instance.json +144 -172
- package/common/pipboy.instance.json +0 -84
- package/common/reminders.instance.json +57 -24
- package/common/reminders.js +69 -23
- package/common/reminders.test.json +7836 -0
- package/common/reports.instance.json +2 -2
- package/common/wp.instance.json +0 -56
- package/package.json +2 -2
@@ -1713,20 +1713,6 @@
|
|
1713
1713
|
0
|
1714
1714
|
]
|
1715
1715
|
],
|
1716
|
-
[
|
1717
|
-
[
|
1718
|
-
"is",
|
1719
|
-
0
|
1720
|
-
],
|
1721
|
-
[
|
1722
|
-
"list",
|
1723
|
-
1
|
1724
|
-
],
|
1725
|
-
[
|
1726
|
-
"unknown",
|
1727
|
-
0
|
1728
|
-
]
|
1729
|
-
],
|
1730
1716
|
[
|
1731
1717
|
[
|
1732
1718
|
"is",
|
@@ -6914,20 +6900,6 @@
|
|
6914
6900
|
0
|
6915
6901
|
]
|
6916
6902
|
],
|
6917
|
-
[
|
6918
|
-
[
|
6919
|
-
"is",
|
6920
|
-
0
|
6921
|
-
],
|
6922
|
-
[
|
6923
|
-
"list",
|
6924
|
-
1
|
6925
|
-
],
|
6926
|
-
[
|
6927
|
-
"unknown",
|
6928
|
-
0
|
6929
|
-
]
|
6930
|
-
],
|
6931
6903
|
[
|
6932
6904
|
[
|
6933
6905
|
"is",
|
@@ -10210,20 +10182,6 @@
|
|
10210
10182
|
0
|
10211
10183
|
]
|
10212
10184
|
],
|
10213
|
-
[
|
10214
|
-
[
|
10215
|
-
"is",
|
10216
|
-
0
|
10217
|
-
],
|
10218
|
-
[
|
10219
|
-
"list",
|
10220
|
-
1
|
10221
|
-
],
|
10222
|
-
[
|
10223
|
-
"unknown",
|
10224
|
-
0
|
10225
|
-
]
|
10226
|
-
],
|
10227
10185
|
[
|
10228
10186
|
[
|
10229
10187
|
"is",
|
@@ -35655,48 +35613,6 @@
|
|
35655
35613
|
0
|
35656
35614
|
]
|
35657
35615
|
],
|
35658
|
-
[
|
35659
|
-
[
|
35660
|
-
"is",
|
35661
|
-
0
|
35662
|
-
],
|
35663
|
-
[
|
35664
|
-
"list",
|
35665
|
-
1
|
35666
|
-
],
|
35667
|
-
[
|
35668
|
-
"unknown",
|
35669
|
-
0
|
35670
|
-
]
|
35671
|
-
],
|
35672
|
-
[
|
35673
|
-
[
|
35674
|
-
"is",
|
35675
|
-
0
|
35676
|
-
],
|
35677
|
-
[
|
35678
|
-
"list",
|
35679
|
-
1
|
35680
|
-
],
|
35681
|
-
[
|
35682
|
-
"unknown",
|
35683
|
-
0
|
35684
|
-
]
|
35685
|
-
],
|
35686
|
-
[
|
35687
|
-
[
|
35688
|
-
"is",
|
35689
|
-
0
|
35690
|
-
],
|
35691
|
-
[
|
35692
|
-
"list",
|
35693
|
-
1
|
35694
|
-
],
|
35695
|
-
[
|
35696
|
-
"unknown",
|
35697
|
-
0
|
35698
|
-
]
|
35699
|
-
],
|
35700
35616
|
[
|
35701
35617
|
[
|
35702
35618
|
"is",
|
@@ -12,7 +12,8 @@
|
|
12
12
|
"([remind:withDateBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector))",
|
13
13
|
"([remind:withDateFirstBridge] (remindable/*) (dateTimeSelector) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)",
|
14
14
|
"([remind:withDateAndTimeBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector) (atTime))",
|
15
|
-
"([remindResponse] (
|
15
|
+
"([remindResponse] (complete !== true && !@<= 'dateTimeSelector' && !@<= 'inAddition' )+ (dateTimeSelector))",
|
16
|
+
"([remindResponseOnly] (context.complete != true && !@<= day_dates && !@<= 'dateTimeSelector' && !@<=remind)+)",
|
16
17
|
"([show] ([reminders]))",
|
17
18
|
"([delete_reminders|delete,cancel] (number/*))",
|
18
19
|
"([add] (remindable/*))",
|
@@ -32,7 +33,7 @@
|
|
32
33
|
"isA": [
|
33
34
|
"verb"
|
34
35
|
],
|
35
|
-
"bridge": "{ ...next(operator), arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
36
|
+
"bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
36
37
|
"semantic": "({api, context}) => {\n api.addUser(api.contextToWho(context.arg))\n }"
|
37
38
|
},
|
38
39
|
{
|
@@ -44,7 +45,7 @@
|
|
44
45
|
"isA": [
|
45
46
|
"verb"
|
46
47
|
],
|
47
|
-
"bridge": "{ ...next(operator), arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
48
|
+
"bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
48
49
|
"semantic": "({api, context}) => {\n api.removeUser(api.contextToWho(context.arg))\n }"
|
49
50
|
},
|
50
51
|
{
|
@@ -53,7 +54,7 @@
|
|
53
54
|
"verb"
|
54
55
|
],
|
55
56
|
"development": true,
|
56
|
-
"bridge": "{ ...next(operator), flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
57
|
+
"bridge": "{ ...next(operator), complete: true, flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
57
58
|
"semantic": "async ({api, context}) => {\n const name = context.arg.map( (word) => word.text ).join(' ')\n await api.addRemindable(name)\n }"
|
58
59
|
},
|
59
60
|
{
|
@@ -62,14 +63,30 @@
|
|
62
63
|
"listable"
|
63
64
|
]
|
64
65
|
},
|
66
|
+
{
|
67
|
+
"id": "remindResponseOnly",
|
68
|
+
"isA": [
|
69
|
+
"verb"
|
70
|
+
],
|
71
|
+
"convolution": true,
|
72
|
+
"disabled": true,
|
73
|
+
"bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], interpolate: '${reminder}' }",
|
74
|
+
"semantic": "async ({context, api, gp, gsp}) => {\n debugger\n const text = await gsp(context.reminder.slice(0));\n const update = { text }\n if (context.date) {\n update.dateTimeSelector = context.date\n update.dateTimeSelectorText = await gp(context.date)\n }\n await api.update(update)\n }"
|
75
|
+
},
|
65
76
|
{
|
66
77
|
"id": "remindResponse",
|
78
|
+
"before": [
|
79
|
+
"remindResponseOnly"
|
80
|
+
],
|
67
81
|
"isA": [
|
68
82
|
"verb"
|
69
83
|
],
|
70
84
|
"convolution": true,
|
71
85
|
"disabled": true,
|
72
|
-
"
|
86
|
+
"optional": {
|
87
|
+
"2": {}
|
88
|
+
},
|
89
|
+
"bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], date: after[1], interpolate: '${reminder} ${date}' }",
|
73
90
|
"semantic": "async ({context, api, gp, gsp}) => {\n const text = await gsp(context.reminder.slice(0));\n const update = { text }\n if (context.date) {\n update.dateTimeSelector = context.date\n update.dateTimeSelectorText = await gp(context.date)\n }\n await api.update(update)\n }"
|
74
91
|
},
|
75
92
|
{
|
@@ -83,11 +100,11 @@
|
|
83
100
|
"remindable"
|
84
101
|
]
|
85
102
|
],
|
86
|
-
"bridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
87
|
-
"justWhoBridge": "{ ...next(operator), bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }",
|
88
|
-
"withDateBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
89
|
-
"withDateFirstBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }",
|
90
|
-
"withDateAndTimeBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
103
|
+
"bridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
104
|
+
"justWhoBridge": "{ ...next(operator), complete: true, bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }",
|
105
|
+
"withDateBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
106
|
+
"withDateFirstBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }",
|
107
|
+
"withDateAndTimeBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
91
108
|
"semantics": "[object Object]",
|
92
109
|
"semantic": "async ({ask, api, gsp, gp, context}) => {\n const who = api.contextToWho(context.who)\n let text;\n if (context.reminder) {\n text = await gsp(context.reminder.slice(1));\n }\n const reminder = { text, dateTimeSelector: context.date, who }\n if (context.date) {\n reminder.dateTimeSelector = context.date\n reminder.dateTimeSelectorText = await gp(context.date)\n }\n // await api.instantiate(reminder)\n await api.add(reminder)\n reminder.cleanUp = ask([\n query('missingReminder', reminder.id),\n query('missingDate', reminder.id),\n ])\n }"
|
93
110
|
},
|
@@ -102,7 +119,7 @@
|
|
102
119
|
"isA": [
|
103
120
|
"verb"
|
104
121
|
],
|
105
|
-
"bridge": "{ ...next(operator), operator: operator, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
122
|
+
"bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
106
123
|
"semantic": "({context, api, verbatim}) => {\n verbatim(api.show())\n }"
|
107
124
|
},
|
108
125
|
{
|
@@ -110,7 +127,7 @@
|
|
110
127
|
"isA": [
|
111
128
|
"verb"
|
112
129
|
],
|
113
|
-
"bridge": "{ ...next(operator), operator: operator, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
130
|
+
"bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
114
131
|
"semantic": "({context, api, verbatim}) => {\n const s = api.delete_reminder(context.reminders.value)\n if (s) {\n verbatim(s)\n }\n }"
|
115
132
|
}
|
116
133
|
]
|
@@ -130,7 +147,8 @@
|
|
130
147
|
"([remind:withDateBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector))",
|
131
148
|
"([remind:withDateFirstBridge] (remindable/*) (dateTimeSelector) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)",
|
132
149
|
"([remind:withDateAndTimeBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector) (atTime))",
|
133
|
-
"([remindResponse] (
|
150
|
+
"([remindResponse] (complete !== true && !@<= 'dateTimeSelector' && !@<= 'inAddition' )+ (dateTimeSelector))",
|
151
|
+
"([remindResponseOnly] (context.complete != true && !@<= day_dates && !@<= 'dateTimeSelector' && !@<=remind)+)",
|
134
152
|
"([show] ([reminders]))",
|
135
153
|
"([delete_reminders|delete,cancel] (number/*))",
|
136
154
|
"([add] (remindable/*))",
|
@@ -150,7 +168,7 @@
|
|
150
168
|
"isA": [
|
151
169
|
"verb"
|
152
170
|
],
|
153
|
-
"bridge": "{ ...next(operator), arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }"
|
171
|
+
"bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }"
|
154
172
|
},
|
155
173
|
{
|
156
174
|
"id": "remove",
|
@@ -161,7 +179,7 @@
|
|
161
179
|
"isA": [
|
162
180
|
"verb"
|
163
181
|
],
|
164
|
-
"bridge": "{ ...next(operator), arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }"
|
182
|
+
"bridge": "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }"
|
165
183
|
},
|
166
184
|
{
|
167
185
|
"id": "addRemindable",
|
@@ -169,7 +187,7 @@
|
|
169
187
|
"verb"
|
170
188
|
],
|
171
189
|
"development": true,
|
172
|
-
"bridge": "{ ...next(operator), flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }"
|
190
|
+
"bridge": "{ ...next(operator), complete: true, flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }"
|
173
191
|
},
|
174
192
|
{
|
175
193
|
"id": "remindable",
|
@@ -177,14 +195,29 @@
|
|
177
195
|
"listable"
|
178
196
|
]
|
179
197
|
},
|
198
|
+
{
|
199
|
+
"id": "remindResponseOnly",
|
200
|
+
"isA": [
|
201
|
+
"verb"
|
202
|
+
],
|
203
|
+
"convolution": true,
|
204
|
+
"disabled": true,
|
205
|
+
"bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], interpolate: '${reminder}' }"
|
206
|
+
},
|
180
207
|
{
|
181
208
|
"id": "remindResponse",
|
209
|
+
"before": [
|
210
|
+
"remindResponseOnly"
|
211
|
+
],
|
182
212
|
"isA": [
|
183
213
|
"verb"
|
184
214
|
],
|
185
215
|
"convolution": true,
|
186
216
|
"disabled": true,
|
187
|
-
"
|
217
|
+
"optional": {
|
218
|
+
"2": {}
|
219
|
+
},
|
220
|
+
"bridge": "{ ...next(operator), complete: true, operator: operator, reminder: after[0], date: after[1], interpolate: '${reminder} ${date}' }"
|
188
221
|
},
|
189
222
|
{
|
190
223
|
"id": "remind",
|
@@ -197,11 +230,11 @@
|
|
197
230
|
"remindable"
|
198
231
|
]
|
199
232
|
],
|
200
|
-
"bridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
201
|
-
"justWhoBridge": "{ ...next(operator), bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }",
|
202
|
-
"withDateBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
203
|
-
"withDateFirstBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }",
|
204
|
-
"withDateAndTimeBridge": "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
233
|
+
"bridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
234
|
+
"justWhoBridge": "{ ...next(operator), complete: true, bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }",
|
235
|
+
"withDateBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
236
|
+
"withDateFirstBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }",
|
237
|
+
"withDateAndTimeBridge": "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
205
238
|
"semantics": [
|
206
239
|
{}
|
207
240
|
]
|
@@ -217,14 +250,14 @@
|
|
217
250
|
"isA": [
|
218
251
|
"verb"
|
219
252
|
],
|
220
|
-
"bridge": "{ ...next(operator), operator: operator, reminders: after[0], interpolate: '${operator} ${reminders}' }"
|
253
|
+
"bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }"
|
221
254
|
},
|
222
255
|
{
|
223
256
|
"id": "delete_reminders",
|
224
257
|
"isA": [
|
225
258
|
"verb"
|
226
259
|
],
|
227
|
-
"bridge": "{ ...next(operator), operator: operator, reminders: after[0], interpolate: '${operator} ${reminders}' }"
|
260
|
+
"bridge": "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }"
|
228
261
|
}
|
229
262
|
]
|
230
263
|
}
|
package/common/reminders.js
CHANGED
@@ -41,30 +41,53 @@ const query = (missing, reminder_id) => {
|
|
41
41
|
who = item.who.text
|
42
42
|
}
|
43
43
|
}
|
44
|
-
|
45
|
-
|
44
|
+
|
45
|
+
if (item.missingDate && item.missingReminder) {
|
46
|
+
enable(['remindResponse', 0])
|
47
|
+
enable(['remindResponseOnly', 0])
|
48
|
+
} else if (item.missingReminder) {
|
49
|
+
enable(['remindResponseOnly', 0])
|
46
50
|
}
|
47
|
-
|
51
|
+
|
52
|
+
/*
|
53
|
+
if (item.missingDate && item.missingReminder) {
|
48
54
|
enable(['remindResponse', 0])
|
55
|
+
}
|
56
|
+
*/
|
57
|
+
if (item.missingDate && missing == 'missingDate') {
|
58
|
+
return `When should I remind ${who} to ${item.text}`
|
59
|
+
}
|
60
|
+
if (item.missingReminder && missing == 'missingReminder') {
|
61
|
+
// enable(['remindResponse', 0])
|
49
62
|
return `What should I remind ${who} to do?`
|
50
63
|
}
|
51
64
|
},
|
52
65
|
|
53
|
-
matchr: ({ isA, api, context }) => {
|
66
|
+
matchr: async ({ isA, api, context }) => {
|
54
67
|
if (context.evaluate || context.isControl || context.isResponse) {
|
55
68
|
return false
|
56
69
|
}
|
57
70
|
const gotADate = ((isA(context.marker, 'onDateValue_dates') || isA(context.marker, 'dateTimeSelector')) && api.missing(missing, reminder_id))
|
58
71
|
if (missing == 'missingDate') {
|
59
72
|
return gotADate
|
60
|
-
} else {
|
61
|
-
|
73
|
+
} else if (context.marker == 'remindResponseOnly' && missing == 'missingReminder') {
|
74
|
+
return true
|
62
75
|
}
|
63
76
|
return false
|
64
77
|
},
|
65
|
-
applyr: async ({ context, api, gp }) => {
|
66
|
-
|
67
|
-
|
78
|
+
applyr: async ({ context, api, gp, gsp }) => {
|
79
|
+
if (context.marker == 'remindResponseOnly') {
|
80
|
+
console.log(JSON.stringify(context, null, 2))
|
81
|
+
let text;
|
82
|
+
if (context.reminder) {
|
83
|
+
text = await gsp(context.reminder.slice(0));
|
84
|
+
}
|
85
|
+
const item = api.missing(missing, reminder_id)
|
86
|
+
await api.update({ id: item.id, text })
|
87
|
+
} else {
|
88
|
+
const item = api.missing(missing, reminder_id)
|
89
|
+
await api.update({ id: item.id, dateTimeSelector: context, dateTimeSelectorText: await gp(context) })
|
90
|
+
}
|
68
91
|
}
|
69
92
|
}
|
70
93
|
}
|
@@ -140,10 +163,10 @@ class API {
|
|
140
163
|
missing(what, reminder_id) {
|
141
164
|
const reminder = this.reminder(reminder_id)
|
142
165
|
if (what == 'missingReminder' && !reminder.text) {
|
143
|
-
return { when: true, who: reminder.who, text: reminder.text, id: reminder.id, missingReminder: true }
|
166
|
+
return { when: true, who: reminder.who, text: reminder.text, id: reminder.id, missingReminder: true, missingDate: !reminder.dateTimeSelector }
|
144
167
|
}
|
145
168
|
if (what == 'missingDate' && !reminder.dateTimeSelector) {
|
146
|
-
return { when: true, who: reminder.who, text: reminder.text, id: reminder.id, missingDate: true }
|
169
|
+
return { when: true, who: reminder.who, text: reminder.text, id: reminder.id, missingDate: true, missingReminder: !reminder.missingReminder }
|
147
170
|
}
|
148
171
|
}
|
149
172
|
|
@@ -224,7 +247,10 @@ const template = {
|
|
224
247
|
"([remind:withDateBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector))",
|
225
248
|
"([remind:withDateFirstBridge] (remindable/*) (dateTimeSelector) (!@<= 'dateTimeSelector' && !@<= 'inAddition')*)",
|
226
249
|
"([remind:withDateAndTimeBridge] (remindable/*) (!@<= 'dateTimeSelector' && !@<= 'inAddition')* (dateTimeSelector) (atTime))",
|
227
|
-
|
250
|
+
|
251
|
+
"([remindResponse] (complete !== true && !@<= 'dateTimeSelector' && !@<= 'inAddition' )+ (dateTimeSelector))",
|
252
|
+
"([remindResponseOnly] (context.complete != true && !@<= day_dates && !@<= 'dateTimeSelector' && !@<=remind)+)",
|
253
|
+
|
228
254
|
"([show] ([reminders]))",
|
229
255
|
"([delete_reminders|delete,cancel] (number/*))",
|
230
256
|
"([add] (remindable/*))",
|
@@ -240,7 +266,7 @@ const template = {
|
|
240
266
|
{
|
241
267
|
id: 'add',
|
242
268
|
isA: ['verb'],
|
243
|
-
bridge: "{ ...next(operator), arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
269
|
+
bridge: "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
244
270
|
semantic: ({api, context}) => {
|
245
271
|
api.addUser(api.contextToWho(context.arg))
|
246
272
|
}
|
@@ -249,7 +275,7 @@ const template = {
|
|
249
275
|
id: 'remove',
|
250
276
|
words: ['delete', 'remove'],
|
251
277
|
isA: ['verb'],
|
252
|
-
bridge: "{ ...next(operator), arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
278
|
+
bridge: "{ ...next(operator), complete: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
253
279
|
semantic: ({api, context}) => {
|
254
280
|
api.removeUser(api.contextToWho(context.arg))
|
255
281
|
}
|
@@ -258,7 +284,7 @@ const template = {
|
|
258
284
|
id: 'addRemindable',
|
259
285
|
isA: ['verb'],
|
260
286
|
development: true,
|
261
|
-
bridge: "{ ...next(operator), flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
287
|
+
bridge: "{ ...next(operator), complete: true, flatten: true, arg: after[0], operator: operator, interpolate: '${operator} ${arg}' }",
|
262
288
|
semantic: async ({api, context}) => {
|
263
289
|
const name = context.arg.map( (word) => word.text ).join(' ')
|
264
290
|
await api.addRemindable(name)
|
@@ -268,12 +294,32 @@ const template = {
|
|
268
294
|
id: 'remindable',
|
269
295
|
isA: ['listable'],
|
270
296
|
},
|
297
|
+
{
|
298
|
+
id: 'remindResponseOnly',
|
299
|
+
isA: ['verb'],
|
300
|
+
convolution: true,
|
301
|
+
disabled: true,
|
302
|
+
bridge: "{ ...next(operator), complete: true, operator: operator, reminder: after[0], interpolate: '${reminder}' }",
|
303
|
+
semantic: async ({context, api, gp, gsp}) => {
|
304
|
+
const text = await gsp(context.reminder.slice(0));
|
305
|
+
const update = { text }
|
306
|
+
if (context.date) {
|
307
|
+
update.dateTimeSelector = context.date
|
308
|
+
update.dateTimeSelectorText = await gp(context.date)
|
309
|
+
}
|
310
|
+
await api.update(update)
|
311
|
+
}
|
312
|
+
},
|
271
313
|
{
|
272
314
|
id: 'remindResponse',
|
315
|
+
before: ['remindResponseOnly'],
|
273
316
|
isA: ['verb'],
|
274
317
|
convolution: true,
|
275
318
|
disabled: true,
|
276
|
-
|
319
|
+
optional: {
|
320
|
+
"2": { },
|
321
|
+
},
|
322
|
+
bridge: "{ ...next(operator), complete: true, operator: operator, reminder: after[0], date: after[1], interpolate: '${reminder} ${date}' }",
|
277
323
|
semantic: async ({context, api, gp, gsp}) => {
|
278
324
|
const text = await gsp(context.reminder.slice(0));
|
279
325
|
const update = { text }
|
@@ -288,11 +334,11 @@ const template = {
|
|
288
334
|
id: 'remind',
|
289
335
|
isA: ['verb'],
|
290
336
|
localHierarchy: [['self', 'remindable']],
|
291
|
-
bridge: "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
292
|
-
justWhoBridge: "{ ...next(operator), bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }",
|
293
|
-
withDateBridge: "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
294
|
-
withDateFirstBridge: "{ ...next(operator), operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }",
|
295
|
-
withDateAndTimeBridge: "{ ...next(operator), operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
337
|
+
bridge: "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], interpolate: '${operator} ${who} ${reminder}' }",
|
338
|
+
justWhoBridge: "{ ...next(operator), complete: true, bridge: 'justWhoBridge', operator: operator, who: after[0], interpolate: '${operator} ${who}' }",
|
339
|
+
withDateBridge: "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], interpolate: '${operator} ${who} ${reminder} ${date}' }",
|
340
|
+
withDateFirstBridge: "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[2], date: after[1], interpolate: '${operator} ${who} ${date} ${reminder}' }",
|
341
|
+
withDateAndTimeBridge: "{ ...next(operator), complete: true, operator: operator, who: after[0], reminder: after[1], date: after[2], time: after[3], interpolate: '${operator} ${who} ${reminder} ${date} ${time}' }",
|
296
342
|
semantics: [
|
297
343
|
{
|
298
344
|
match: ({context}) => context.marker == 'remind' && context.inAddition,
|
@@ -327,7 +373,7 @@ const template = {
|
|
327
373
|
{
|
328
374
|
id: 'show',
|
329
375
|
isA: ['verb'],
|
330
|
-
bridge: "{ ...next(operator), operator: operator, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
376
|
+
bridge: "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
331
377
|
semantic: ({context, api, verbatim}) => {
|
332
378
|
verbatim(api.show())
|
333
379
|
}
|
@@ -335,7 +381,7 @@ const template = {
|
|
335
381
|
{
|
336
382
|
id: 'delete_reminders',
|
337
383
|
isA: ['verb'],
|
338
|
-
bridge: "{ ...next(operator), operator: operator, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
384
|
+
bridge: "{ ...next(operator), operator: operator, complete: true, reminders: after[0], interpolate: '${operator} ${reminders}' }",
|
339
385
|
semantic: ({context, api, verbatim}) => {
|
340
386
|
const s = api.delete_reminder(context.reminders.value)
|
341
387
|
if (s) {
|