cmdbox 0.8.0__tar.gz → 0.8.0.2__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.
- {cmdbox-0.8.0/cmdbox.egg-info → cmdbox-0.8.0.2}/PKG-INFO +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/a2a.py +0 -5
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_list.py +14 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_load.py +1 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_save.py +4 -16
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_translation.py +2 -2
- cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_add.py +137 -0
- cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_del.py +99 -0
- cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_list.py +121 -0
- cmdbox-0.8.0.2/cmdbox/app/features/cli/cmdbox_url_load.py +118 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_do_signin.py +7 -6
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_exec_cmd.py +1 -1
- cmdbox-0.8.0/cmdbox/app/features/web/cmdbox_web_filer download.py → cmdbox-0.8.0.2/cmdbox/app/features/web/cmdbox_web_filer_download.py +4 -3
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_gui.py +23 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_signin.py +6 -6
- cmdbox-0.8.0.2/cmdbox/app/features/web/cmdbox_web_url.py +28 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/user_list.yml +6 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/version.py +2 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/agent.html +6 -17
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent.css +1 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent.js +17 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_history.js +38 -21
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_agent.js +0 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_embed.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_embed.js +0 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_extract.js +0 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_llm.js +14 -4
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_mcpsv.js +0 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_rag.html +2 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_rag.js +0 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_runner.js +38 -8
- cmdbox-0.8.0.2/cmdbox/web/assets/agent/agent_sidebar_content.html +32 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/main.js +41 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/common.js +61 -35
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/list_pipe.js +2 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/main.js +1 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/filer/filer.js +17 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/limiter/limiter.js +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/limiter/limiter_plan.js +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/audit.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/gui.html +3 -3
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/limiter.html +2 -2
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/users.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2/cmdbox.egg-info}/PKG-INFO +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/SOURCES.txt +6 -1
- cmdbox-0.8.0/cmdbox/web/assets/agent/agent_sidebar_content.html +0 -14
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/LICENSE +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/MANIFEST.in +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/README.md +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/__main__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/app.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/azure_signin.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/azure_signin_proxy.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/azure_signin_saml.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/github_signin.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/google_signin.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/signin.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/auth/signin_saml.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/client.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/common.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/cache.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/convert.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/limiter.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/loghandler.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/module.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/redis_client.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/resdata.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/testable.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/commons/validator.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/edge.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/edge_tool.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/feature.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_cmd_info.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_vision_install.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_vision_predict.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/_cmdbox_vision_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/agent/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/agent/agant_base.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/audit/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/audit/audit_base.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox/cmdbox_base.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_a2asv_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_a2asv_stop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_agent_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_chat.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcp_client.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcp_proxy.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_mcpsv_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_runner_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_session_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_agent_session_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_createdb.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_search.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_audit_write.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_copy.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_download.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_is.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_move.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_remove.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_file_upload.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_http.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_server_info.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_client_time.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmd_check.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmd_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmd_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_down.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_exec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_initdata_install.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_logs.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_pgsql_install.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_pgsql_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_reboot.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_redis_install.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_redis_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_server_install.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_server_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_setup.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_uninstall.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_cmdbox_up.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_delete.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_insert.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_select.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_data_update.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_idx_create.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_idx_drop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_tbl_create.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_datasource_tbl_drop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_edge_config.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_edge_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_cell_details.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_cell_search.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_cell_values.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_excel_sheet_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_chunklet.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_pdfplumber.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_extract_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_gui_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_gui_stop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_billing_calc.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_billing_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_counter.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_evidences.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_plan_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_limiter_targets.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_chat.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_embed.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_llm_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_mcpsv_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_mcpsv_stop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_omni_pred.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_build.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_load.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_regist.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_save.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_rag_search.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_stop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_server_time.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_gen_cli_docs.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_gen_cli_spec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_gen_test_spec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_test_run_spec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_install.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_say.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_tts_uninstall.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_apikey_add.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_apikey_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_gencert.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_add.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_edit.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_group_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_start.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_stop.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_add.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_del.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_edit.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/cmdbox_web_user_list.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/datasource/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/datasource/datasource_base.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/excel/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/excel/excel_base.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_base.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_postgresql.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_sqlite.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/rag/rag_store.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/gen_cli_docs.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/gen_cli_spec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/gen_test_spec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/cli/test/run_spec.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_agent.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_assets.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_audit.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_audit_metrics.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_bbforce_cmd.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_copyright.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_del_cmd.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_del_pipe.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_do_signout.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_exec_pipe.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_filer.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_filer_upload.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_cmd_choices.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_cmds.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_modes.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_get_server_opt.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_gui_callback.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_limiter.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_list_cmd.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_list_pipe.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_load_cmd.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_load_pipe.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_raw_cmd.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_raw_pipe.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_result.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_save_cmd.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_save_pipe.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_user_data.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_users.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_usesignout.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/features/web/cmdbox_web_versions_cmdbox.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/filer.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/mcp.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/options.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/server.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/app/web.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/autoload.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/Dockerfile +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/docker-compose.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/scripts/start.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/cmdbox/scripts/up.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/Dockerfile +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/scripts/down.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/scripts/start.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/pgsql/scripts/up.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/redis/Dockerfile +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/redis/scripts/down.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/docker/redis/scripts/up.sh +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/client/.cmds/cmd-cmd_list.json +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/current/.cmdbox/user_list.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/server/.agent/translation.json +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/server/.datasource/datasource-ds_default.json +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/cmdbox_initdata/setup.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/features.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/.vscode/launch.json +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/requirements.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/__main__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/app.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/extensions/features.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/extensions/user_list.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/logconf_sample.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/version.py +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/web/assets/sample/favicon.ico +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/extensions/sample_project/sample/web/assets/sample/icon.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Authlib_1_7_2_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Jinja2_3_1_6_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Markdown_3_10_2_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_MarkupSafe_3_0_3_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Morfessor_2_0_6_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_PyJWT_2_13_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_PyYAML_6_0_3_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Pygments_2_20_0_BSD-2-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_SQLAlchemy_2_0_51_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_Sphinx_9_0_4_BSD-2-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_a2a-sdk_0_3_26_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiofile_3_11_1_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiohappyeyeballs_2_7_1_Python_Software_Foundation_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiohttp_3_14_1_Apache-2_0_AND_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiosignal_1_4_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_aiosqlite_0_22_1_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_alabaster_1_0_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_annotated-doc_0_0_4_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_annotated-types_0_7_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_anyio_4_14_1_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_argcomplete_3_7_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_async-timeout_5_0_1_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_asyncpg_0_31_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_attrs_26_1_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_babel_2_18_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_backports_tarfile_1_2_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_beartype_0_22_9_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_beautifulsoup4_4_15_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_build_1_5_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cachetools_7_1_4_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_caio_0_9_25_UNKNOWN.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_certifi_2026_6_17_Mozilla_Public_License_2_0-MPL_2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cffi_2_0_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_charset-normalizer_3_4_7_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_chunklet-py_2_3_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_click_8_4_2_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cobble_0_1_4_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_colorama_0_4_6_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cryptography_49_0_0_Apache-2_0_OR_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_cyclopts_4_20_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_debugpy_1_8_21_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_defusedxml_0_7_1_Python_Software_Foundation_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_distro_1_9_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_dnspython_2_8_0_ISC_License-ISCL.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_docstring_parser_0_18_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_docutils_0_22_4_BSD_License-GNU_General_Public_License-GPL-Public_Domain.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_email-validator_2_3_0_The_Unlicense-Unlicense.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_et_xmlfile_2_0_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_exceptiongroup_1_3_1_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastapi_0_139_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastmcp-slim_3_4_2_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastmcp_3_4_2_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fastuuid_0_14_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_filelock_3_29_5_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_frozenlist_1_8_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_fsspec_2026_6_0_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_gevent_26_5_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-adk_2_3_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-api-core_2_31_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-auth_2_55_1_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_google-genai_2_10_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_googleapis-common-protos_1_75_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_graphviz_0_21_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_greenlet_3_5_3_MIT_AND_PSF-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_griffelib_2_1_0_ISC.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_gunicorn_26_0_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_h11_0_16_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_hf-xet_1_5_1_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_httpcore_1_0_9_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_httpx-sse_0_4_3_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_httpx_0_28_1_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_huggingface_hub_1_22_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_id_1_6_1_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_idna_3_18_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_imagesize_2_0_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_importlib_metadata_8_9_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_indic-nlp-library_0_92_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_iniconfig_2_3_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_itsdangerous_2_2_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jaraco_classes_3_4_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jaraco_context_6_1_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jaraco_functools_4_5_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jiter_0_16_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_joserfc_1_7_2_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonpatch_1_33_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonpointer_3_1_1_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonref_1_1_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonschema-path_0_5_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonschema-specifications_2025_9_1_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_jsonschema_4_26_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_keyring_25_7_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-classic_1_0_8_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-community_0_4_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-core_1_4_8_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-protocol_0_0_18_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langchain-text-splitters_1_1_2_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_langsmith_0_9_7_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_litellm_1_91_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_loguru_0_7_3_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_lxml_6_1_1_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mammoth_1_12_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_markdown-it-py_4_2_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_markdownify_1_2_3_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mcp_1_28_1_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mdurl_0_1_2_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_more-itertools_11_1_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_mpire_2_10_2_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_multidict_6_7_1_Apache_License_2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_nh3_0_3_6_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_numpy_2_4_6_BSD-3-Clause_AND_0BSD_AND_MIT_AND_Zlib_AND_CC0-1_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_odfpy_1_4_1_Apache_Software_License-GNU_General_Public_License-GPL-GNU_Library_or_Lesser_General_Public_License-LGPL.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_openai_2_44_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_openapi-pydantic_0_5_1_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_openpyxl_3_1_5_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_opentelemetry-api_1_42_1_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_opentelemetry-sdk_1_42_1_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_opentelemetry-semantic-conventions_0_63b1_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_orjson_3_11_9_MPL-2_0_AND-Apache-2_0_OR_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_packaging_26_2_Apache-2_0_OR_BSD-2-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pandas_3_0_3_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pathable_0_6_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pdfminer_six_20260107_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pdfplumber_0_11_10_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pillow_12_3_0_MIT-CMU.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pip_24_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pipdeptree_3_1_1_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_platformdirs_4_10_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pluggy_1_6_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_plyer_2_1_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_prettytable_3_18_0_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_prompt_toolkit_3_0_52_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_propcache_0_5_2_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_proto-plus_1_28_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_protobuf_7_35_1_3-Clause_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_psycopg-binary_3_3_4_LGPL-3_0-only.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_psycopg-pool_3_3_1_LGPL-3_0-only.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_psycopg_3_3_4_LGPL-3_0-only.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_py-key-value-aio_0_4_5_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_py3langid_0_3_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyOpenSSL_26_3_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyasn1_0_6_3_BSD-2-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyasn1_modules_0_4_2_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pycparser_3_0_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pycryptodome_3_23_0_BSD_License-Public_Domain.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pydantic-settings_2_14_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pydantic_2_13_4_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pydantic_core_2_46_4_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pylatexenc_2_10_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pypdfium2_5_11_0_BSD-3-Clause-Apache-2_0-dependency_licenses.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyperclip_1_11_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pyproject_hooks_1_2_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pysbd_0_3_4_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pytest_9_1_1_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-crfsuite_0_9_12_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-dateutil_2_9_0_post0_Apache_Software_License-BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-docx_1_2_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-dotenv_1_2_2_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_python-multipart_0_0_32_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pywin32-ctypes_0_2_3_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_pywin32_312_Python_Software_Foundation_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_questionary_2_1_1_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_readme_renderer_45_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_redis_8_0_1_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_referencing_0_37_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_regex_2026_6_28_Apache-2_0_AND_CNRI-Python.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_requests-toolbelt_1_0_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_requests_2_34_2_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rfc3986_2_0_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rich-rst_2_1_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rich_15_0_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_roman-numerals_4_1_0_0BSD_OR_CC0-1_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_rpds-py_2026_6_3_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sentencex_1_0_30_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sentsplit_1_0_8_UNKNOWN.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_setuptools_65_5_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_shellingham_1_5_4_ISC_License-ISCL.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_six_1_17_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sniffio_1_3_1_Apache_Software_License-MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_snowballstemmer_3_1_1_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_soupsieve_2_8_4_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-argparse_0_6_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-intl_2_3_2_BSD-2-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-last-updated-by-git_0_3_8_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx-sitemap_2_9_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx_fontawesome_0_0_6_GNU_General_Public_License_v2-GPLv2.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinx_rtd_theme_3_1_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-applehelp_2_0_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-devhelp_2_0_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-htmlhelp_2_1_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-jquery_4_1_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-jsmath_1_0_1_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-qthelp_2_0_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sphinxcontrib-serializinghtml_2_0_0_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sqlite-vec_0_1_9_MIT_License-Apache_License-Version_2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_sse-starlette_3_4_5_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_starlette_1_3_1_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_striprtf_0_0_32_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tabulate2_1_10_2_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tabulate_0_10_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tenacity_9_1_4_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tiktoken_0_13_0_MIT_License-Copyright-c-2022_OpenAI-Shantanu_Jain-Permission_is_hereby_granted-free_of_charge-to_any_per.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tokenizers_0_23_1_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tqdm_4_68_3_MPL-2_0_AND_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_twine_6_2_0_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_typer_0_26_8_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_typing-inspection_0_4_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_typing_extensions_4_16_0_PSF-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tzdata_2026_2_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_tzlocal_5_4_4_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_uncalled-for_0_3_2_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_urllib3_2_7_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_uuid_utils_0_16_2_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_uvicorn_0_50_0_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_watchdog_6_0_0_Apache_Software_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_watchfiles_1_2_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_wcwidth_0_8_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_websockets_15_0_1_BSD_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_wheel_0_47_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_win32_setctime_1_2_0_MIT_License.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_wsproto_1_3_2_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_xxhash_3_8_0_BSD-2-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_yarl_1_24_2_Apache-2_0.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zipp_4_1_0_MIT.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zope_event_6_2_ZPL-2_1.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zope_interface_8_5_ZPL-2_1.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/LICENSE_zstandard_0_25_0_BSD-3-Clause.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/licenses/files.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/logconf_cmdbox.yml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_chat.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_document.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_files.html +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_files.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_logo.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_logo.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_logo.svg +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings.html +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_agent.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_datasource.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_datasource.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_extract.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_llm.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_mcpsv.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_runner.html +1 -1
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/agent/agent_settings_tts.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/apexcharts/apexcharts.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/apexcharts/apexcharts.min.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/audit.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/color_mode.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/favicon.ico +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/filer_modal.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/icon.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/list_cmd.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/open_capture.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/open_output_json.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/result.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/signin.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/svgicon.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/users.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/view_raw.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/cmdbox/view_result.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/encodingjs/LICENSE.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/encodingjs/encoding.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/encodingjs/encoding.min.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/filer/main.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/filer/main.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/highlight/default.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/highlight/highlight.min.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/highlight/styles/tokyo-night-dark.min.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery/jquery.min.3.2.0.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/README.md +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea-license.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.html +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-resizable/jquery-resizable.min.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/AUTHORS.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/LICENSE.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.min.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.min.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.structure.min.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/jquery-ui.theme.min.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/jquery-ui/package.json +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/css/lightbox.min.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/close.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/loading.gif +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/next.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/images/prev.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/lightbox2/js/lightbox.min.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/limiter/main.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/marked/marked.umd.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/split-pane/split-pane.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/split-pane/split-pane.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/css/tree-menu.css +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/image/file.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/image/folder-close.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/image/folder-open.png +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets/tree-menu/js/tree-menu.js +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/assets_license_list.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/filer.html +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/result.html +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/signin.html +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox/web/voicevox_license_list.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/dependency_links.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/entry_points.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/requires.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/cmdbox.egg-info/top_level.txt +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/pyproject.toml +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/setup.cfg +0 -0
- {cmdbox-0.8.0 → cmdbox-0.8.0.2}/setup.py +0 -0
|
@@ -15,13 +15,8 @@ from typing import Callable, List, Dict, Any, Tuple
|
|
|
15
15
|
from starlette.applications import Starlette
|
|
16
16
|
from starlette.middleware.sessions import SessionMiddleware
|
|
17
17
|
import argparse
|
|
18
|
-
import glob
|
|
19
18
|
import logging
|
|
20
|
-
import locale
|
|
21
|
-
import json
|
|
22
19
|
import time
|
|
23
|
-
import re
|
|
24
|
-
import os
|
|
25
20
|
|
|
26
21
|
|
|
27
22
|
class A2a(mcp.Mcp):
|
|
@@ -65,8 +65,12 @@ class AgentRunnerList(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
|
65
65
|
return self.RESP_SUCCESS, ret, cl
|
|
66
66
|
|
|
67
67
|
def output_schema(self) -> type:
|
|
68
|
+
class RunnerInfo(pydantic.BaseModel):
|
|
69
|
+
name: str = pydantic.Field(description="ランナー名")
|
|
70
|
+
path: str = pydantic.Field(description="設定ファイルパス")
|
|
71
|
+
runner_priority: Union[int, None] = pydantic.Field(default=None, description="ランナー優先度")
|
|
68
72
|
class Data(resdata.Data):
|
|
69
|
-
data: List[
|
|
73
|
+
data: List[RunnerInfo] = pydantic.Field(default_factory=list, description="処理結果のデータ")
|
|
70
74
|
class Result(resdata.Result):
|
|
71
75
|
success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
|
|
72
76
|
return Result
|
|
@@ -100,7 +104,15 @@ class AgentRunnerList(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
|
100
104
|
name = p.name
|
|
101
105
|
if not name.startswith('runner-') or not name.endswith('.json'):
|
|
102
106
|
continue
|
|
103
|
-
|
|
107
|
+
runner_info = dict(name=name[7:-5], path=str(p))
|
|
108
|
+
try:
|
|
109
|
+
with p.open('r', encoding='utf-8') as f:
|
|
110
|
+
data = json.load(f)
|
|
111
|
+
runner_info['runner_priority'] = data.get('runner_priority', 9999)
|
|
112
|
+
except Exception as e:
|
|
113
|
+
logger.warning(f"Failed to read runner_priority from {p}: {e}")
|
|
114
|
+
runner_info['runner_priority'] = None
|
|
115
|
+
results.append(runner_info)
|
|
104
116
|
|
|
105
117
|
msg = dict(success=results)
|
|
106
118
|
redis_cli.rpush(reskey, msg)
|
|
@@ -75,6 +75,7 @@ class AgentRunnerLoad(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
|
75
75
|
tts_engine: Union[str, None] = pydantic.Field(default=None, description="TTSエンジン名")
|
|
76
76
|
rag: Union[List[str], None] = pydantic.Field(default=None, description="RAG設定リスト")
|
|
77
77
|
voicevox_model: Union[str, None] = pydantic.Field(default=None, description="VOICEVOXモデル")
|
|
78
|
+
runner_priority: Union[int, None] = pydantic.Field(default=None, description="ランナー優先度")
|
|
78
79
|
class Result(resdata.Result):
|
|
79
80
|
success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
|
|
80
81
|
return Result
|
|
@@ -25,22 +25,6 @@ class AgentRunnerSave(feature.OneshotResultEdgeFeature, validator.Validator, lim
|
|
|
25
25
|
return 'runner_save'
|
|
26
26
|
|
|
27
27
|
def get_option(self) -> Dict[str, Any]:
|
|
28
|
-
is_japan = common.is_japan(language=self.language)
|
|
29
|
-
description = f"{self.ver.__appid__}に登録されているコマンド提供"
|
|
30
|
-
description = description if is_japan else f"Provides commands registered in {self.ver.__appid__}"
|
|
31
|
-
instruction = f"あなたはコマンドの意味を熟知しているエキスパートです。" + \
|
|
32
|
-
f"ユーザーがコマンドを実行したいとき、あなたは以下の手順に従ってコマンドを確実に実行してください。\n" + \
|
|
33
|
-
f"1. ユーザーのクエリからが実行したいコマンドを特定します。\n" + \
|
|
34
|
-
f"2. コマンド実行に必要なパラメータのなかで、ユーザーのクエリから取得できないものは、コマンド定義にあるデフォルト値を指定して実行してください。\n" + \
|
|
35
|
-
f"3. もしエラーが発生した場合は、ユーザーにコマンド名とパラメータとエラー内容を提示してください。\n" \
|
|
36
|
-
f"4. コマンドの実行結果は、json文字列で出力するようにしてください。この時json文字列は「```json」と「```」で囲んだ文字列にしてください。\n"
|
|
37
|
-
instruction = instruction if is_japan else \
|
|
38
|
-
f"You are the expert who knows what the commands mean." + \
|
|
39
|
-
f"When a user wants to execute a command, you follow these steps to ensure that the command is executed.\n" + \
|
|
40
|
-
f"1. Identify the command you want to execute from the user's query.\n" + \
|
|
41
|
-
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" + \
|
|
42
|
-
f"3. If an error occurs, provide the user with the command name, parameters, and error description.\n" \
|
|
43
|
-
f"4. The result of the command execution should be output as a json string. The json string should be a string enclosed in '```json' and '```'."
|
|
44
28
|
return dict(
|
|
45
29
|
use_redis=self.USE_REDIS_TRUE, nouse_webmode=False, use_agent=False,
|
|
46
30
|
description_ja="Runner 設定を保存します。",
|
|
@@ -78,6 +62,9 @@ class AgentRunnerSave(feature.OneshotResultEdgeFeature, validator.Validator, lim
|
|
|
78
62
|
choice_fn=self.choice_ds,
|
|
79
63
|
description_ja="セッションの保存先データソースを指定します。",
|
|
80
64
|
description_en="Specify the data source where sessions will be saved."),
|
|
65
|
+
dict(opt="runner_priority", type=Options.T_INT, default=9999, required=True, multi=False, hide=False, choice=None,
|
|
66
|
+
description_ja="Runnerを使用するときの優先度を指定します。小さい値ほど優先されます。",
|
|
67
|
+
description_en="Specifies the priority when using the runner. Lower values indicate higher priority."),
|
|
81
68
|
dict(opt="tts_engine", type=Options.T_STR, default="voicevox", required=True, multi=False, hide=False,
|
|
82
69
|
choice=["", "voicevox"],
|
|
83
70
|
choice_show=dict(voicevox=["voicevox_ver", "voicevox_whl"]),
|
|
@@ -147,6 +134,7 @@ class AgentRunnerSave(feature.OneshotResultEdgeFeature, validator.Validator, lim
|
|
|
147
134
|
voicevox_model=args.voicevox_model if hasattr(args, 'voicevox_model') else None,
|
|
148
135
|
rag=list(set(args.rag)) if hasattr(args, 'rag') and args.rag is not None else None,
|
|
149
136
|
session_datasource=args.session_datasource if hasattr(args, 'session_datasource') else None,
|
|
137
|
+
runner_priority=args.runner_priority if hasattr(args, 'runner_priority') else 1,
|
|
150
138
|
)
|
|
151
139
|
|
|
152
140
|
payload_b64 = convert.str2b64str(common.to_str(configure))
|
|
@@ -249,7 +249,7 @@ class LLMTranslation(cmdbox_llm_chat.LLMChat):
|
|
|
249
249
|
)
|
|
250
250
|
if st != self.RESP_SUCCESS:
|
|
251
251
|
return st, chat_result
|
|
252
|
-
|
|
252
|
+
content = ''
|
|
253
253
|
try:
|
|
254
254
|
data = chat_result.get('success', {}).get('data', [])
|
|
255
255
|
if data:
|
|
@@ -265,7 +265,7 @@ class LLMTranslation(cmdbox_llm_chat.LLMChat):
|
|
|
265
265
|
if not nosave:
|
|
266
266
|
self._save_cache(data_dir, cache)
|
|
267
267
|
except Exception as e:
|
|
268
|
-
logger.warning(f"Failed to parse LLM translation response: {e}", exc_info=True)
|
|
268
|
+
logger.warning(f"Failed to parse LLM translation response: {e}: {content}", exc_info=True)
|
|
269
269
|
# キャッシュ保存は失敗しても既キャッシュ分は返す
|
|
270
270
|
|
|
271
271
|
result = {w: lang_cache.get(w, w) for w in words}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
from cmdbox.app import common, feature
|
|
2
|
+
from cmdbox.app.commons import resdata, validator
|
|
3
|
+
from cmdbox.app.options import Options
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Dict, Any, Tuple, List, Union
|
|
6
|
+
from datetime import datetime, timedelta
|
|
7
|
+
import argparse
|
|
8
|
+
import logging
|
|
9
|
+
import json
|
|
10
|
+
import pydantic
|
|
11
|
+
import random
|
|
12
|
+
import string
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class UrlAdd(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
16
|
+
def __init__(self, appcls, ver, language=None):
|
|
17
|
+
super().__init__(appcls, ver, language)
|
|
18
|
+
|
|
19
|
+
def get_mode(self) -> Union[str, List[str]]:
|
|
20
|
+
"""
|
|
21
|
+
この機能のモードを返します
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
Union[str, List[str]]: モード
|
|
25
|
+
"""
|
|
26
|
+
return 'url'
|
|
27
|
+
|
|
28
|
+
def get_cmd(self) -> str:
|
|
29
|
+
"""
|
|
30
|
+
この機能のコマンドを返します
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
str: コマンド
|
|
34
|
+
"""
|
|
35
|
+
return 'add'
|
|
36
|
+
|
|
37
|
+
def get_option(self) -> Dict[str, Any]:
|
|
38
|
+
"""
|
|
39
|
+
この機能のオプションを返します
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
Dict[str, Any]: オプション
|
|
43
|
+
"""
|
|
44
|
+
return dict(
|
|
45
|
+
use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
|
|
46
|
+
description_ja="短縮URLを追加します。target_urlとperiodを指定すると、url_idが生成され、.urlsフォルダにurl_id.jsonファイルが作成されます。",
|
|
47
|
+
description_en="Add a short URL. When target_url and period are specified, a url_id is generated and a url_id.json file is created in the .urls folder.",
|
|
48
|
+
choice=[
|
|
49
|
+
dict(opt="base_url", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
50
|
+
description_ja="短縮URLのベースURLを指定します。",
|
|
51
|
+
description_en="Specify the base URL for the short URL."),
|
|
52
|
+
dict(opt="target_url", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
53
|
+
description_ja="短縮URLのリダイレクト先となるURLを指定します。",
|
|
54
|
+
description_en="Specify the URL that the short URL will redirect to."),
|
|
55
|
+
dict(opt="period", type=Options.T_INT, default=3600*24*30, required=False, multi=False, hide=False, choice=None,
|
|
56
|
+
description_ja="短縮URLの有効期限の秒数を指定します。デフォルトは1か月(2592000秒)です。",
|
|
57
|
+
description_en="Specify the validity period in seconds. Default is 1 month (2592000 seconds)."),
|
|
58
|
+
]
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
@validator.apprun_check
|
|
62
|
+
def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
|
|
63
|
+
"""
|
|
64
|
+
この機能の実行を行います
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
logger (logging.Logger): ロガー
|
|
68
|
+
args (argparse.Namespace): 引数
|
|
69
|
+
tm (float): 実行開始時間
|
|
70
|
+
pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
|
|
74
|
+
"""
|
|
75
|
+
try:
|
|
76
|
+
# url_idを生成(8文字の英数字)
|
|
77
|
+
url_id = common.random_string(size=8)
|
|
78
|
+
|
|
79
|
+
# .urlsフォルダを作成
|
|
80
|
+
urls_dir = Path(self.default_data) / '.urls'
|
|
81
|
+
urls_dir.mkdir(parents=True, exist_ok=True)
|
|
82
|
+
|
|
83
|
+
# JSONファイルのパスを指定
|
|
84
|
+
json_file = urls_dir / f"{url_id}.json"
|
|
85
|
+
|
|
86
|
+
# 保存するデータを作成
|
|
87
|
+
saved_at = datetime.now()
|
|
88
|
+
period = args.period if hasattr(args, 'period') and args.period else 3600*24*30
|
|
89
|
+
period_dt = (saved_at + timedelta(seconds=period)).isoformat()
|
|
90
|
+
url_data = {
|
|
91
|
+
"url_id": url_id,
|
|
92
|
+
"short_url": f'{args.base_url.rstrip("/")}/ru/{url_id}',
|
|
93
|
+
"target_url": args.target_url,
|
|
94
|
+
"base_url": args.base_url,
|
|
95
|
+
"period": period,
|
|
96
|
+
"saved_at": saved_at.isoformat(),
|
|
97
|
+
"period_dt": period_dt
|
|
98
|
+
}
|
|
99
|
+
# JSONファイルを保存
|
|
100
|
+
common.save_file(json_file, lambda f: json.dump(url_data, f, default=common.default_json_enc), nolock=False)
|
|
101
|
+
# 結果を返す
|
|
102
|
+
msg = dict(success=dict(data=dict(
|
|
103
|
+
url_id=url_id,
|
|
104
|
+
short_url=url_data["short_url"],
|
|
105
|
+
target_url=args.target_url,
|
|
106
|
+
base_url=args.base_url,
|
|
107
|
+
period=url_data["period"],
|
|
108
|
+
saved_at=url_data["saved_at"],
|
|
109
|
+
period_dt=url_data["period_dt"],
|
|
110
|
+
file_path=str(json_file),
|
|
111
|
+
msg=f"Short URL added. url_id={url_id}"
|
|
112
|
+
)))
|
|
113
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
114
|
+
return self.RESP_SUCCESS, msg, None
|
|
115
|
+
except Exception as e:
|
|
116
|
+
msg = dict(warn=f"{e}")
|
|
117
|
+
logger.error(f"Error in url_add: {e}", exc_info=True)
|
|
118
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
119
|
+
return self.RESP_WARN, msg, None
|
|
120
|
+
|
|
121
|
+
def output_schema(self) -> type:
|
|
122
|
+
|
|
123
|
+
class UrlData(resdata.Base):
|
|
124
|
+
url_id: Union[str, None] = pydantic.Field(default=None, description="生成されたURL ID")
|
|
125
|
+
short_url: Union[str, None] = pydantic.Field(default=None, description="生成された短縮URL")
|
|
126
|
+
target_url: Union[str, None] = pydantic.Field(default=None, description="リダイレクト先URL")
|
|
127
|
+
base_url: Union[str, None] = pydantic.Field(default=None, description="短縮URLのベースURL")
|
|
128
|
+
period: Union[int, None] = pydantic.Field(default=None, description="有効期限の秒数")
|
|
129
|
+
saved_at: Union[str, None] = pydantic.Field(default=None, description="保存日時")
|
|
130
|
+
period_dt: Union[str, None] = pydantic.Field(default=None, description="期限切れ日時")
|
|
131
|
+
file_path: Union[str, None] = pydantic.Field(default=None, description="作成されたJSONファイルのパス")
|
|
132
|
+
msg: Union[str, None] = pydantic.Field(default=None, description="処理結果のメッセージ")
|
|
133
|
+
class Data(resdata.Data):
|
|
134
|
+
data: Union[UrlData, None] = pydantic.Field(default=None, description="URL情報")
|
|
135
|
+
class Result(resdata.Result):
|
|
136
|
+
success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
|
|
137
|
+
return Result
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
from cmdbox.app import common, feature
|
|
2
|
+
from cmdbox.app.commons import resdata, validator
|
|
3
|
+
from cmdbox.app.options import Options
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Dict, Any, Tuple, List, Union
|
|
6
|
+
import argparse
|
|
7
|
+
import logging
|
|
8
|
+
import pydantic
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UrlDel(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
12
|
+
def __init__(self, appcls, ver, language=None):
|
|
13
|
+
super().__init__(appcls, ver, language)
|
|
14
|
+
|
|
15
|
+
def get_mode(self) -> Union[str, List[str]]:
|
|
16
|
+
"""
|
|
17
|
+
この機能のモードを返します
|
|
18
|
+
|
|
19
|
+
Returns:
|
|
20
|
+
Union[str, List[str]]: モード
|
|
21
|
+
"""
|
|
22
|
+
return 'url'
|
|
23
|
+
|
|
24
|
+
def get_cmd(self) -> str:
|
|
25
|
+
"""
|
|
26
|
+
この機能のコマンドを返します
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
str: コマンド
|
|
30
|
+
"""
|
|
31
|
+
return 'del'
|
|
32
|
+
|
|
33
|
+
def get_option(self) -> Dict[str, Any]:
|
|
34
|
+
"""
|
|
35
|
+
この機能のオプションを返します
|
|
36
|
+
|
|
37
|
+
Returns:
|
|
38
|
+
Dict[str, Any]: オプション
|
|
39
|
+
"""
|
|
40
|
+
return dict(
|
|
41
|
+
use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
|
|
42
|
+
description_ja="短縮URLを削除します。指定されたurl_idのJSONファイルを削除します。",
|
|
43
|
+
description_en="Delete a short URL. Removes the JSON file for the specified url_id.",
|
|
44
|
+
choice=[
|
|
45
|
+
dict(opt="url_id", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
46
|
+
description_ja="削除する短縮URLのurl_idを指定します。",
|
|
47
|
+
description_en="Specify the url_id of the short URL to delete."),
|
|
48
|
+
]
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
@validator.apprun_check
|
|
52
|
+
def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
|
|
53
|
+
"""
|
|
54
|
+
この機能の実行を行います
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
logger (logging.Logger): ロガー
|
|
58
|
+
args (argparse.Namespace): 引数
|
|
59
|
+
tm (float): 実行開始時間
|
|
60
|
+
pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
|
|
64
|
+
"""
|
|
65
|
+
try:
|
|
66
|
+
# JSONファイルのパスを指定
|
|
67
|
+
urls_dir = Path(self.default_data) / '.urls'
|
|
68
|
+
json_file = urls_dir / f"{args.url_id}.json"
|
|
69
|
+
|
|
70
|
+
# ファイルが存在するか確認
|
|
71
|
+
if not json_file.exists():
|
|
72
|
+
msg = dict(warn=f"Short URL '{args.url_id}' not found at '{json_file}'.")
|
|
73
|
+
logger.warning(msg['warn'])
|
|
74
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
75
|
+
return self.RESP_WARN, msg, None
|
|
76
|
+
|
|
77
|
+
# ファイルを削除
|
|
78
|
+
json_file.unlink()
|
|
79
|
+
|
|
80
|
+
# 結果を返す
|
|
81
|
+
msg = dict(success=dict(
|
|
82
|
+
url_id=args.url_id,
|
|
83
|
+
msg=f"Short URL '{args.url_id}' deleted."
|
|
84
|
+
))
|
|
85
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
86
|
+
return self.RESP_SUCCESS, msg, None
|
|
87
|
+
except Exception as e:
|
|
88
|
+
msg = dict(warn=f"{e}")
|
|
89
|
+
logger.error(f"Error in url_del: {e}", exc_info=True)
|
|
90
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
91
|
+
return self.RESP_WARN, msg, None
|
|
92
|
+
|
|
93
|
+
def output_schema(self) -> type:
|
|
94
|
+
class Data(resdata.Data):
|
|
95
|
+
url_id: Union[str, None] = pydantic.Field(default=None, description="削除されたURL ID")
|
|
96
|
+
msg: Union[str, None] = pydantic.Field(default=None, description="処理結果のメッセージ")
|
|
97
|
+
class Result(resdata.Result):
|
|
98
|
+
success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
|
|
99
|
+
return Result
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
from cmdbox.app import common, feature
|
|
2
|
+
from cmdbox.app.commons import cache, resdata, validator
|
|
3
|
+
from cmdbox.app.options import Options
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Dict, Any, Tuple, List, Union
|
|
6
|
+
import argparse
|
|
7
|
+
import logging
|
|
8
|
+
import json
|
|
9
|
+
import pydantic
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class UrlList(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
13
|
+
def __init__(self, appcls, ver, language=None):
|
|
14
|
+
super().__init__(appcls, ver, language)
|
|
15
|
+
|
|
16
|
+
def get_mode(self) -> Union[str, List[str]]:
|
|
17
|
+
"""
|
|
18
|
+
この機能のモードを返します
|
|
19
|
+
|
|
20
|
+
Returns:
|
|
21
|
+
Union[str, List[str]]: モード
|
|
22
|
+
"""
|
|
23
|
+
return 'url'
|
|
24
|
+
|
|
25
|
+
def get_cmd(self) -> str:
|
|
26
|
+
"""
|
|
27
|
+
この機能のコマンドを返します
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
str: コマンド
|
|
31
|
+
"""
|
|
32
|
+
return 'list'
|
|
33
|
+
|
|
34
|
+
def get_option(self) -> Dict[str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
この機能のオプションを返します
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
Dict[str, Any]: オプション
|
|
40
|
+
"""
|
|
41
|
+
return dict(
|
|
42
|
+
use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
|
|
43
|
+
description_ja="登録済みの短縮URLを一覧表示します。",
|
|
44
|
+
description_en="Lists registered short URLs.",
|
|
45
|
+
choice=[
|
|
46
|
+
dict(opt="kwd", type=Options.T_STR, default=None, required=False, multi=False, hide=False, choice=None,
|
|
47
|
+
description_ja="検索したいurl_idを指定します。中間マッチで検索します。",
|
|
48
|
+
description_en="Specify the url_id to search for. Searches for partial matches."),
|
|
49
|
+
]
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
@cache.apprun_cache(exclude_fn=lambda args: hasattr(args,'kwd') and args.kwd)
|
|
53
|
+
@validator.apprun_check
|
|
54
|
+
def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
|
|
55
|
+
"""
|
|
56
|
+
この機能の実行を行います
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
logger (logging.Logger): ロガー
|
|
60
|
+
args (argparse.Namespace): 引数
|
|
61
|
+
tm (float): 実行開始時間
|
|
62
|
+
pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
|
|
66
|
+
"""
|
|
67
|
+
try:
|
|
68
|
+
results: List[Dict[str, Any]] = []
|
|
69
|
+
|
|
70
|
+
# .urlsフォルダを確認
|
|
71
|
+
urls_dir = Path(self.default_data) / '.urls'
|
|
72
|
+
if not urls_dir.exists():
|
|
73
|
+
msg = dict(success=dict(data=results, msg="No URLs found."))
|
|
74
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
75
|
+
return self.RESP_SUCCESS, msg, None
|
|
76
|
+
|
|
77
|
+
# キーワード検索の設定
|
|
78
|
+
kwd = args.kwd if hasattr(args, 'kwd') and args.kwd else '*'
|
|
79
|
+
|
|
80
|
+
# JSONファイルを読み込み
|
|
81
|
+
for json_file in sorted(urls_dir.glob(f"{kwd}.json")):
|
|
82
|
+
try:
|
|
83
|
+
with json_file.open('r', encoding='utf-8') as f:
|
|
84
|
+
url_data = json.load(f)
|
|
85
|
+
results.append(dict(
|
|
86
|
+
url_id=url_data.get('url_id', json_file.stem),
|
|
87
|
+
short_url=url_data.get('short_url', None),
|
|
88
|
+
target_url=url_data.get('target_url', None),
|
|
89
|
+
base_url=url_data.get('base_url', None),
|
|
90
|
+
period=url_data.get('period', None),
|
|
91
|
+
saved_at=url_data.get('saved_at', None),
|
|
92
|
+
period_dt=url_data.get('period_dt', None),
|
|
93
|
+
))
|
|
94
|
+
except Exception as e:
|
|
95
|
+
logger.warning(f"Error reading {json_file}: {e}")
|
|
96
|
+
|
|
97
|
+
# 結果を返す
|
|
98
|
+
msg = dict(success=dict(data=results, msg=f"Found {len(results)} URL(s)."))
|
|
99
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
100
|
+
return self.RESP_SUCCESS, msg, None
|
|
101
|
+
except Exception as e:
|
|
102
|
+
msg = dict(warn=f"{e}")
|
|
103
|
+
logger.error(f"Error in url_list: {e}", exc_info=True)
|
|
104
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
105
|
+
return self.RESP_WARN, msg, None
|
|
106
|
+
|
|
107
|
+
def output_schema(self) -> type:
|
|
108
|
+
class UrlInfo(resdata.Base):
|
|
109
|
+
url_id: Union[str, None] = pydantic.Field(default=None, description="URL ID")
|
|
110
|
+
short_url: Union[str, None] = pydantic.Field(default=None, description="生成された短縮URL")
|
|
111
|
+
target_url: Union[str, None] = pydantic.Field(default=None, description="リダイレクト先URL")
|
|
112
|
+
base_url: Union[str, None] = pydantic.Field(default=None, description="短縮URLのベースURL")
|
|
113
|
+
period: Union[int, None] = pydantic.Field(default=None, description="有効期限の秒数")
|
|
114
|
+
saved_at: Union[str, None] = pydantic.Field(default=None, description="保存日時")
|
|
115
|
+
period_dt: Union[str, None] = pydantic.Field(default=None, description="期限切れ日時")
|
|
116
|
+
class Data(resdata.Data):
|
|
117
|
+
data: Union[List[UrlInfo], None] = pydantic.Field(default=None, description="URL情報のリスト")
|
|
118
|
+
msg: Union[str, None] = pydantic.Field(default=None, description="処理結果のメッセージ")
|
|
119
|
+
class Result(resdata.Result):
|
|
120
|
+
success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
|
|
121
|
+
return Result
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
from cmdbox.app import common, feature
|
|
2
|
+
from cmdbox.app.commons import cache, resdata, validator
|
|
3
|
+
from cmdbox.app.options import Options
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Dict, Any, Tuple, List, Union
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
import argparse
|
|
8
|
+
import logging
|
|
9
|
+
import json
|
|
10
|
+
import pydantic
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UrlLoad(feature.OneshotResultEdgeFeature, validator.Validator):
|
|
14
|
+
def __init__(self, appcls, ver, language=None):
|
|
15
|
+
super().__init__(appcls, ver, language)
|
|
16
|
+
|
|
17
|
+
def get_mode(self) -> Union[str, List[str]]:
|
|
18
|
+
"""
|
|
19
|
+
この機能のモードを返します
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
Union[str, List[str]]: モード
|
|
23
|
+
"""
|
|
24
|
+
return 'url'
|
|
25
|
+
|
|
26
|
+
def get_cmd(self) -> str:
|
|
27
|
+
"""
|
|
28
|
+
この機能のコマンドを返します
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
str: コマンド
|
|
32
|
+
"""
|
|
33
|
+
return 'load'
|
|
34
|
+
|
|
35
|
+
def get_option(self) -> Dict[str, Any]:
|
|
36
|
+
"""
|
|
37
|
+
この機能のオプションを返します
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
Dict[str, Any]: オプション
|
|
41
|
+
"""
|
|
42
|
+
return dict(
|
|
43
|
+
use_redis=self.USE_REDIS_FALSE, nouse_webmode=False, use_agent=False,
|
|
44
|
+
description_ja="短縮URLを読み込みます。指定されたurl_idの情報を取得します。",
|
|
45
|
+
description_en="Load a short URL. Retrieves information for the specified url_id.",
|
|
46
|
+
choice=[
|
|
47
|
+
dict(opt="url_id", type=Options.T_STR, default=None, required=True, multi=False, hide=False, choice=None,
|
|
48
|
+
description_ja="読み込む短縮URLのurl_idを指定します。",
|
|
49
|
+
description_en="Specify the url_id of the short URL to load."),
|
|
50
|
+
]
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
@cache.apprun_cache(args_key='url_id')
|
|
54
|
+
@validator.apprun_check
|
|
55
|
+
def apprun(self, logger: logging.Logger, args: argparse.Namespace, tm: float, pf: List[Dict[str, float]] = []) -> Tuple[int, Dict[str, Any], Any]:
|
|
56
|
+
"""
|
|
57
|
+
この機能の実行を行います
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
logger (logging.Logger): ロガー
|
|
61
|
+
args (argparse.Namespace): 引数
|
|
62
|
+
tm (float): 実行開始時間
|
|
63
|
+
pf (List[Dict[str, float]]): 呼出元のパフォーマンス情報
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Tuple[int, Dict[str, Any], Any]: 終了コード, 結果, オブジェクト
|
|
67
|
+
"""
|
|
68
|
+
try:
|
|
69
|
+
# JSONファイルのパスを指定
|
|
70
|
+
urls_dir = Path(self.default_data) / '.urls'
|
|
71
|
+
json_file = urls_dir / f"{args.url_id}.json"
|
|
72
|
+
|
|
73
|
+
# ファイルが存在するか確認
|
|
74
|
+
if not json_file.exists():
|
|
75
|
+
msg = dict(warn=f"Short URL '{args.url_id}' not found at '{json_file}'.")
|
|
76
|
+
logger.warning(msg['warn'])
|
|
77
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
78
|
+
return self.RESP_WARN, msg, None
|
|
79
|
+
|
|
80
|
+
# ファイルを読み込み
|
|
81
|
+
with json_file.open('r', encoding='utf-8') as f:
|
|
82
|
+
url_data = json.load(f)
|
|
83
|
+
|
|
84
|
+
# 期限切れをチェック
|
|
85
|
+
if 'period_dt' in url_data:
|
|
86
|
+
period_dt = datetime.fromisoformat(url_data['period_dt'])
|
|
87
|
+
if datetime.now() > period_dt:
|
|
88
|
+
# 期限切れの場合、ファイルを削除
|
|
89
|
+
json_file.unlink()
|
|
90
|
+
msg = dict(warn=f"Short URL '{args.url_id}' not found at '{json_file}'.")
|
|
91
|
+
logger.warning(msg['warn'])
|
|
92
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
93
|
+
return self.RESP_WARN, msg, None
|
|
94
|
+
|
|
95
|
+
# 結果を返す
|
|
96
|
+
msg = dict(success=dict(data=url_data))
|
|
97
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
98
|
+
return self.RESP_SUCCESS, msg, None
|
|
99
|
+
except Exception as e:
|
|
100
|
+
msg = dict(warn=f"{e}")
|
|
101
|
+
logger.error(f"Error in url_load: {e}", exc_info=True)
|
|
102
|
+
common.print_format(msg, args.format, tm, args.output_json, args.output_json_append, pf=pf)
|
|
103
|
+
return self.RESP_WARN, msg, None
|
|
104
|
+
|
|
105
|
+
def output_schema(self) -> type:
|
|
106
|
+
class UrlData(resdata.Base):
|
|
107
|
+
url_id: Union[str, None] = pydantic.Field(default=None, description="URL ID")
|
|
108
|
+
short_url: Union[str, None] = pydantic.Field(default=None, description="生成された短縮URL")
|
|
109
|
+
target_url: Union[str, None] = pydantic.Field(default=None, description="リダイレクト先URL")
|
|
110
|
+
base_url: Union[str, None] = pydantic.Field(default=None, description="短縮URLのベースURL")
|
|
111
|
+
period: Union[int, None] = pydantic.Field(default=None, description="有効期限の秒数")
|
|
112
|
+
saved_at: Union[str, None] = pydantic.Field(default=None, description="保存日時")
|
|
113
|
+
period_dt: Union[str, None] = pydantic.Field(default=None, description="期限切れ日時")
|
|
114
|
+
class Data(resdata.Data):
|
|
115
|
+
data: Union[UrlData, None] = pydantic.Field(default=None, description="URL情報")
|
|
116
|
+
class Result(resdata.Result):
|
|
117
|
+
success: Union[Data, None] = pydantic.Field(default=None, description="成功した場合の結果")
|
|
118
|
+
return Result
|
|
@@ -29,11 +29,11 @@ class DoSignin(cmdbox_web_signin.Signin):
|
|
|
29
29
|
@app.post('/dosignin/', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
30
30
|
async def do_signin(req:Request, res:Response):
|
|
31
31
|
return await do_signin_token(None, '', req, res)
|
|
32
|
-
@app.post('/dosignin/{next}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
32
|
+
@app.post('/dosignin/{next:path}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
33
33
|
async def do_signin(next:str, req:Request, res:Response):
|
|
34
34
|
return await do_signin_token(None, next, req, res)
|
|
35
35
|
|
|
36
|
-
@app.get('/dosignin_token/{token}/{next}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
36
|
+
@app.get('/dosignin_token/{token}/{next:path}', response_class=HTMLResponse, responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
37
37
|
async def do_signin_token(token:str, next:str, req:Request, res:Response):
|
|
38
38
|
form = await req.form()
|
|
39
39
|
name = form.get('name')
|
|
@@ -143,6 +143,7 @@ class DoSignin(cmdbox_web_signin.Signin):
|
|
|
143
143
|
# セッションに保存
|
|
144
144
|
_set_session(req, dict(uid=uid, name=name, apikeys=user.get('apikeys', None), home=user.get('home', None)),
|
|
145
145
|
email, passwd, None, group_names, group_homes, group_sps, gids)
|
|
146
|
+
next = f"../{next}" if next.find('/') >= 0 else next
|
|
146
147
|
next = f"../{next}" if token_ok else next
|
|
147
148
|
if notify_passchange:
|
|
148
149
|
web.options.audit_exec(req, res, web, body=dict(msg='Signin succeeded. However, you should change your password.'), audit_type='auth', user=name)
|
|
@@ -258,7 +259,7 @@ class DoSignin(cmdbox_web_signin.Signin):
|
|
|
258
259
|
web.logger.warning(f'Failed to get token. {e}', exc_info=True)
|
|
259
260
|
raise HTTPException(status_code=400, detail=f'Failed to get token. {e}')
|
|
260
261
|
|
|
261
|
-
@app.get('/oauth2/google/session/{access_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
262
|
+
@app.get('/oauth2/google/session/{access_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
262
263
|
async def oauth2_google_session(access_token:str, next:str, req:Request, res:Response):
|
|
263
264
|
return await oauth2_login_session(self.google_signin, access_token, next, req, res)
|
|
264
265
|
|
|
@@ -275,7 +276,7 @@ class DoSignin(cmdbox_web_signin.Signin):
|
|
|
275
276
|
web.logger.warning(f'Failed to get token. {e}', exc_info=True)
|
|
276
277
|
raise HTTPException(status_code=400, detail=f'Failed to get token. {e}')
|
|
277
278
|
|
|
278
|
-
@app.get('/oauth2/github/session/{access_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
279
|
+
@app.get('/oauth2/github/session/{access_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
279
280
|
async def oauth2_github_session(access_token:str, next:str, req:Request, res:Response):
|
|
280
281
|
return await oauth2_login_session(self.github_signin, access_token, next, req, res)
|
|
281
282
|
|
|
@@ -292,7 +293,7 @@ class DoSignin(cmdbox_web_signin.Signin):
|
|
|
292
293
|
web.logger.warning(f'Failed to get token. {e}', exc_info=True)
|
|
293
294
|
raise HTTPException(status_code=400, detail=f'Failed to get token. {e}')
|
|
294
295
|
|
|
295
|
-
@app.get('/oauth2/azure/session/{access_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
296
|
+
@app.get('/oauth2/azure/session/{access_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
296
297
|
async def oauth2_azure_session(access_token:str, next:str, req:Request, res:Response):
|
|
297
298
|
return await oauth2_login_session(self.azure_signin, access_token, next, req, res)
|
|
298
299
|
|
|
@@ -326,7 +327,7 @@ class DoSignin(cmdbox_web_signin.Signin):
|
|
|
326
327
|
form = await req.form()
|
|
327
328
|
return await saml_login_callback('azure', self.azure_saml_signin, form, None, req, res)
|
|
328
329
|
|
|
329
|
-
@app.get('/saml/azure/session/{saml_token}/{next}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
330
|
+
@app.get('/saml/azure/session/{saml_token}/{next:path}', responses=feature.WebFeature.DEFAULT_RESPONCE_STATES)
|
|
330
331
|
async def saml_azure_session(saml_token:str, next:str, req:Request, res:Response):
|
|
331
332
|
form = json.loads(convert.b64str2str(saml_token))
|
|
332
333
|
return await saml_login_callback('azure', self.azure_saml_signin, form, next, req, res)
|