tpmkms_4wp 8.0.0-beta.4 → 8.0.0-beta.40
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/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 +136 -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 +136 -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 +57 -46
- package/package.json +24 -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,39 +55,76 @@ 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, condition = (() => true) } = {}) {
|
69
|
+
const findPrevious = !!context.stm_previous
|
70
|
+
|
50
71
|
// care about value first
|
72
|
+
let findCounter = 0
|
51
73
|
for (let m of this._objects.mentioned) {
|
52
|
-
if (context.value && context.value == m.marker) {
|
53
|
-
|
74
|
+
if (context.value && (context.value == m.marker || context.value == m.value)) {
|
75
|
+
findCounter += 1
|
76
|
+
if (findPrevious && findCounter < 2) {
|
77
|
+
continue
|
78
|
+
}
|
79
|
+
if (condition()) {
|
80
|
+
return m
|
81
|
+
}
|
54
82
|
}
|
55
83
|
}
|
56
84
|
|
57
85
|
if (!useHierarchy) {
|
58
86
|
return
|
59
87
|
}
|
88
|
+
|
60
89
|
// care about marker second
|
90
|
+
findCounter = 0
|
61
91
|
for (let m of this._objects.mentioned) {
|
62
92
|
if (context.marker != 'unknown' && this.isA(m.marker, context.marker)) {
|
63
|
-
|
93
|
+
findCounter += 1
|
94
|
+
if (findPrevious && findCounter < 2) {
|
95
|
+
continue
|
96
|
+
}
|
97
|
+
if (condition(m)) {
|
98
|
+
return m
|
99
|
+
}
|
64
100
|
}
|
65
101
|
// if (context.types && context.types.includes(m.marker)) {
|
66
102
|
if (context.types) {
|
67
103
|
for (let parent of context.types) {
|
68
104
|
if (parent != 'unknown' && this.isA(m.marker, parent)) {
|
69
|
-
|
105
|
+
findCounter += 1
|
106
|
+
if (findPrevious && findCounter < 2) {
|
107
|
+
continue
|
108
|
+
}
|
109
|
+
if (condition(m)) {
|
110
|
+
return m
|
111
|
+
}
|
70
112
|
}
|
71
113
|
}
|
72
114
|
}
|
73
115
|
}
|
74
116
|
|
117
|
+
findCounter = 0
|
75
118
|
if (context.types && context.types.length == 1) {
|
76
119
|
for (let m of this._objects.mentioned) {
|
77
120
|
if (context.unknown) {
|
78
|
-
|
121
|
+
findCounter += 1
|
122
|
+
if (findPrevious && findCounter < 2) {
|
123
|
+
continue
|
124
|
+
}
|
125
|
+
if (condition(m)) {
|
126
|
+
return m
|
127
|
+
}
|
79
128
|
}
|
80
129
|
}
|
81
130
|
}
|
@@ -85,7 +134,7 @@ class API {
|
|
85
134
|
if (!name) {
|
86
135
|
return
|
87
136
|
}
|
88
|
-
let valueNew = this.mentions({ marker: name, value: name }, false) || name
|
137
|
+
let valueNew = this.mentions({ context: { marker: name, value: name }, useHierarchy: false }) || name
|
89
138
|
if (valueNew && valueNew.value) {
|
90
139
|
valueNew = valueNew.value
|
91
140
|
}
|
@@ -93,29 +142,97 @@ class API {
|
|
93
142
|
}
|
94
143
|
|
95
144
|
setVariable(name, value) {
|
96
|
-
this.mentioned({ marker: name }, value)
|
145
|
+
this.mentioned({ context: { marker: name }, value })
|
97
146
|
}
|
98
147
|
}
|
99
148
|
|
100
149
|
const api = new API()
|
101
150
|
|
102
|
-
|
103
|
-
|
151
|
+
const configStruct = {
|
152
|
+
name: 'stm',
|
153
|
+
operators: [
|
154
|
+
"([stm_previous|previous] ([memorable]))",
|
155
|
+
"(([memorable]) [stm_before|before])",
|
156
|
+
"([remember] (memorable/*))",
|
157
|
+
],
|
158
|
+
words: {
|
159
|
+
literals: {
|
160
|
+
"m1": [{"id": "memorable", development: true, "initial": "{ value: 'm1' }" }],
|
161
|
+
"m2": [{"id": "memorable", development: true, "initial": "{ value: 'm2' }" }],
|
162
|
+
},
|
163
|
+
},
|
164
|
+
bridges: [
|
165
|
+
{
|
166
|
+
id: 'memorable',
|
167
|
+
isA: ['theAble'],
|
168
|
+
words: helpers.words('memorable')
|
169
|
+
},
|
170
|
+
{
|
171
|
+
id: 'remember',
|
172
|
+
bridge: "{ ...next(operator), postModifiers: ['rememberee'], rememberee: after[0] }",
|
173
|
+
isA: ['verby'],
|
174
|
+
semantic: async ({context, api, e}) => {
|
175
|
+
let value = (await e(context.rememberee)).evalue
|
176
|
+
if (value == context.rememberee.value) {
|
177
|
+
value = context.rememberee
|
178
|
+
}
|
179
|
+
api.mentioned({ context: value })
|
180
|
+
},
|
181
|
+
},
|
182
|
+
{
|
183
|
+
id: 'stm_previous',
|
184
|
+
bridge: '{ ...after[0], modifiers: ["stm_previous"], stm_previous: operator, pullFromContext: true }',
|
185
|
+
},
|
186
|
+
{
|
187
|
+
id: 'stm_before',
|
188
|
+
isA: ['adjective'],
|
189
|
+
bridge: '{ ...before[0], postModifiers: ["stm_previous"], stm_previous: operator, pullFromContext: true }',
|
190
|
+
},
|
191
|
+
],
|
192
|
+
semantics: [
|
193
|
+
{
|
194
|
+
where: where(),
|
195
|
+
notes: 'pull from context',
|
196
|
+
// match: ({context}) => context.marker == 'it' && context.pullFromContext, // && context.value,
|
197
|
+
match: ({context, callId}) => context.pullFromContext && !context.same, // && context.value,
|
198
|
+
apply: async ({callId, context, kms, e, log, retry}) => {
|
199
|
+
context.value = kms.stm.api.mentions({ context })
|
200
|
+
if (!context.value) {
|
201
|
+
// retry()
|
202
|
+
context.value = { marker: 'answerNotKnown' }
|
203
|
+
return
|
204
|
+
}
|
205
|
+
|
206
|
+
const instance = await e(context.value)
|
207
|
+
if (instance.evalue && !instance.edefault) {
|
208
|
+
context.value = instance.evalue
|
209
|
+
}
|
210
|
+
if (context.evaluate) {
|
211
|
+
context.evalue = context.value
|
212
|
+
}
|
213
|
+
},
|
214
|
+
},
|
215
|
+
],
|
216
|
+
}
|
217
|
+
|
218
|
+
let createConfig = async () => {
|
219
|
+
const config = new Config(configStruct, module)
|
104
220
|
config.stop_auto_rebuild()
|
105
221
|
|
106
|
-
config.initializer( ({config}) => {
|
222
|
+
await config.initializer( ({config}) => {
|
107
223
|
config.addArgs(({kms}) => ({
|
108
|
-
mentioned: (context) => {
|
109
|
-
kms.stm.api.mentioned(context)
|
224
|
+
mentioned: ({ context }) => {
|
225
|
+
kms.stm.api.mentioned({ context })
|
110
226
|
},
|
111
|
-
mentions: (context) => {
|
112
|
-
return kms.stm.api.mentions(context)
|
227
|
+
mentions: ({ context }) => {
|
228
|
+
return kms.stm.api.mentions({ context })
|
113
229
|
},
|
114
230
|
}))
|
115
231
|
})
|
116
|
-
config.api
|
232
|
+
await config.setApi(api)
|
233
|
+
await config.add(evaluate, articles)
|
117
234
|
|
118
|
-
config.restart_auto_rebuild()
|
235
|
+
await config.restart_auto_rebuild()
|
119
236
|
return config
|
120
237
|
}
|
121
238
|
|
@@ -127,7 +244,7 @@ knowledgeModule( {
|
|
127
244
|
name: './stm.test.json',
|
128
245
|
contents: stm_tests,
|
129
246
|
checks: {
|
130
|
-
context: defaultContextCheck,
|
247
|
+
context: [...defaultContextCheck, 'pullFromContext', 'stm_id'],
|
131
248
|
objects: ['mentioned'],
|
132
249
|
},
|
133
250
|
},
|