theprogrammablemind_4wp 7.12.7-beta.0 → 7.12.8-beta.0
Sign up to get free protection for your applications and to get access to all the features.
- package/client.js +4 -102
- package/index.js +1 -0
- package/package.json +1 -1
- package/src/config.js +11 -1
- package/src/digraph.js +29 -10
- package/src/digraph_internal.js +29 -10
package/client.js
CHANGED
@@ -81,104 +81,6 @@ const pickObjects = (config, testConfig, getObjects) => {
|
|
81
81
|
return projection
|
82
82
|
}
|
83
83
|
|
84
|
-
// move ask to the KM's since verbatim is called probably in dialogues?
|
85
|
-
const getAsk = (config) => (uuid) => {
|
86
|
-
// if (!uuid) {
|
87
|
-
// debugger
|
88
|
-
//}
|
89
|
-
return (asks) => {
|
90
|
-
const ask = (ask) => {
|
91
|
-
let oneShot = true // default
|
92
|
-
if (ask.oneShot === false) {
|
93
|
-
oneShot = false
|
94
|
-
}
|
95
|
-
|
96
|
-
const id_q = stableId('semantic')
|
97
|
-
const id_rs = []
|
98
|
-
let wasAsked = false
|
99
|
-
let wasApplied = false
|
100
|
-
const getWasAsked = () => {
|
101
|
-
return wasAsked
|
102
|
-
}
|
103
|
-
const setWasAsked = (value) => {
|
104
|
-
wasAsked = value
|
105
|
-
}
|
106
|
-
const getWasApplied = () => {
|
107
|
-
return wasApplied
|
108
|
-
}
|
109
|
-
const setWasApplied = (value) => {
|
110
|
-
wasApplied = value
|
111
|
-
}
|
112
|
-
|
113
|
-
const semanticsr = ask.semanticsr || []
|
114
|
-
if (semanticsr.length == 0) {
|
115
|
-
semanticsr.push({ match: ask.matchr, apply: ask.applyr })
|
116
|
-
}
|
117
|
-
for (const semantic of semanticsr) {
|
118
|
-
const id_r = stableId('semantic')
|
119
|
-
id_rs.push(id_r)
|
120
|
-
config.addSemantic({
|
121
|
-
uuid,
|
122
|
-
id: id_r,
|
123
|
-
tied_ids: [id_q],
|
124
|
-
oneShot,
|
125
|
-
where: semantic.where || ask.where || where(2),
|
126
|
-
source: 'response',
|
127
|
-
match: (args) => semantic.match(args),
|
128
|
-
apply: (args) => {
|
129
|
-
setWasApplied(true)
|
130
|
-
semantic.apply(args)
|
131
|
-
},
|
132
|
-
})
|
133
|
-
}
|
134
|
-
|
135
|
-
config.addSemantic({
|
136
|
-
uuid,
|
137
|
-
oneShot,
|
138
|
-
id: id_q,
|
139
|
-
tied_ids: id_rs,
|
140
|
-
where: ask.where,
|
141
|
-
isQuestion: true, // do one question at a time
|
142
|
-
getWasAsked,
|
143
|
-
getWasApplied,
|
144
|
-
onNevermind: ask.onNevermind,
|
145
|
-
source: 'question',
|
146
|
-
match: ({ context }) => context.marker == 'controlEnd' || context.marker == 'controlBetween',
|
147
|
-
apply: (args) => {
|
148
|
-
let matchq = ask.matchq
|
149
|
-
let applyq = ask.applyq
|
150
|
-
if (!matchq) {
|
151
|
-
let wasAsked = false
|
152
|
-
matchq = () => !wasAsked,
|
153
|
-
applyq = (args) => {
|
154
|
-
wasAsked = true
|
155
|
-
return ask.applyq(args)
|
156
|
-
}
|
157
|
-
}
|
158
|
-
if (matchq(args)) {
|
159
|
-
setWasAsked(true)
|
160
|
-
setWasApplied(false)
|
161
|
-
// args.context.motivationKeep = true
|
162
|
-
args.verbatim(applyq(args))
|
163
|
-
/*
|
164
|
-
args.context.verbatim = applyq(args)
|
165
|
-
args.context.isResponse = true;
|
166
|
-
delete args.context.controlRemove;
|
167
|
-
*/
|
168
|
-
args.context.controlKeepMotivation = true
|
169
|
-
}
|
170
|
-
args.context.cascade = true
|
171
|
-
}
|
172
|
-
})
|
173
|
-
}
|
174
|
-
if (!Array.isArray(asks)) {
|
175
|
-
asks = [asks]
|
176
|
-
}
|
177
|
-
|
178
|
-
[...asks].reverse().forEach( (a) => ask(a) )
|
179
|
-
}
|
180
|
-
}
|
181
|
-
|
182
84
|
const sameJSON = (json1, json2) => {
|
183
85
|
const sjson1 = sortJson(json1, { depth: 25 })
|
184
86
|
const sjson2 = sortJson(json2, { depth: 25 })
|
@@ -300,7 +202,6 @@ const setupArgs = (args, config, logs, hierarchy, uuidForScoping) => {
|
|
300
202
|
}
|
301
203
|
// for semantics
|
302
204
|
args.addAssumedScoped(args, {})
|
303
|
-
config.getAddedArgs(args)
|
304
205
|
|
305
206
|
const getAPI = (uuid) => {
|
306
207
|
if (config && config.getAPI) {
|
@@ -312,14 +213,14 @@ const setupArgs = (args, config, logs, hierarchy, uuidForScoping) => {
|
|
312
213
|
return config.getAPIs(uuid)
|
313
214
|
}
|
314
215
|
}
|
315
|
-
const scopedAsk = getAsk(config)
|
316
216
|
args.getUUIDScoped = (uuid) => {
|
317
217
|
return {
|
318
|
-
ask: scopedAsk(uuid),
|
319
218
|
api: getAPI(uuid),
|
320
219
|
apis: getAPIs(uuid)
|
321
220
|
}
|
322
221
|
}
|
222
|
+
config.getAddedArgs(args)
|
223
|
+
|
323
224
|
Object.assign(args, args.getUUIDScoped(uuidForScoping || config.uuid))
|
324
225
|
/*
|
325
226
|
if (uuidForScoping) {
|
@@ -1281,7 +1182,7 @@ const defaultInnerProcess = (config, errorHandler, responses) => {
|
|
1281
1182
|
console.log('Errors')
|
1282
1183
|
responses.errors.forEach((error) => console.log(` ${error}`))
|
1283
1184
|
}
|
1284
|
-
console.log("KM's loaded", config.configs.map((c) => c.name))
|
1185
|
+
console.log("KM's loaded (ordered)", config.configs.map((c) => c.name))
|
1285
1186
|
console.log('This is the global objects from running semantics:\n', config.objects)
|
1286
1187
|
if (!_.isEmpty(responses.learned_contextual_priorities)) {
|
1287
1188
|
console.log('\nThe learned contextual priorties are :\n')
|
@@ -2270,6 +2171,7 @@ const knowledgeModule = async (...args) => {
|
|
2270
2171
|
|
2271
2172
|
module.exports = {
|
2272
2173
|
process: _process,
|
2174
|
+
stableId,
|
2273
2175
|
where,
|
2274
2176
|
w,
|
2275
2177
|
// submitBug,
|
package/index.js
CHANGED
package/package.json
CHANGED
package/src/config.js
CHANGED
@@ -1778,7 +1778,16 @@ class Config {
|
|
1778
1778
|
getAddedArgs (args) {
|
1779
1779
|
for (let addedArgs of this.addedArgss) {
|
1780
1780
|
addedArgs = addedArgs(args)
|
1781
|
+
const getUUIDScoped = addedArgs.getUUIDScoped
|
1782
|
+
delete addedArgs.getUUIDScoped
|
1781
1783
|
Object.assign(args, addedArgs)
|
1784
|
+
if (getUUIDScoped) {
|
1785
|
+
const currentGetUUIDScoped = args.getUUIDScoped
|
1786
|
+
if (!currentGetUUIDScoped) {
|
1787
|
+
debugger
|
1788
|
+
}
|
1789
|
+
args.getUUIDScoped = (uuid) => Object.assign(currentGetUUIDScoped(uuid), getUUIDScoped(uuid))
|
1790
|
+
}
|
1782
1791
|
}
|
1783
1792
|
}
|
1784
1793
|
|
@@ -2803,7 +2812,8 @@ class Config {
|
|
2803
2812
|
more = more.copy()
|
2804
2813
|
more.server(this._server, this._key, this._queryParams)
|
2805
2814
|
|
2806
|
-
|
2815
|
+
const moreConfigs = more.configs.map((km) => km.name || km.uuid)
|
2816
|
+
this.loadOrder.addList(moreConfigs)
|
2807
2817
|
|
2808
2818
|
// get the new ones
|
2809
2819
|
// remove the dups
|
package/src/digraph.js
CHANGED
@@ -113,19 +113,31 @@ class Digraph {
|
|
113
113
|
}
|
114
114
|
|
115
115
|
minima (nodes) {
|
116
|
-
|
117
|
-
const
|
118
|
-
|
119
|
-
|
120
|
-
}
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
116
|
+
nodes = new Set(nodes)
|
117
|
+
const nodeToDescendants = {}
|
118
|
+
for (const node of nodes) {
|
119
|
+
nodeToDescendants[node] = this.descendants(node)
|
120
|
+
}
|
121
|
+
let minima = new Set()
|
122
|
+
for (const node of nodes) {
|
123
|
+
let okay = true
|
124
|
+
for (const key of nodeToDescendants[node]) {
|
125
|
+
if (nodes.has(key)) {
|
126
|
+
if (key in nodeToDescendants && nodeToDescendants[key].has(node)) {
|
127
|
+
continue
|
128
|
+
}
|
129
|
+
okay = false
|
130
|
+
break
|
131
|
+
}
|
132
|
+
}
|
133
|
+
if (okay) {
|
134
|
+
minima.add(node)
|
135
|
+
}
|
125
136
|
}
|
126
137
|
return minima
|
127
138
|
}
|
128
139
|
|
140
|
+
/*
|
129
141
|
maxima (nodes) {
|
130
142
|
const maxima = new Set(nodes)
|
131
143
|
const descendants = new Set([])
|
@@ -135,14 +147,21 @@ class Digraph {
|
|
135
147
|
descendants.forEach((n) => maxima.delete(n))
|
136
148
|
return maxima
|
137
149
|
}
|
150
|
+
*/
|
138
151
|
|
139
152
|
add (child, parent) {
|
140
153
|
this._edges.push([child, parent])
|
141
154
|
}
|
142
155
|
|
156
|
+
exists(child, parent) {
|
157
|
+
return this._edges.find((edge) => edge[0] == child && edge[1] == parent)
|
158
|
+
}
|
159
|
+
|
143
160
|
addList (l) {
|
144
161
|
for (let i = 1; i < l.length; ++i) {
|
145
|
-
this.
|
162
|
+
if (!this.exists(l[i-1], l[i])) {
|
163
|
+
this._edges.push([l[i - 1], l[i]])
|
164
|
+
}
|
146
165
|
}
|
147
166
|
}
|
148
167
|
|
package/src/digraph_internal.js
CHANGED
@@ -81,19 +81,31 @@ class DigraphInternal {
|
|
81
81
|
}
|
82
82
|
|
83
83
|
minima (nodes) {
|
84
|
-
|
85
|
-
const
|
86
|
-
|
87
|
-
|
88
|
-
}
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
nodes = new Set(nodes)
|
85
|
+
const nodeToDescendants = {}
|
86
|
+
for (const node of nodes) {
|
87
|
+
nodeToDescendants[node] = this.descendants(node)
|
88
|
+
}
|
89
|
+
let minima = new Set()
|
90
|
+
for (const node of nodes) {
|
91
|
+
let okay = true
|
92
|
+
for (const key of nodeToDescendants[node]) {
|
93
|
+
if (nodes.has(key)) {
|
94
|
+
if (key in nodeToDescendants && nodeToDescendants[key].has(node)) {
|
95
|
+
continue
|
96
|
+
}
|
97
|
+
okay = false
|
98
|
+
break
|
99
|
+
}
|
100
|
+
}
|
101
|
+
if (okay) {
|
102
|
+
minima.add(node)
|
103
|
+
}
|
93
104
|
}
|
94
105
|
return minima
|
95
106
|
}
|
96
107
|
|
108
|
+
/*
|
97
109
|
maxima (nodes) {
|
98
110
|
const maxima = new Set(nodes)
|
99
111
|
const descendants = new Set([])
|
@@ -103,14 +115,21 @@ class DigraphInternal {
|
|
103
115
|
descendants.forEach((n) => maxima.delete(n))
|
104
116
|
return maxima
|
105
117
|
}
|
118
|
+
*/
|
106
119
|
|
107
120
|
add (child, parent) {
|
108
121
|
this._edges.push([child, parent])
|
109
122
|
}
|
110
123
|
|
124
|
+
exists(child, parent) {
|
125
|
+
return this._edges.findIndex((edge) => edge[0] == child && edge[1] == parent) != -1
|
126
|
+
}
|
127
|
+
|
111
128
|
addList (l) {
|
112
129
|
for (let i = 1; i < l.length; ++i) {
|
113
|
-
this.
|
130
|
+
if (!this.exists(l[i-1], l[i])) {
|
131
|
+
this._edges.push([l[i - 1], l[i]])
|
132
|
+
}
|
114
133
|
}
|
115
134
|
}
|
116
135
|
|