cmdbox 0.6.0.3__tar.gz → 0.6.0.4__tar.gz
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.
Potentially problematic release.
This version of cmdbox might be problematic. Click here for more details.
- {cmdbox-0.6.0.3/cmdbox.egg-info → cmdbox-0.6.0.4}/PKG-INFO +2 -2
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/README.md +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/common.py +4 -2
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/agent_base.py +7 -65
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_cmd_list.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_cmd_load.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_apikey_add.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_apikey_del.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_group_add.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_group_del.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_group_edit.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_group_list.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_start.py +65 -26
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_user_add.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_user_del.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_user_edit.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_user_list.py +1 -1
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_agent.py +10 -4
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/options.py +8 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/web.py +26 -47
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/version.py +2 -2
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/agent.js +2 -3
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/common.js +26 -4
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/main.js +1 -2
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4/cmdbox.egg-info}/PKG-INFO +2 -2
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/setup.py +1 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/LICENSE +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/MANIFEST.in +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/__init__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/__main__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/__init__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/app.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/__init__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/azure_signin.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/azure_signin_saml.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/github_signin.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/google_signin.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/signin.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/auth/signin_saml.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/client.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/commons/convert.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/commons/loghandler.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/commons/module.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/commons/redis_client.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/edge.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/edge_tool.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/feature.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/audit_base.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_audit_createdb.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_audit_search.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_audit_write.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_copy.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_download.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_list.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_move.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_remove.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_file_upload.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_client_server_info.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_edge_config.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_edge_start.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_gui_start.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_gui_stop.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_server_list.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_server_start.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_server_stop.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_gencert.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/cli/cmdbox_web_stop.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_assets.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_audit.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_audit_metrics.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_bbforce_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_copyright.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_del_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_del_pipe.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_do_signin.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_do_signout.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_exec_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_exec_pipe.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_filer download.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_filer.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_filer_upload.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_get_cmd_choices.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_get_cmds.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_get_modes.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_get_server_opt.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_gui.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_gui_callback.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_list_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_list_pipe.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_load_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_load_pipe.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_raw_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_raw_pipe.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_result.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_save_cmd.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_save_pipe.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_signin.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_user_data.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_users.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_usesignout.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_versions_cmdbox.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/features/web/cmdbox_web_versions_used.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/filer.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/app/server.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/config.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/features.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/.vscode/launch.json +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/requirements.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/__init__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/__main__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/app/app.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/extensions/features.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/extensions/user_list.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/logconf_sample.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/version.py +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/web/assets/sample/favicon.ico +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/sample_project/sample/web/assets/sample/icon.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/extensions/user_list.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.Authlib.1.5.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.Deprecated.1.2.18(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.Jinja2.3.1.6(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.MarkupSafe.3.0.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.PyYAML.6.0.2(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.Pygments.2.19.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.SQLAlchemy.2.0.40(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.Sphinx.8.2.3(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.aiohappyeyeballs.2.6.1(Python Software Foundation License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.aiohttp.3.11.18(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.aiosignal.1.3.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.alabaster.1.0.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.annotated-types.0.7.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.anyio.4.9.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.argcomplete.3.6.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.async-timeout.5.0.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.attrs.25.3.0(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.babel.2.17.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.backports.tarfile.1.2.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.cachetools.5.5.2(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.certifi.2025.4.26(Mozilla Public License 2.0 (MPL 2.0)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.cffi.1.17.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.charset-normalizer.3.4.2(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.click.8.2.0(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.colorama.0.4.6(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.cryptography.44.0.3(Apache Software License; BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.distro.1.9.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.docstring_parser.0.16(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.docutils.0.21.2(BSD License; GNU General Public License (GPL); Public Domain; Python Software Foundation License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.fastapi.0.115.12(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.filelock.3.18.0(The Unlicense (Unlicense)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.frozenlist.1.6.0(Apache-2.0).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.fsspec.2025.3.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.gevent.25.4.2(MIT).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-adk.0.5.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-api-core.2.24.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-api-python-client.2.169.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-auth-httplib2.0.2.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-auth.2.40.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-aiplatform.1.92.0(Apache 2.0).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-bigquery.3.31.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-core.2.4.3(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-resource-manager.1.14.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-secret-manager.2.23.3(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-speech.2.32.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-storage.2.19.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-cloud-trace.1.16.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-crc32c.1.7.1(Apache 2.0).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-genai.1.14.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.google-resumable-media.2.7.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.googleapis-common-protos.1.70.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.graphviz.0.20.3(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.greenlet.3.2.2(MIT AND Python-2.0).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.grpc-google-iam-v1.0.14.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.grpcio-status.1.71.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.grpcio.1.71.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.gunicorn.23.0.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.h11.0.16.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.httpcore.1.0.9(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.httplib2.0.22.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.httptools.0.6.4(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.httpx-sse.0.4.0(MIT).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.httpx.0.28.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.huggingface-hub.0.31.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.id.1.5.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.idna.3.10(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.imagesize.1.4.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.importlib_metadata.8.6.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.itsdangerous.2.2.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.jaraco.classes.3.4.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.jaraco.context.6.0.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.jaraco.functools.4.1.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.jiter.0.9.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.jsonschema-specifications.2025.4.1(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.jsonschema.4.23.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.keyring.25.6.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.litellm.1.69.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.markdown-it-py.3.0.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.mcp.1.8.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.mdurl.0.1.2(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.more-itertools.10.7.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.multidict.6.4.3(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.nh3.0.2.21(MIT).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.numpy.2.2.5(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.openai.1.75.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.opentelemetry-api.1.33.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.opentelemetry-exporter-gcp-trace.1.9.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.opentelemetry-resourcedetector-gcp.1.9.0a0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.opentelemetry-sdk.1.33.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.opentelemetry-semantic-conventions.0.54b0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.packaging.25.0(Apache Software License; BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pillow.11.2.1(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pip.24.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.plyer.2.1.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.prettytable.3.16.0(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.prompt_toolkit.3.0.51(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.propcache.0.3.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.proto-plus.1.26.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.protobuf.5.29.4(3-Clause BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.psycopg-binary.3.2.7(GNU Lesser General Public License v3 (LGPLv3)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.psycopg.3.2.7(GNU Lesser General Public License v3 (LGPLv3)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pyasn1.0.6.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pyasn1_modules.0.4.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pycparser.2.22(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pycryptodome.3.22.0(BSD License; Public Domain).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pydantic-settings.2.9.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pydantic.2.11.4(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pydantic_core.2.33.2(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pyparsing.3.2.3(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pystray.0.19.5(GNU Lesser General Public License v3 (LGPLv3)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.python-dateutil.2.9.0.post0(Apache Software License; BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.python-dotenv.1.1.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.python-multipart.0.0.20(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.pywin32-ctypes.0.2.3(BSD-3-Clause).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.questionary.2.1.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.readme_renderer.44.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.redis.6.0.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.referencing.0.36.2(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.regex.2024.11.6(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.requests-toolbelt.1.0.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.requests.2.32.3(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.rfc3986.2.0.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.rich.14.0.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.roman-numerals-py.3.1.0(CC0 1.0 Universal (CC0 1.0) Public Domain Dedication; Zero-Clause BSD (0BSD)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.rpds-py.0.24.0(MIT).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.rsa.4.9.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.setuptools.65.5.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.shapely.2.1.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.six.1.17.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sniffio.1.3.1(Apache Software License; MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.snowballstemmer.3.0.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinx-intl.2.3.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinx-rtd-theme.3.0.2(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinx-sitemap.2.6.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinx_fontawesome.0.0.6(GNU General Public License v2 (GPLv2)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-applehelp.2.0.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-devhelp.2.0.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-htmlhelp.2.1.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-jquery.4.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-jsmath.1.0.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-qthelp.2.0.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sphinxcontrib-serializinghtml.2.0.0(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.sse-starlette.2.3.4(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.starlette.0.46.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tabulate.0.9.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tiktoken.0.9.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tokenizers.0.21.1(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tomli.2.2.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tqdm.4.67.1(MIT License; Mozilla Public License 2.0 (MPL 2.0)).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.twine.6.1.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.typing-inspection.0.4.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.typing_extensions.4.13.2(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tzdata.2025.2(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.tzlocal.5.3.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.uritemplate.4.1.1(Apache Software License; BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.urllib3.2.4.0(UNKNOWN).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.uvicorn.0.34.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.watchfiles.1.0.5(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.wcwidth.0.2.13(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.websockets.15.0.1(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.wheel.0.45.1(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.wrapt.1.17.2(BSD License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.yarl.1.20.0(Apache Software License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.zipp.3.21.0(MIT License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.zope.event.5.0(Zope Public License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/LICENSE.zope.interface.7.2(Zope Public License).txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/licenses/files.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_audit.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_client.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_cmdbox.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_edge.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_gui.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_server.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/logconf_web.yml +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/agent.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/apexcharts/apexcharts.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/apexcharts/apexcharts.min.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/audit.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/color_mode.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/favicon.ico +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/filer_modal.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/icon.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/list_cmd.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/list_pipe.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/open_capture.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/open_output_json.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/result.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/signin.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/users.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/view_raw.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/cmdbox/view_result.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/encodingjs/LICENSE.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/encodingjs/encoding.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/encodingjs/encoding.min.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/filer/filer.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/filer/main.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/filer/main.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/highlight/default.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/highlight/highlight.min.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/highlight/styles/tokyo-night-dark.min.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery/jquery.min.3.2.0.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-linedtextarea/README.md +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea-license.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-resizable/jquery-resizable.min.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/AUTHORS.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/LICENSE.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/jquery-ui.min.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/jquery-ui.min.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/jquery-ui.structure.min.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/jquery-ui.theme.min.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/jquery-ui/package.json +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/lightbox2/css/lightbox.min.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/lightbox2/images/close.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/lightbox2/images/loading.gif +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/lightbox2/images/next.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/lightbox2/images/prev.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/lightbox2/js/lightbox.min.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/split-pane/split-pane.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/split-pane/split-pane.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/tree-menu/css/tree-menu.css +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/tree-menu/image/file.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/tree-menu/image/folder-close.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/tree-menu/image/folder-open.png +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets/tree-menu/js/tree-menu.js +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/assets_license_list.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/audit.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/filer.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/gui.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/result.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/signin.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox/web/users.html +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox.egg-info/SOURCES.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox.egg-info/dependency_links.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox.egg-info/entry_points.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox.egg-info/requires.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/cmdbox.egg-info/top_level.txt +0 -0
- {cmdbox-0.6.0.3 → cmdbox-0.6.0.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cmdbox
|
|
3
|
-
Version: 0.6.0.
|
|
3
|
+
Version: 0.6.0.4
|
|
4
4
|
Summary: cmdbox: It is a command line application with a plugin mechanism.
|
|
5
5
|
Home-page: https://github.com/hamacom2004jp/cmdbox
|
|
6
6
|
Download-URL: https://github.com/hamacom2004jp/cmdbox
|
|
@@ -51,7 +51,7 @@ apt-get install -y pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl buil
|
|
|
51
51
|
|
|
52
52
|
- When using `--agent use` in web mode, install the modules with dependencies.
|
|
53
53
|
```bash
|
|
54
|
-
pip install google-adk litellm
|
|
54
|
+
pip install google-adk litellm fastmcp
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
# Run
|
|
@@ -27,7 +27,7 @@ apt-get install -y pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl buil
|
|
|
27
27
|
|
|
28
28
|
- When using `--agent use` in web mode, install the modules with dependencies.
|
|
29
29
|
```bash
|
|
30
|
-
pip install google-adk litellm
|
|
30
|
+
pip install google-adk litellm fastmcp
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
# Run
|
|
@@ -135,8 +135,10 @@ def create_console(stderr:bool=False, file=None) -> Console:
|
|
|
135
135
|
Returns:
|
|
136
136
|
Console: コンソール
|
|
137
137
|
"""
|
|
138
|
-
console = Console(height=
|
|
139
|
-
|
|
138
|
+
#console = Console(soft_wrap=True, height=True, highlighter=loghandler.LogLevelHighlighter(), theme=loghandler.theme,
|
|
139
|
+
# stderr=stderr, file=file)
|
|
140
|
+
console = Console(height=True, highlighter=loghandler.LogLevelHighlighter(), theme=loghandler.theme,
|
|
141
|
+
soft_wrap=True, stderr=stderr, file=file, log_time=True, log_path=False, log_time_format='[%Y-%m-%d %H:%M:%S]')
|
|
140
142
|
#console = Console(soft_wrap=True, stderr=stderr, file=file, log_time=True, log_path=False, log_time_format='[%Y-%m-%d %H:%M:%S]')
|
|
141
143
|
return console
|
|
142
144
|
|
|
@@ -30,8 +30,7 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
30
30
|
dict(opt="agent", type=Options.T_STR, default="no", required=False, multi=False, hide=False, choice=["no", "use"],
|
|
31
31
|
discription_ja="エージェントを使用するかどうかを指定します。",
|
|
32
32
|
discription_en="Specifies whether the agent is used.",
|
|
33
|
-
choice_show=dict(use=["agent_name", "agent_description", "agent_instruction", "agent_session_store", "llmprov",
|
|
34
|
-
"mcp_listen_port", "mcp_ssl_listen_port"],)),
|
|
33
|
+
choice_show=dict(use=["agent_name", "agent_description", "agent_instruction", "agent_session_store", "llmprov",],)),
|
|
35
34
|
dict(opt="agent_name", type=Options.T_STR, default=self.ver.__appid__, required=False, multi=False, hide=False, choice=None,
|
|
36
35
|
discription_ja="エージェント名を指定します。",
|
|
37
36
|
discription_en="Specifies the agent name."),
|
|
@@ -45,12 +44,6 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
45
44
|
discription_ja="エージェントのセッションを保存する方法を指定します。",
|
|
46
45
|
discription_en="Specify how the agent's session is to be saved.",
|
|
47
46
|
choice_show=dict(postgresql=["agent_pg_host", "agent_pg_port", "agent_pg_user", "agent_pg_password", "agent_pg_dbname"]),),
|
|
48
|
-
dict(opt="mcp_listen_port", type=Options.T_INT, default="9081", required=False, multi=False, hide=False, choice=None,
|
|
49
|
-
discription_ja="省略した時は `9081` を使用します。",
|
|
50
|
-
discription_en="If omitted, `9081` is used."),
|
|
51
|
-
dict(opt="mcp_ssl_listen_port", type=Options.T_INT, default="9443", required=False, multi=False, hide=False, choice=None,
|
|
52
|
-
discription_ja="省略した時は `9443` を使用します。",
|
|
53
|
-
discription_en="If omitted, `9443` is used."),
|
|
54
47
|
dict(opt="agent_pg_host", type=Options.T_STR, default='localhost', required=False, multi=False, hide=False, choice=None, web="mask",
|
|
55
48
|
discription_ja="postgresqlホストを指定する。",
|
|
56
49
|
discription_en="Specify the postgresql host."),
|
|
@@ -114,7 +107,7 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
114
107
|
Returns:
|
|
115
108
|
Any: FastMCP
|
|
116
109
|
"""
|
|
117
|
-
from
|
|
110
|
+
from fastmcp import FastMCP
|
|
118
111
|
mcp = FastMCP(name=self.ver.__appid__)
|
|
119
112
|
return mcp
|
|
120
113
|
|
|
@@ -174,33 +167,6 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
174
167
|
f"1. ユーザーのクエリからが実行したいコマンドを特定します。\n" + \
|
|
175
168
|
f"2. コマンド実行に必要なパラメータのなかで、ユーザーのクエリから取得できないものは、コマンド定義にあるデフォルト値を指定して実行してください。\n" + \
|
|
176
169
|
f"3. もしエラーが発生した場合は、ユーザーにコマンド名とパラメータとエラー内容を提示してください。\n"
|
|
177
|
-
"""
|
|
178
|
-
f"2. コマンド実行に必要なパラメータを特定します。\n" + \
|
|
179
|
-
f"3. ユーザーのクエリから指定しているパラメータを取得します。\n" + \
|
|
180
|
-
f"4. ユーザーが指定しているパラメータと、コマンド実行に必要なパラメータを比較し、不足しているパラメータを取得します。\n" + \
|
|
181
|
-
f"5. 以下に「パラメータ = デフォルト値」を示しているので、不足しているパラメータはデフォルト値を使用します。\n" + \
|
|
182
|
-
f" 但しコマンドが実行に必要のないパラメータは指定しないようにしてください。\n" + \
|
|
183
|
-
f" host = {args.host if hasattr(args, 'host') and args.host else self.default_host}\n" + \
|
|
184
|
-
f" port = {args.port if hasattr(args, 'port') and args.port else self.default_port}\n" + \
|
|
185
|
-
f" password = {args.password if hasattr(args, 'password') and args.password else self.default_pass}\n" + \
|
|
186
|
-
f" svname = {args.svname if hasattr(args, 'svname') and args.svname else self.default_svname}\n" + \
|
|
187
|
-
f" data = {args.data if hasattr(args, 'data') and args.data else self.default_data}\n" + \
|
|
188
|
-
f" retry_count = {args.retry_count if hasattr(args, 'retry_count') and args.retry_count else 3}\n" + \
|
|
189
|
-
f" retry_interval = {args.retry_interval if hasattr(args, 'retry_interval') and args.retry_interval else 3}\n" + \
|
|
190
|
-
f" timeout = {args.timeout if hasattr(args, 'timeout') and args.timeout else 15}\n" + \
|
|
191
|
-
f" output_json = {args.output_json if hasattr(args, 'output_json') and args.output_json else None}\n" + \
|
|
192
|
-
f" output_json_append = {args.output_json_append if hasattr(args, 'output_json_append') and args.output_json_append else False}\n" + \
|
|
193
|
-
f" stdout_log = {args.stdout_log if hasattr(args, 'stdout_log') and args.stdout_log else False}\n" + \
|
|
194
|
-
f" capture_stdout = {args.capture_stdout if hasattr(args, 'capture_stdout') and args.capture_stdout else False}\n" + \
|
|
195
|
-
f" capture_maxsize = {args.capture_maxsize if hasattr(args, 'capture_maxsize') and args.capture_maxsize else 100}\n" + \
|
|
196
|
-
f" tag = {args.tag if hasattr(args, 'tag') and args.tag else None}\n" + \
|
|
197
|
-
f" clmsg_id = {args.clmsg_id if hasattr(args, 'clmsg_id') and args.clmsg_id else None}\n" + \
|
|
198
|
-
f" signin_file = {args.signin_file if hasattr(args, 'signin_file') and args.signin_file else f'.{self.ver.__appid__}/user_list.yml'}\n" + \
|
|
199
|
-
f"6. 以上のパラメータを使用しても不足するパラメータは、Noneを使用します。\n" + \
|
|
200
|
-
f"7. 以上のパラメータを使用してコマンドを実行して、コマンドの結果はJSONでユーザーに提示してください。\n" + \
|
|
201
|
-
f"8. もし予期しないパラメータを受け取ったという旨のエラーが発生した場合は、そのパラメータを指定せずに再実行してください。\n" + \
|
|
202
|
-
f"9. もしエラーが発生した場合は、ユーザーにコマンド名とパラメータとエラー内容を提示してください。\n"
|
|
203
|
-
"""
|
|
204
170
|
|
|
205
171
|
description = description if is_japan else \
|
|
206
172
|
f"Command offer registered in {self.ver.__appid__}."
|
|
@@ -210,32 +176,6 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
210
176
|
f"1. Identify the command you want to execute from the user's query.\n" + \
|
|
211
177
|
f"2. Any parameters required to execute the command that cannot be obtained from the user's query should be executed with the default values provided in the command definition.\n" + \
|
|
212
178
|
f"3. If an error occurs, provide the user with the command name, parameters, and error description.\n"
|
|
213
|
-
"""
|
|
214
|
-
f"2. Identify the parameters required to execute the command.\n" + \
|
|
215
|
-
f"3. Retrieve the specified parameters from the user's query.\n" + \
|
|
216
|
-
f"4. It compares the parameters specified by the user with those required to execute the command and obtains the missing parameters.\n" + \
|
|
217
|
-
f"5. The “Parameter = Default Value” is shown below, so use default values for missing parameters.\n" + \
|
|
218
|
-
f" However, do not specify parameters that the command does not require for execution.\n" + \
|
|
219
|
-
f" host = {args.host if hasattr(args, 'host') and args.host else self.default_host}\n" + \
|
|
220
|
-
f" port = {args.port if hasattr(args, 'port') and args.port else self.default_port}\n" + \
|
|
221
|
-
f" password = {args.password if hasattr(args, 'password') and args.password else self.default_pass}\n" + \
|
|
222
|
-
f" svname = {args.svname if hasattr(args, 'svname') and args.svname else self.default_svname}\n" + \
|
|
223
|
-
f" data = {args.data if hasattr(args, 'data') and args.data else self.default_data}\n" + \
|
|
224
|
-
f" retry_count = {args.retry_count if hasattr(args, 'retry_count') and args.retry_count else 3}\n" + \
|
|
225
|
-
f" retry_interval = {args.retry_interval if hasattr(args, 'retry_interval') and args.retry_interval else 3}\n" + \
|
|
226
|
-
f" timeout = {args.timeout if hasattr(args, 'timeout') and args.timeout else 15}\n" + \
|
|
227
|
-
f" output_json = {args.output_json if hasattr(args, 'output_json') and args.output_json else None}\n" + \
|
|
228
|
-
f" output_json_append = {args.output_json_append if hasattr(args, 'output_json_append') and args.output_json_append else False}\n" + \
|
|
229
|
-
f" stdout_log = {args.stdout_log if hasattr(args, 'stdout_log') and args.stdout_log else False}\n" + \
|
|
230
|
-
f" capture_stdout = {args.capture_stdout if hasattr(args, 'capture_stdout') and args.capture_stdout else False}\n" + \
|
|
231
|
-
f" capture_maxsize = {args.capture_maxsize if hasattr(args, 'capture_maxsize') and args.capture_maxsize else 100}\n" + \
|
|
232
|
-
f" tag = {args.tag if hasattr(args, 'tag') and args.tag else None}\n" + \
|
|
233
|
-
f" clmsg_id = {args.clmsg_id if hasattr(args, 'clmsg_id') and args.clmsg_id else None}\n" + \
|
|
234
|
-
f"6. Use None for parameters that are missing even with the above parameters.\n" + \
|
|
235
|
-
f"7. Execute the command using the above parameters and present the results of the command to the user in JSON.\n" + \
|
|
236
|
-
f"8. If you receive an error stating that an unexpected parameter was received, rerun the program without that parameter.\n" + \
|
|
237
|
-
f"9. If an error occurs, provide the user with the command name, parameters, and error description.\n"
|
|
238
|
-
"""
|
|
239
179
|
|
|
240
180
|
description = args.agent_description if args.agent_description else description
|
|
241
181
|
instruction = args.agent_instruction if args.agent_instruction else instruction
|
|
@@ -360,7 +300,7 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
360
300
|
common.reset_logger("google_adk.google.adk.sessions.database_session_service")
|
|
361
301
|
common.reset_logger("mcp.server.streamable_http_manager")
|
|
362
302
|
# モジュールインポート
|
|
363
|
-
from
|
|
303
|
+
from fastmcp import FastMCP
|
|
364
304
|
from google.adk.sessions import BaseSessionService
|
|
365
305
|
mcp:FastMCP = self.create_mcpserver(args)
|
|
366
306
|
session_service:BaseSessionService = self.create_session_service(args)
|
|
@@ -410,8 +350,7 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
410
350
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
411
351
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),)
|
|
412
352
|
fn = f"{mode}_{cmd}"
|
|
413
|
-
func_txt
|
|
414
|
-
func_txt += f'def {fn}(' + ", ".join([f'{o["opt"]}:{_t2s(o, False)}' for o in choices]) + '):\n'
|
|
353
|
+
func_txt = f'def {fn}(' + ", ".join([f'{o["opt"]}:{_t2s(o, False)}' for o in choices]) + '):\n'
|
|
415
354
|
func_txt += f' """\n'
|
|
416
355
|
func_txt += f' {discription}\n'
|
|
417
356
|
func_txt += f' Args:\n'
|
|
@@ -472,6 +411,9 @@ class AgentBase(feature.ResultEdgeFeature):
|
|
|
472
411
|
exec(func_txt,
|
|
473
412
|
dict(time=time,List=List, argparse=argparse, common=common, Options=Options, logging=logging, signin=signin,),
|
|
474
413
|
dict(tools=tools, mcp=mcp))
|
|
414
|
+
exec(f"@mcp.tool\n{func_txt}",
|
|
415
|
+
dict(time=time,List=List, argparse=argparse, common=common, Options=Options, logging=logging, signin=signin,),
|
|
416
|
+
dict(tools=[], mcp=mcp))
|
|
475
417
|
root_agent = self.create_agent(logger, args, tools)
|
|
476
418
|
runner = self.create_runner(logger, args, session_service, root_agent)
|
|
477
419
|
if logger.level == logging.DEBUG:
|
|
@@ -45,7 +45,7 @@ class CmdList(feature.OneshotResultEdgeFeature):
|
|
|
45
45
|
dict(opt="kwd", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
46
46
|
discription_ja=f"検索したいコマンド名を指定します。中間マッチで検索します。",
|
|
47
47
|
discription_en=f"Specify the name of the command you want to search. Search with intermediate matches."),
|
|
48
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
48
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=False, multi=False, hide=True, choice=None,
|
|
49
49
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。",
|
|
50
50
|
discription_en="Specify a file containing users and passwords with which they can signin."),
|
|
51
51
|
dict(opt="groups", type=Options.T_STR, default=None, required=False, multi=True, hide=True, choice=None,
|
|
@@ -45,7 +45,7 @@ class CmdLoad(feature.OneshotResultEdgeFeature):
|
|
|
45
45
|
dict(opt="title", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
46
46
|
discription_ja=f"読込みたいコマンド名を指定します。",
|
|
47
47
|
discription_en=f"Specify the name of the command to be read."),
|
|
48
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
48
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=False, multi=False, hide=True, choice=None,
|
|
49
49
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。",
|
|
50
50
|
discription_en="Specify a file containing users and passwords with which they can signin."),
|
|
51
51
|
dict(opt="groups", type=Options.T_STR, default=None, required=False, multi=True, hide=True, choice=None,
|
|
@@ -58,7 +58,7 @@ class WebApikeyAdd(feature.UnsupportEdgeFeature):
|
|
|
58
58
|
dict(opt="apikey_name", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
59
59
|
discription_ja="このユーザーのApiKey名を指定します。",
|
|
60
60
|
discription_en="Specify the ApiKey name for this user."),
|
|
61
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
61
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
62
62
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
63
63
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
64
64
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -58,7 +58,7 @@ class WebApikeyDel(feature.UnsupportEdgeFeature):
|
|
|
58
58
|
dict(opt="apikey_name", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
59
59
|
discription_ja="このユーザーのApiKey名を指定します。",
|
|
60
60
|
discription_en="Specify the ApiKey name for this user."),
|
|
61
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
61
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
62
62
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
63
63
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
64
64
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -61,7 +61,7 @@ class WebGroupAdd(feature.UnsupportEdgeFeature):
|
|
|
61
61
|
dict(opt="group_parent", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
62
62
|
discription_ja="親グループ名を指定します。",
|
|
63
63
|
discription_en="Specifies the parent group name."),
|
|
64
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
64
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
65
65
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
66
66
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
67
67
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -55,7 +55,7 @@ class WebGroupDel(feature.UnsupportEdgeFeature):
|
|
|
55
55
|
dict(opt="group_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
|
|
56
56
|
discription_ja="グループIDを指定します。",
|
|
57
57
|
discription_en="Specify the group ID. Do not duplicate other groups."),
|
|
58
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
58
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
59
59
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
60
60
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
61
61
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -61,7 +61,7 @@ class WebGroupEdit(feature.UnsupportEdgeFeature):
|
|
|
61
61
|
dict(opt="group_parent", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
62
62
|
discription_ja="親グループ名を指定します。",
|
|
63
63
|
discription_en="Specifies the parent group name."),
|
|
64
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
64
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
65
65
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
66
66
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
67
67
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -55,7 +55,7 @@ class WebGroupList(feature.OneshotResultEdgeFeature):
|
|
|
55
55
|
dict(opt="group_name", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
56
56
|
discription_ja="グループ名を指定して取得します。省略した時は全てのグループを取得します。",
|
|
57
57
|
discription_en="Retrieved by specifying a group name. If omitted, all groups are retrieved."),
|
|
58
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
58
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
59
59
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
60
60
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
61
61
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -157,32 +157,12 @@ class WebStart(feature.UnsupportEdgeFeature, agent_base.AgentBase):
|
|
|
157
157
|
w = None
|
|
158
158
|
try:
|
|
159
159
|
args.gui_mode = False if not hasattr(args, 'gui_mode') or not args.gui_mode else args.gui_mode
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
result_html=args.result_html, users_html=args.users_html,
|
|
167
|
-
assets=args.assets, signin_html=args.signin_html, signin_file=args.signin_file, gui_mode=args.gui_mode)
|
|
168
|
-
agent_runner = None
|
|
169
|
-
mcp = None
|
|
170
|
-
logger.info(f"Agent={args.agent}")
|
|
171
|
-
if args.agent=='use':
|
|
172
|
-
if args.agent_session_store == 'sqlite':
|
|
173
|
-
args.agent_session_dburl = "sqlite://" + pathname2url(str(w.agent_path / 'session.db'))
|
|
174
|
-
elif args.agent_session_store == 'postgresql':
|
|
175
|
-
args.agent_session_dburl = f"postgresql+psycopg://{args.agent_pg_user}:{args.agent_pg_password}@{args.agent_pg_host}:{args.agent_pg_port}/{args.agent_pg_dbname}"
|
|
176
|
-
else:
|
|
177
|
-
args.agent_session_dburl = None
|
|
178
|
-
agent_runner, mcp = self.init_agent_runner(logger, args)
|
|
179
|
-
w.start(allow_host=args.allow_host, listen_port=args.listen_port, ssl_listen_port=args.ssl_listen_port,
|
|
180
|
-
ssl_cert=ssl_cert, ssl_key=ssl_key, ssl_keypass=args.ssl_keypass, ssl_ca_certs=ssl_ca_certs,
|
|
181
|
-
session_domain=args.session_domain, session_path=args.session_path,
|
|
182
|
-
session_secure=args.session_secure, session_timeout=args.session_timeout,
|
|
183
|
-
outputs_key=args.outputs_key, guvicorn_workers=args.guvicorn_workers, guvicorn_timeout=args.guvicorn_timeout,
|
|
184
|
-
agent_runner=agent_runner, mcp=mcp, mcp_listen_port=args.mcp_listen_port, mcp_ssl_listen_port=args.mcp_ssl_listen_port)
|
|
185
|
-
|
|
160
|
+
w = self.createWeb(logger, args)
|
|
161
|
+
agent_runner, mcp = self._init_agent_runner(w, logger, args)
|
|
162
|
+
args.ssl_cert = None if args.ssl_cert is None else Path(args.ssl_cert)
|
|
163
|
+
args.ssl_key = None if args.ssl_key is None else Path(args.ssl_key)
|
|
164
|
+
args.ssl_ca_certs = None if args.ssl_ca_certs is None else Path(args.ssl_ca_certs)
|
|
165
|
+
self.start(w, agent_runner, mcp, logger, args)
|
|
186
166
|
msg = dict(success="web complate.")
|
|
187
167
|
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
188
168
|
return 0, msg, w
|
|
@@ -191,3 +171,62 @@ class WebStart(feature.UnsupportEdgeFeature, agent_base.AgentBase):
|
|
|
191
171
|
msg = dict(warn=f"Web server start error. {e}")
|
|
192
172
|
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
193
173
|
return 1, msg, w
|
|
174
|
+
|
|
175
|
+
def createWeb(self, logger:logging.Logger, args:argparse.Namespace) -> web.Web:
|
|
176
|
+
"""
|
|
177
|
+
Webオブジェクトを作成します
|
|
178
|
+
|
|
179
|
+
Args:
|
|
180
|
+
logger (logging.Logger): ロガー
|
|
181
|
+
args (argparse.Namespace): 引数
|
|
182
|
+
|
|
183
|
+
Returns:
|
|
184
|
+
web.Web: Webオブジェクト
|
|
185
|
+
"""
|
|
186
|
+
w = web.Web(logger, Path(args.data), appcls=self.appcls, ver=self.ver,
|
|
187
|
+
redis_host=args.host, redis_port=args.port, redis_password=args.password, svname=args.svname,
|
|
188
|
+
client_only=args.client_only, doc_root=args.doc_root, gui_html=args.gui_html, filer_html=args.filer_html,
|
|
189
|
+
result_html=args.result_html, users_html=args.users_html,
|
|
190
|
+
assets=args.assets, signin_html=args.signin_html, signin_file=args.signin_file, gui_mode=args.gui_mode)
|
|
191
|
+
return w
|
|
192
|
+
|
|
193
|
+
def _init_agent_runner(self, w:web.Web, logger:logging.Logger, args:argparse.Namespace) -> Tuple[Any, Any]:
|
|
194
|
+
"""
|
|
195
|
+
エージェントをセットアップします
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
w (web.Web): Webオブジェクト
|
|
199
|
+
logger (logging.Logger): ロガー
|
|
200
|
+
args (argparse.Namespace): 引数
|
|
201
|
+
|
|
202
|
+
Returns:
|
|
203
|
+
Tuple[agent_base.AgentBase, Any]: エージェントオブジェクト, MCPオブジェクト
|
|
204
|
+
"""
|
|
205
|
+
logger.info(f"Agent={args.agent}")
|
|
206
|
+
if args.agent=='use':
|
|
207
|
+
if args.agent_session_store == 'sqlite':
|
|
208
|
+
args.agent_session_dburl = "sqlite://" + pathname2url(str(w.agent_path / 'session.db'))
|
|
209
|
+
elif args.agent_session_store == 'postgresql':
|
|
210
|
+
args.agent_session_dburl = f"postgresql+psycopg://{args.agent_pg_user}:{args.agent_pg_password}@{args.agent_pg_host}:{args.agent_pg_port}/{args.agent_pg_dbname}"
|
|
211
|
+
else:
|
|
212
|
+
args.agent_session_dburl = None
|
|
213
|
+
return self.init_agent_runner(logger, args)
|
|
214
|
+
return None, None
|
|
215
|
+
|
|
216
|
+
def start(self, w:web.Web, agent_runner, mcp, logger:logging.Logger, args:argparse.Namespace) -> None:
|
|
217
|
+
"""
|
|
218
|
+
Webモードを起動します
|
|
219
|
+
|
|
220
|
+
Args:
|
|
221
|
+
w (web.Web): Webオブジェクト
|
|
222
|
+
agent_runner: エージェントランナー
|
|
223
|
+
mcp: MCPオブジェクト
|
|
224
|
+
logger (logging.Logger): ロガー
|
|
225
|
+
args (argparse.Namespace): 引数
|
|
226
|
+
"""
|
|
227
|
+
w.start(allow_host=args.allow_host, listen_port=args.listen_port, ssl_listen_port=args.ssl_listen_port,
|
|
228
|
+
ssl_cert=args.ssl_cert, ssl_key=args.ssl_key, ssl_keypass=args.ssl_keypass, ssl_ca_certs=args.ssl_ca_certs,
|
|
229
|
+
session_domain=args.session_domain, session_path=args.session_path,
|
|
230
|
+
session_secure=args.session_secure, session_timeout=args.session_timeout,
|
|
231
|
+
outputs_key=args.outputs_key, guvicorn_workers=args.guvicorn_workers, guvicorn_timeout=args.guvicorn_timeout,
|
|
232
|
+
agent_runner=agent_runner, mcp=mcp,)
|
|
@@ -70,7 +70,7 @@ class WebUserAdd(feature.UnsupportEdgeFeature):
|
|
|
70
70
|
dict(opt="user_group", type=Options.T_STR, default=None, required=True, multi=True, hide=False, choice=None,
|
|
71
71
|
discription_ja="ユーザーが所属するグループを指定します。",
|
|
72
72
|
discription_en="Specifies the groups to which the user belongs."),
|
|
73
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
73
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
74
74
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
75
75
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
76
76
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -55,7 +55,7 @@ class WebUserDel(feature.UnsupportEdgeFeature):
|
|
|
55
55
|
dict(opt="user_id", type=Options.T_INT, default=None, required=True, multi=False, hide=False, choice=None,
|
|
56
56
|
discription_ja="ユーザーIDを指定します。",
|
|
57
57
|
discription_en="Specify the user ID."),
|
|
58
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
58
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
59
59
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
60
60
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
61
61
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -70,7 +70,7 @@ class WebUserEdit(feature.UnsupportEdgeFeature):
|
|
|
70
70
|
dict(opt="user_group", type=Options.T_STR, default=None, required=True, multi=True, hide=False, choice=None,
|
|
71
71
|
discription_ja="ユーザーが所属するグループを指定します。",
|
|
72
72
|
discription_en="Specifies the groups to which the user belongs."),
|
|
73
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
73
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
74
74
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
75
75
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
76
76
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -55,7 +55,7 @@ class WebUserList(feature.OneshotResultEdgeFeature):
|
|
|
55
55
|
dict(opt="user_name", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
56
56
|
discription_ja="ユーザー名を指定して取得します。省略した時は全てのユーザーを取得します。",
|
|
57
57
|
discription_en="Retrieved by specifying a user name. If omitted, all users are retrieved."),
|
|
58
|
-
dict(opt="signin_file", type=Options.T_FILE, default=
|
|
58
|
+
dict(opt="signin_file", type=Options.T_FILE, default=f".{self.ver.__appid__}/user_list.yml", required=True, multi=False, hide=False, choice=None,
|
|
59
59
|
discription_ja="サインイン可能なユーザーとパスワードを記載したファイルを指定します。省略した時は認証を要求しません。",
|
|
60
60
|
discription_en="Specify a file containing users and passwords with which they can signin. If omitted, no authentication is required."),
|
|
61
61
|
dict(opt="stdout_log", type=Options.T_BOOL, default=True, required=False, multi=False, hide=True, choice=[True, False],
|
|
@@ -60,7 +60,7 @@ class Agent(feature.WebFeature):
|
|
|
60
60
|
session_id = form.get('session_id', None)
|
|
61
61
|
sessions = await web.list_agent_sessions(web.agent_runner.session_service, user_id, session_id=session_id)
|
|
62
62
|
data = [dict(id=s.id, app_name=s.app_name, user_id=s.user_id, last_update_time=s.last_update_time,
|
|
63
|
-
events=[dict(author=ev.author,text=ev.content.parts[0].text) for ev in s.events if ev.content and ev.content.parts]) for s in sessions]
|
|
63
|
+
events=[dict(author=ev.author,text=ev.content.parts[0].text) for ev in s.events if ev.content and ev.content.parts]) for s in sessions if s]
|
|
64
64
|
data.reverse() # 最新のセッションを先頭にする
|
|
65
65
|
return dict(success=data)
|
|
66
66
|
|
|
@@ -204,14 +204,20 @@ class Agent(feature.WebFeature):
|
|
|
204
204
|
outputs = dict()
|
|
205
205
|
if event.turn_complete:
|
|
206
206
|
outputs['turn_complete'] = True
|
|
207
|
-
yield
|
|
207
|
+
yield common.to_str(outputs)
|
|
208
208
|
if event.interrupted:
|
|
209
209
|
outputs['interrupted'] = True
|
|
210
|
-
yield
|
|
210
|
+
yield common.to_str(outputs)
|
|
211
211
|
#if event.is_final_response():
|
|
212
212
|
msg = None
|
|
213
213
|
if event.content and event.content.parts:
|
|
214
214
|
msg = "\n".join([p.text for p in event.content.parts if p and p.text])
|
|
215
|
+
calls = event.get_function_calls()
|
|
216
|
+
if calls:
|
|
217
|
+
msg += '\n```json{"function_calls":'+common.to_str([dict(fn=c.name,args=c.args) for c in calls])+'}```'
|
|
218
|
+
responses = event.get_function_responses()
|
|
219
|
+
if responses:
|
|
220
|
+
msg += '\n```json{"function_responses":'+common.to_str([dict(fn=r.name, res=r.response) for r in responses])+'}```'
|
|
215
221
|
elif event.actions and event.actions.escalate:
|
|
216
222
|
msg = f"Agent escalated: {event.error_message or 'No specific message.'}"
|
|
217
223
|
if msg:
|
|
@@ -219,7 +225,7 @@ class Agent(feature.WebFeature):
|
|
|
219
225
|
|
|
220
226
|
outputs['message'] = msg
|
|
221
227
|
web.options.audit_exec(sock, web, body=dict(agent_session=agent_session.id, result=msg))
|
|
222
|
-
yield
|
|
228
|
+
yield common.to_str(outputs)
|
|
223
229
|
if event.is_final_response():
|
|
224
230
|
break
|
|
225
231
|
except WebSocketDisconnect:
|
|
@@ -295,12 +295,18 @@ class Options:
|
|
|
295
295
|
discription_ja="クライアントのメッセージIDを指定します。省略した場合はuuid4で生成されます。",
|
|
296
296
|
discription_en="Specifies the message ID of the client. If omitted, uuid4 will be generated.",
|
|
297
297
|
choice=None)
|
|
298
|
+
self._options["description"] = dict(
|
|
299
|
+
type=Options.T_TEXT, default=None, required=False, multi=False, hide=True,
|
|
300
|
+
discription_ja="このコマンド登録の説明文を指定します。Agentがこのコマンドの用途を理解するのに使用します。",
|
|
301
|
+
discription_en="Specifies a description of this command registration, used to help the Agent understand the use of this command.",
|
|
302
|
+
choice=None)
|
|
298
303
|
|
|
299
304
|
def init_debugoption(self):
|
|
300
305
|
# デバックオプションを追加
|
|
301
306
|
self._options["debug"]["opt"] = "debug"
|
|
302
307
|
self._options["tag"]["opt"] = "tag"
|
|
303
308
|
self._options["clmsg_id"]["opt"] = "clmsg_id"
|
|
309
|
+
self._options["description"]["opt"] = "description"
|
|
304
310
|
for key, mode in self._options["cmd"].items():
|
|
305
311
|
if type(mode) is not dict:
|
|
306
312
|
continue
|
|
@@ -315,6 +321,8 @@ class Options:
|
|
|
315
321
|
c["choice"].append(self._options["tag"])
|
|
316
322
|
if "clmsg_id" not in [_o['opt'] for _o in c["choice"]]:
|
|
317
323
|
c["choice"].append(self._options["clmsg_id"])
|
|
324
|
+
if "description" not in [_o['opt'] for _o in c["choice"]]:
|
|
325
|
+
c["choice"].append(self._options["description"])
|
|
318
326
|
if c["opt"] not in [_o['opt'] for _o in self._options["cmd"]["choice"]]:
|
|
319
327
|
self._options["cmd"]["choice"] += [c]
|
|
320
328
|
self._options["mode"][key] = mode
|