@indra.ai/deva.defense
Version:
The Defense Deva handles all the various defense in Deva.world.
56 lines (54 loc) • 1.68 kB
JavaScript
export default {
/**************
method: Defense
params: packet
describe: The global service feature that installs with every agent
***************/
defense(packet) {
this.context('feature');
return new Promise((resolve, reject) => {
const defense = this.defense();
const agent = this.agent();
const global = [];
defense.global.forEach((item,index) => {
global.push(`::begin:${item.key}:${item.id}`);
for (let x in item) {
global.push(`${x}: ${item[x]}`);
}
const thehash = this.lib.hash(item);
global.push(`hash: ${thehash}`);
global.push(`::end:${item.key}:${thehash}`);
});
const concerns = [];
defense.concerns.forEach((item, index) => {
concerns.push(`${index + 1}. ${item}`);
})
const info = [
'::BEGIN:DEFENSE',
`::begin:client`,
'## Client',
`id: ${defense.client_id}`,
`client: ${defense.client_name}`,
`::end:client}`,
concerns.length ? `::begin:concerns` : '',
concerns.length ? '## Concerns' : '',
concerns.length ? concerns.join('\n') : '',
concerns.length ? `::end:concerns` : '',
'::begin:global',
'## Global',
global.join('\n'),
'::end:global',
'::END:DEFENSE',
].join('\n');
this.question(`${this.askChr}feecting parse ${info}`).then(feecting => {
return resolve({
text: feecting.a.text,
html: feecting.a.html,
data: defense.concerns,
});
}).catch(err => {
return this.error(err, packet, reject);
})
});
},
};