#!/usr/bin/env python3 """ Dumps out the current agent tool configuration """ import argparse import os from trustgraph.api import Api, ConfigKey import json import tabulate import textwrap default_url = os.getenv("TRUSTGRAPH_URL", 'http://localhost:8088/') def show_config(url): api = Api(url).config() values = api.get([ ConfigKey(type="agent", key="tool-index") ]) ix = json.loads(values[0].value) values = api.get([ ConfigKey(type="agent", key=f"tool.{v}") for v in ix ]) for n, key in enumerate(ix): data = json.loads(values[n].value) table = [] table.append(("id", data["id"])) table.append(("name", data["name"])) table.append(("description", data["description"])) for n, arg in enumerate(data["arguments"]): table.append(( f"arg {n}", f"{arg['name']}: {arg['type']}\n{arg['description']}" )) print() print(key + ":") print(tabulate.tabulate( table, tablefmt="pretty", maxcolwidths=[None, 70], stralign="left" )) print() def main(): parser = argparse.ArgumentParser( prog='tg-show-tools', description=__doc__, ) parser.add_argument( '-u', '--api-url', default=default_url, help=f'API URL (default: {default_url})', ) args = parser.parse_args() try: show_config( url=args.api_url, ) except Exception as e: print("Exception:", e, flush=True) main()