tpmkms_4wp 8.0.0-beta.4 → 8.0.0-beta.41
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/animals.instance.json +2855 -1363
- package/common/animals.js +2 -2
- package/common/articles.js +108 -0
- package/common/articles.test.json +310 -0
- package/common/avatar.js +2 -2
- package/common/characters.js +9 -11
- package/common/colors.instance.json +6980 -3523
- package/common/colors.js +2 -2
- package/common/colors.test.json +345 -780
- package/common/comparable.js +2 -15
- package/common/concept.js +17 -11
- package/common/countable.js +5 -5
- package/common/crew.instance.json +13032 -6570
- package/common/crew.js +4 -4
- package/common/crew.test.json +714 -452
- package/common/currency.js +7 -7
- package/common/dialogues.js +117 -238
- package/common/dimension.instance.json +265 -264
- package/common/dimension.js +13 -13
- package/common/dimension.test.json +446 -1640
- package/common/edible.instance.json +19910 -9988
- package/common/edible.js +2 -2
- package/common/emotions.instance.json +146 -128
- package/common/emotions.js +4 -4
- package/common/evaluate.instance.json +2 -0
- package/common/evaluate.js +55 -0
- package/common/evaluate.test.json +574 -0
- package/common/events.js +6 -6
- package/common/fastfood.instance.json +221110 -111293
- package/common/fastfood.js +25 -25
- package/common/formulas.instance.json +241 -255
- package/common/formulas.js +14 -14
- package/common/gdefaults.js +19 -19
- package/common/help.js +4 -4
- package/common/help.test.json +22 -22
- package/common/helpers/concept.js +9 -6
- package/common/helpers/dialogues.js +2 -3
- package/common/helpers/properties.js +48 -58
- package/common/helpers.js +1 -1
- package/common/hierarchy.js +12 -16
- package/common/javascript.js +8 -8
- package/common/kirk.instance.json +583 -289
- package/common/kirk.js +2 -2
- package/common/length.instance.json +5530 -4754
- package/common/length.js +2 -2
- package/common/listener.js +54 -0
- package/common/listener.test.json +104 -0
- package/common/math.instance.json +176 -1168
- package/common/math.js +11 -11
- package/common/meta.js +22 -29
- package/common/nameable.instance.json +2 -0
- package/common/nameable.js +142 -0
- package/common/nameable.test.json +2121 -0
- package/common/negation.instance.json +2 -0
- package/common/negation.js +38 -0
- package/common/negation.test.json +308 -0
- package/common/numbers.js +3 -3
- package/common/ordering.instance.json +340 -228
- package/common/ordering.js +5 -5
- package/common/people.instance.json +2066 -1014
- package/common/people.js +4 -5
- package/common/percentages.instance.json +2 -0
- package/common/percentages.js +57 -0
- package/common/percentages.test.json +751 -0
- package/common/pipboy.instance.json +7974 -6300
- package/common/pipboy.js +29 -32
- package/common/pokemon.instance.json +4207 -2069
- package/common/pokemon.js +4 -4
- package/common/pos.js +1 -1
- package/common/pressure.instance.json +1341 -1189
- package/common/pressure.js +2 -2
- package/common/properties.instance.json +130 -60
- package/common/properties.js +54 -125
- package/common/punctuation.js +2 -2
- package/common/reports.instance.json +595 -557
- package/common/reports.js +58 -76
- package/common/scorekeeper.js +14 -22
- package/common/sdefaults.js +13 -3
- package/common/sizeable.js +2 -2
- package/common/spock.instance.json +583 -289
- package/common/spock.js +2 -2
- package/common/stgame.js +13 -9
- package/common/stm.js +162 -19
- package/common/stm.test.json +1734 -1
- package/common/tell.js +10 -10
- package/common/temperature.instance.json +1484 -1204
- package/common/temperature.js +2 -2
- package/common/tester.js +2 -2
- package/common/testing.js +5 -5
- package/common/time.js +7 -7
- package/common/tokenize.js +1 -1
- package/common/ui.instance.json +257 -258
- package/common/ui.js +9 -9
- package/common/weight.instance.json +5212 -4233
- package/common/weight.js +2 -2
- package/common/yesno.js +1 -1
- package/main.js +59 -46
- package/package.json +27 -6
package/common/spock.js
CHANGED
package/common/stgame.js
CHANGED
@@ -62,22 +62,26 @@ class SpockAPI {
|
|
62
62
|
}
|
63
63
|
|
64
64
|
|
65
|
-
const createConfig = () => {
|
66
|
-
const characters = createCharacters()
|
67
|
-
const kirk = createKirk()
|
68
|
-
const spock = createSpock()
|
69
|
-
characters.api = new KirkAPI(kirk);
|
70
|
-
characters.api = new SpockAPI(spock);
|
65
|
+
const createConfig = async () => {
|
71
66
|
const config = new Config({
|
72
67
|
name: 'stgame',
|
73
68
|
operators: [ "([a])" ],
|
74
69
|
bridges: [ { id: 'a', level: 0, bridge: "{ ...next(operator) }" } ],
|
75
70
|
words: {"?": [{"id": "a", "initial": "{}" }]},
|
76
71
|
}, module)
|
72
|
+
|
73
|
+
const createCharactersHelper = async () => {
|
74
|
+
const characters = await createCharacters()
|
75
|
+
const kirk = await createKirk()
|
76
|
+
const spock = await createSpock()
|
77
|
+
await characters.setApi(new KirkAPI(kirk))
|
78
|
+
await characters.setApi(new SpockAPI(spock))
|
79
|
+
return characters
|
80
|
+
}
|
77
81
|
config.stop_auto_rebuild()
|
78
|
-
config.api
|
79
|
-
config.add(
|
80
|
-
config.restart_auto_rebuild()
|
82
|
+
await config.setApi(api)
|
83
|
+
await config.add(createCharactersHelper)
|
84
|
+
await config.restart_auto_rebuild()
|
81
85
|
return config
|
82
86
|
}
|
83
87
|
|
package/common/stm.js
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
const { Config, knowledgeModule, where } = require('./runtime').theprogrammablemind
|
2
2
|
const { defaultContextCheck } = require('./helpers')
|
3
|
+
const helpers = require('./helpers')
|
4
|
+
const articles = require('./articles')
|
5
|
+
const evaluate = require('./evaluate')
|
3
6
|
const stm_tests = require('./stm.test.json')
|
4
7
|
|
5
8
|
class API {
|
@@ -10,6 +13,11 @@ class API {
|
|
10
13
|
]
|
11
14
|
this._objects.mentioned = []
|
12
15
|
this._objects.variables = {}
|
16
|
+
this.idCounter = 0
|
17
|
+
}
|
18
|
+
|
19
|
+
getId() {
|
20
|
+
return ++this.idCounter
|
13
21
|
}
|
14
22
|
|
15
23
|
addIsA(isA) {
|
@@ -27,7 +35,11 @@ class API {
|
|
27
35
|
return false
|
28
36
|
}
|
29
37
|
|
30
|
-
|
38
|
+
getByType(type) {
|
39
|
+
return this._objects.mentioned.filter( (context) => this.isA(context.marker, type) )
|
40
|
+
}
|
41
|
+
|
42
|
+
mentioned({ context:concept, value=null } = {}) {
|
31
43
|
// TODO value should perhaps have been called id as in concept id and then value could be value
|
32
44
|
if (value) {
|
33
45
|
concept = { ...concept, pullFromContext: false }
|
@@ -43,49 +55,112 @@ class API {
|
|
43
55
|
concept.value = value
|
44
56
|
}
|
45
57
|
concept.fromSTM = true
|
58
|
+
if (!concept.stm) {
|
59
|
+
concept.stm = {}
|
60
|
+
}
|
61
|
+
if (!concept.stm.id) {
|
62
|
+
concept.stm.id = this.getId()
|
63
|
+
}
|
64
|
+
this._objects.mentioned = this._objects.mentioned.filter( (context) => context.stm && context.stm.id != concept.stm.id )
|
46
65
|
this._objects.mentioned.unshift(concept)
|
47
66
|
}
|
48
67
|
|
49
|
-
mentions(context, useHierarchy=true) {
|
68
|
+
mentions({ context, useHierarchy=true, all, condition = (() => true) } = {}) {
|
69
|
+
const findPrevious = !!context.stm_previous
|
70
|
+
const forAll = []
|
71
|
+
const addForAll = (context) => {
|
72
|
+
if (!forAll.find( (c) => c.stm.id == context.stm.id)) {
|
73
|
+
forAll.push(context)
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
50
77
|
// care about value first
|
78
|
+
let findCounter = 0
|
51
79
|
for (let m of this._objects.mentioned) {
|
52
|
-
if (context.value && context.value == m.marker) {
|
53
|
-
|
80
|
+
if (context.value && (context.value == m.marker || context.value == m.value)) {
|
81
|
+
findCounter += 1
|
82
|
+
if (findPrevious && findCounter < 2) {
|
83
|
+
continue
|
84
|
+
}
|
85
|
+
if (condition()) {
|
86
|
+
if (all) {
|
87
|
+
allForAll(m)
|
88
|
+
} else {
|
89
|
+
return m
|
90
|
+
}
|
91
|
+
}
|
54
92
|
}
|
55
93
|
}
|
56
94
|
|
57
95
|
if (!useHierarchy) {
|
58
96
|
return
|
59
97
|
}
|
98
|
+
|
60
99
|
// care about marker second
|
100
|
+
findCounter = 0
|
61
101
|
for (let m of this._objects.mentioned) {
|
62
102
|
if (context.marker != 'unknown' && this.isA(m.marker, context.marker)) {
|
63
|
-
|
103
|
+
findCounter += 1
|
104
|
+
if (findPrevious && findCounter < 2) {
|
105
|
+
continue
|
106
|
+
}
|
107
|
+
if (condition(m)) {
|
108
|
+
if (all) {
|
109
|
+
addForAll(m)
|
110
|
+
} else {
|
111
|
+
return m
|
112
|
+
}
|
113
|
+
}
|
64
114
|
}
|
65
115
|
// if (context.types && context.types.includes(m.marker)) {
|
66
116
|
if (context.types) {
|
67
117
|
for (let parent of context.types) {
|
68
118
|
if (parent != 'unknown' && this.isA(m.marker, parent)) {
|
69
|
-
|
119
|
+
findCounter += 1
|
120
|
+
if (findPrevious && findCounter < 2) {
|
121
|
+
continue
|
122
|
+
}
|
123
|
+
if (condition(m)) {
|
124
|
+
if (all) {
|
125
|
+
addForAll(m)
|
126
|
+
} else {
|
127
|
+
return m
|
128
|
+
}
|
129
|
+
}
|
70
130
|
}
|
71
131
|
}
|
72
132
|
}
|
73
133
|
}
|
74
134
|
|
135
|
+
findCounter = 0
|
75
136
|
if (context.types && context.types.length == 1) {
|
76
137
|
for (let m of this._objects.mentioned) {
|
77
138
|
if (context.unknown) {
|
78
|
-
|
139
|
+
findCounter += 1
|
140
|
+
if (findPrevious && findCounter < 2) {
|
141
|
+
continue
|
142
|
+
}
|
143
|
+
if (condition(m)) {
|
144
|
+
if (all) {
|
145
|
+
addForAll(m)
|
146
|
+
} else {
|
147
|
+
return m
|
148
|
+
}
|
149
|
+
}
|
79
150
|
}
|
80
151
|
}
|
81
152
|
}
|
153
|
+
|
154
|
+
if (all) {
|
155
|
+
return forAll
|
156
|
+
}
|
82
157
|
}
|
83
158
|
|
84
159
|
getVariable(name) {
|
85
160
|
if (!name) {
|
86
161
|
return
|
87
162
|
}
|
88
|
-
let valueNew = this.mentions({ marker: name, value: name }, false) || name
|
163
|
+
let valueNew = this.mentions({ context: { marker: name, value: name }, useHierarchy: false }) || name
|
89
164
|
if (valueNew && valueNew.value) {
|
90
165
|
valueNew = valueNew.value
|
91
166
|
}
|
@@ -93,29 +168,97 @@ class API {
|
|
93
168
|
}
|
94
169
|
|
95
170
|
setVariable(name, value) {
|
96
|
-
this.mentioned({ marker: name }, value)
|
171
|
+
this.mentioned({ context: { marker: name }, value })
|
97
172
|
}
|
98
173
|
}
|
99
174
|
|
100
175
|
const api = new API()
|
101
176
|
|
102
|
-
|
103
|
-
|
177
|
+
const configStruct = {
|
178
|
+
name: 'stm',
|
179
|
+
operators: [
|
180
|
+
"([stm_previous|previous] ([memorable]))",
|
181
|
+
"(([memorable]) [stm_before|before])",
|
182
|
+
"([remember] (memorable/*))",
|
183
|
+
],
|
184
|
+
words: {
|
185
|
+
literals: {
|
186
|
+
"m1": [{"id": "memorable", development: true, "initial": "{ value: 'm1' }" }],
|
187
|
+
"m2": [{"id": "memorable", development: true, "initial": "{ value: 'm2' }" }],
|
188
|
+
},
|
189
|
+
},
|
190
|
+
bridges: [
|
191
|
+
{
|
192
|
+
id: 'memorable',
|
193
|
+
isA: ['theAble'],
|
194
|
+
words: helpers.words('memorable')
|
195
|
+
},
|
196
|
+
{
|
197
|
+
id: 'remember',
|
198
|
+
bridge: "{ ...next(operator), postModifiers: ['rememberee'], rememberee: after[0] }",
|
199
|
+
isA: ['verby'],
|
200
|
+
semantic: async ({context, api, e}) => {
|
201
|
+
let value = (await e(context.rememberee)).evalue
|
202
|
+
if (value == context.rememberee.value) {
|
203
|
+
value = context.rememberee
|
204
|
+
}
|
205
|
+
api.mentioned({ context: value })
|
206
|
+
},
|
207
|
+
},
|
208
|
+
{
|
209
|
+
id: 'stm_previous',
|
210
|
+
bridge: '{ ...after[0], modifiers: ["stm_previous"], stm_previous: operator, pullFromContext: true }',
|
211
|
+
},
|
212
|
+
{
|
213
|
+
id: 'stm_before',
|
214
|
+
isA: ['adjective'],
|
215
|
+
bridge: '{ ...before[0], postModifiers: ["stm_previous"], stm_previous: operator, pullFromContext: true }',
|
216
|
+
},
|
217
|
+
],
|
218
|
+
semantics: [
|
219
|
+
{
|
220
|
+
where: where(),
|
221
|
+
notes: 'pull from context',
|
222
|
+
// match: ({context}) => context.marker == 'it' && context.pullFromContext, // && context.value,
|
223
|
+
match: ({context, callId}) => context.pullFromContext && !context.same, // && context.value,
|
224
|
+
apply: async ({callId, context, kms, e, log, retry}) => {
|
225
|
+
context.value = kms.stm.api.mentions({ context })
|
226
|
+
if (!context.value) {
|
227
|
+
// retry()
|
228
|
+
context.value = { marker: 'answerNotKnown' }
|
229
|
+
return
|
230
|
+
}
|
231
|
+
|
232
|
+
const instance = await e(context.value)
|
233
|
+
if (instance.evalue && !instance.edefault) {
|
234
|
+
context.value = instance.evalue
|
235
|
+
}
|
236
|
+
if (context.evaluate) {
|
237
|
+
context.evalue = context.value
|
238
|
+
}
|
239
|
+
},
|
240
|
+
},
|
241
|
+
],
|
242
|
+
}
|
243
|
+
|
244
|
+
let createConfig = async () => {
|
245
|
+
const config = new Config(configStruct, module)
|
104
246
|
config.stop_auto_rebuild()
|
105
247
|
|
106
|
-
config.initializer( ({config}) => {
|
248
|
+
await config.initializer( ({config}) => {
|
107
249
|
config.addArgs(({kms}) => ({
|
108
|
-
mentioned: (context) => {
|
109
|
-
kms.stm.api.mentioned(context)
|
250
|
+
mentioned: ({ context }) => {
|
251
|
+
kms.stm.api.mentioned({ context })
|
110
252
|
},
|
111
|
-
mentions: (context) => {
|
112
|
-
return kms.stm.api.mentions(context)
|
253
|
+
mentions: ({ context }) => {
|
254
|
+
return kms.stm.api.mentions({ context })
|
113
255
|
},
|
114
256
|
}))
|
115
257
|
})
|
116
|
-
config.api
|
258
|
+
await config.setApi(api)
|
259
|
+
await config.add(evaluate, articles)
|
117
260
|
|
118
|
-
config.restart_auto_rebuild()
|
261
|
+
await config.restart_auto_rebuild()
|
119
262
|
return config
|
120
263
|
}
|
121
264
|
|
@@ -127,7 +270,7 @@ knowledgeModule( {
|
|
127
270
|
name: './stm.test.json',
|
128
271
|
contents: stm_tests,
|
129
272
|
checks: {
|
130
|
-
context: defaultContextCheck,
|
273
|
+
context: [...defaultContextCheck, 'pullFromContext', 'stm_id'],
|
131
274
|
objects: ['mentioned'],
|
132
275
|
},
|
133
276
|
},
|