MCPcopy
hub / github.com/apache/caldera / task

Method task

app/objects/c_agent.py:258–285  ·  view source on GitHub ↗
(self, abilities, obfuscator, facts=(), deadman=False)

Source from the content-addressed store, hash-verified

256 await self.task(abilities, obfuscator='plain-text', deadman=True)
257
258 async def task(self, abilities, obfuscator, facts=(), deadman=False):
259 if not self.executors:
260 return []
261
262 bps = BasePlanningService()
263 preferred_executor_name = self._get_preferred_executor_name()
264
265 links = []
266 for ability in await self.capabilities(abilities):
267 executors = ability.find_executors(self.executors, self.platform)
268 executors = sorted(executors, key=lambda ex: ex.name == preferred_executor_name, reverse=True)
269
270 for executor in executors:
271 ex_links = [Link.load(dict(command=self.encode_string(executor.test), paw=self.paw, ability=ability,
272 executor=executor, deadman=deadman))]
273 valid_links = await bps.add_test_variants(links=ex_links, agent=self, facts=facts, trim_unset_variables=True)
274 if valid_links:
275 links.extend(valid_links)
276 break
277
278 links = await bps.obfuscate_commands(self, obfuscator, links)
279 knowledge_svc_handle = BaseService.get_service('knowledge_svc')
280 for fact in facts:
281 fact.source = self.paw
282 fact.origin_type = OriginType.SEEDED
283 await knowledge_svc_handle.add_fact(fact)
284 self.links.extend(links)
285 return links
286
287 async def all_facts(self):
288 knowledge_svc_handle = BaseService.get_service('knowledge_svc')

Callers 8

bootstrapMethod · 0.95
deadmanMethod · 0.95
test_task_no_factsMethod · 0.95
test_task_with_factsMethod · 0.95

Calls 10

capabilitiesMethod · 0.95
add_test_variantsMethod · 0.95
obfuscate_commandsMethod · 0.95
BasePlanningServiceClass · 0.90
find_executorsMethod · 0.80
encode_stringMethod · 0.80
get_serviceMethod · 0.80
loadMethod · 0.45
add_factMethod · 0.45