solace-agent-mesh 0.2.4__py3-none-any.whl → 1.0.1__py3-none-any.whl
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 solace-agent-mesh might be problematic. Click here for more details.
- solace_agent_mesh/agent/adk/adk_llm.txt +93 -0
- solace_agent_mesh/agent/adk/app_llm_agent.py +26 -0
- solace_agent_mesh/agent/adk/callbacks.py +1694 -0
- solace_agent_mesh/agent/adk/filesystem_artifact_service.py +381 -0
- solace_agent_mesh/agent/adk/invocation_monitor.py +295 -0
- solace_agent_mesh/agent/adk/models/lite_llm.py +872 -0
- solace_agent_mesh/agent/adk/models/models_llm.txt +94 -0
- solace_agent_mesh/agent/adk/runner.py +353 -0
- solace_agent_mesh/agent/adk/services.py +240 -0
- solace_agent_mesh/agent/adk/setup.py +751 -0
- solace_agent_mesh/agent/adk/stream_parser.py +214 -0
- solace_agent_mesh/agent/adk/tool_wrapper.py +139 -0
- solace_agent_mesh/agent/agent_llm.txt +41 -0
- solace_agent_mesh/agent/protocol/event_handlers.py +1469 -0
- solace_agent_mesh/agent/protocol/protocol_llm.txt +21 -0
- solace_agent_mesh/agent/sac/app.py +640 -0
- solace_agent_mesh/agent/sac/component.py +3388 -0
- solace_agent_mesh/agent/sac/patch_adk.py +111 -0
- solace_agent_mesh/agent/sac/sac_llm.txt +105 -0
- solace_agent_mesh/agent/sac/task_execution_context.py +176 -0
- solace_agent_mesh/agent/testing/__init__.py +3 -0
- solace_agent_mesh/agent/testing/debug_utils.py +135 -0
- solace_agent_mesh/agent/testing/testing_llm.txt +90 -0
- solace_agent_mesh/agent/tools/__init__.py +14 -0
- solace_agent_mesh/agent/tools/audio_tools.py +1622 -0
- solace_agent_mesh/agent/tools/builtin_artifact_tools.py +1954 -0
- solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +238 -0
- solace_agent_mesh/agent/tools/general_agent_tools.py +569 -0
- solace_agent_mesh/agent/tools/image_tools.py +1184 -0
- solace_agent_mesh/agent/tools/peer_agent_tool.py +289 -0
- solace_agent_mesh/agent/tools/registry.py +36 -0
- solace_agent_mesh/agent/tools/test_tools.py +135 -0
- solace_agent_mesh/agent/tools/tool_definition.py +45 -0
- solace_agent_mesh/agent/tools/tools_llm.txt +104 -0
- solace_agent_mesh/agent/tools/web_tools.py +381 -0
- solace_agent_mesh/agent/utils/artifact_helpers.py +927 -0
- solace_agent_mesh/agent/utils/config_parser.py +47 -0
- solace_agent_mesh/agent/utils/context_helpers.py +60 -0
- solace_agent_mesh/agent/utils/utils_llm.txt +153 -0
- solace_agent_mesh/assets/docs/404.html +16 -0
- solace_agent_mesh/assets/docs/assets/css/styles.906a1503.css +1 -0
- solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png +0 -0
- solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png +0 -0
- solace_agent_mesh/assets/docs/assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png +0 -0
- solace_agent_mesh/assets/docs/assets/js/04989206.674a8007.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/0e682baa.79f0ab22.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/1023fc19.015679ca.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/149.b797a808.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/1523c6b4.91c7bc01.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt +9 -0
- solace_agent_mesh/assets/docs/assets/js/166ab619.7d97ccaf.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js.LICENSE.txt +7 -0
- solace_agent_mesh/assets/docs/assets/js/1c6e87d2.23bccffb.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/21ceee5f.614fa8dd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2334.622a6395.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2a9cab12.8909df92.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/332e10b5.7a103f42.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3624.b524e433.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/375.708d48db.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3d406171.f722eaf5.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/42b3f8d8.36090198.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/442a8107.5ba94b65.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4c2787c2.66ee00e9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/55f47984.c484bf96.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5b4258a4.bda20761.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/768e31b0.a12673db.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7900.69516146.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js.LICENSE.txt +61 -0
- solace_agent_mesh/assets/docs/assets/js/8709.7ecd4047.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8731.49e930c2.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/945fb41e.74d728aa.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9eff14a2.1bf8f61c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.26ca071f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/aba87c2f.d3e2dcc3.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ae4415af.8e279b5d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/b7006a3a.40b10c9d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/bac0be12.f50d9bac.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/bb2ef573.207e6990.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/c2c06897.63b76e9e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cc969b05.954186d4.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cd3d4052.ca6eed8c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cee5d587.f5b73ca1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f284c35a.ecc3d195.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f897a61a.2c2e152c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/fbfa3e75.aca209c9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/main.7ed3319f.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/main.7ed3319f.js.LICENSE.txt +81 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.d9520ae2.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +128 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +91 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +201 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +91 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +55 -0
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +82 -0
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +60 -0
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +48 -0
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +54 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +17 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +45 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +76 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +150 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +54 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +267 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +136 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +116 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +80 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +164 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +57 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +72 -0
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +102 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +99 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +90 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +107 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +152 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +103 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +170 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +200 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +54 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +69 -0
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +59 -0
- solace_agent_mesh/assets/docs/img/Solace_AI_Framework_README.png +0 -0
- solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png +0 -0
- solace_agent_mesh/assets/docs/img/logo.png +0 -0
- solace_agent_mesh/assets/docs/img/sac-flows.png +0 -0
- solace_agent_mesh/assets/docs/img/sac_parts_of_a_component.png +0 -0
- solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
- solace_agent_mesh/assets/docs/lunr-index-1753813536522.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -0
- solace_agent_mesh/assets/docs/search-doc-1753813536522.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -0
- solace_agent_mesh/assets/docs/sitemap.xml +1 -0
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/cli/commands/add_cmd/__init__.py +15 -0
- solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +250 -0
- solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +659 -0
- solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +322 -0
- solace_agent_mesh/cli/commands/add_cmd/web_add_agent_step.py +93 -0
- solace_agent_mesh/cli/commands/add_cmd/web_add_gateway_step.py +118 -0
- solace_agent_mesh/cli/commands/docs_cmd.py +57 -0
- solace_agent_mesh/cli/commands/eval_cmd.py +64 -0
- solace_agent_mesh/cli/commands/init_cmd/__init__.py +404 -0
- solace_agent_mesh/cli/commands/init_cmd/broker_step.py +201 -0
- solace_agent_mesh/cli/commands/init_cmd/directory_step.py +28 -0
- solace_agent_mesh/cli/commands/init_cmd/env_step.py +197 -0
- solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +365 -0
- solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +387 -0
- solace_agent_mesh/cli/commands/init_cmd/project_files_step.py +38 -0
- solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +110 -0
- solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +183 -0
- solace_agent_mesh/cli/commands/plugin_cmd/__init__.py +18 -0
- solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +372 -0
- solace_agent_mesh/cli/commands/plugin_cmd/build_cmd.py +86 -0
- solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +138 -0
- solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +309 -0
- solace_agent_mesh/cli/commands/plugin_cmd/official_registry.py +174 -0
- solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +305 -0
- solace_agent_mesh/cli/commands/run_cmd.py +158 -0
- solace_agent_mesh/cli/main.py +17 -294
- solace_agent_mesh/cli/utils.py +135 -204
- solace_agent_mesh/client/webui/frontend/static/assets/authCallback-DvlO62me.js +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/client-bp6u3qVZ.js +49 -0
- solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico +0 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-An0a5j5k.js +663 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-Bu5-4Bac.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/auth-callback.html +14 -0
- solace_agent_mesh/client/webui/frontend/static/index.html +15 -0
- solace_agent_mesh/common/__init__.py +1 -0
- solace_agent_mesh/common/a2a_protocol.py +564 -0
- solace_agent_mesh/common/agent_registry.py +42 -0
- solace_agent_mesh/common/client/__init__.py +4 -0
- solace_agent_mesh/common/client/card_resolver.py +21 -0
- solace_agent_mesh/common/client/client.py +85 -0
- solace_agent_mesh/common/client/client_llm.txt +133 -0
- solace_agent_mesh/common/common_llm.txt +144 -0
- solace_agent_mesh/common/constants.py +1 -14
- solace_agent_mesh/common/middleware/__init__.py +12 -0
- solace_agent_mesh/common/middleware/config_resolver.py +130 -0
- solace_agent_mesh/common/middleware/middleware_llm.txt +174 -0
- solace_agent_mesh/common/middleware/registry.py +125 -0
- solace_agent_mesh/common/server/__init__.py +4 -0
- solace_agent_mesh/common/server/server.py +122 -0
- solace_agent_mesh/common/server/server_llm.txt +169 -0
- solace_agent_mesh/common/server/task_manager.py +291 -0
- solace_agent_mesh/common/server/utils.py +28 -0
- solace_agent_mesh/common/services/__init__.py +4 -0
- solace_agent_mesh/common/services/employee_service.py +162 -0
- solace_agent_mesh/common/services/identity_service.py +129 -0
- solace_agent_mesh/common/services/providers/__init__.py +4 -0
- solace_agent_mesh/common/services/providers/local_file_identity_service.py +148 -0
- solace_agent_mesh/common/services/providers/providers_llm.txt +113 -0
- solace_agent_mesh/common/services/services_llm.txt +132 -0
- solace_agent_mesh/common/types.py +411 -0
- solace_agent_mesh/common/utils/__init__.py +7 -0
- solace_agent_mesh/common/utils/asyncio_macos_fix.py +86 -0
- solace_agent_mesh/common/utils/embeds/__init__.py +33 -0
- solace_agent_mesh/common/utils/embeds/constants.py +55 -0
- solace_agent_mesh/common/utils/embeds/converter.py +452 -0
- solace_agent_mesh/common/utils/embeds/embeds_llm.txt +124 -0
- solace_agent_mesh/common/utils/embeds/evaluators.py +394 -0
- solace_agent_mesh/common/utils/embeds/modifiers.py +816 -0
- solace_agent_mesh/common/utils/embeds/resolver.py +865 -0
- solace_agent_mesh/common/utils/embeds/types.py +14 -0
- solace_agent_mesh/common/utils/in_memory_cache.py +108 -0
- solace_agent_mesh/common/utils/log_formatters.py +44 -0
- solace_agent_mesh/common/utils/mime_helpers.py +106 -0
- solace_agent_mesh/common/utils/push_notification_auth.py +134 -0
- solace_agent_mesh/common/utils/utils_llm.txt +67 -0
- solace_agent_mesh/config_portal/backend/common.py +66 -24
- solace_agent_mesh/config_portal/backend/plugin_catalog/constants.py +23 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/models.py +49 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/registry_manager.py +160 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/scraper.py +525 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog_server.py +216 -0
- solace_agent_mesh/config_portal/backend/server.py +550 -181
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DNxCwAGB.js +48 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/components-B7lKcHVY.js +140 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-DX1misIU.js → entry.client-CEumGClk.js} +3 -3
- solace_agent_mesh/config_portal/frontend/static/client/assets/index-DSo1AH_7.js +68 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-d2b54a97.js +1 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/{root-BApq5dPK.js → root-C4XmHinv.js} +2 -2
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +1 -0
- solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
- solace_agent_mesh/core_a2a/__init__.py +1 -0
- solace_agent_mesh/core_a2a/core_a2a_llm.txt +88 -0
- solace_agent_mesh/core_a2a/service.py +331 -0
- solace_agent_mesh/evaluation/config_loader.py +657 -0
- solace_agent_mesh/evaluation/evaluator.py +667 -0
- solace_agent_mesh/evaluation/message_organizer.py +568 -0
- solace_agent_mesh/evaluation/report/benchmark_info.html +35 -0
- solace_agent_mesh/evaluation/report/chart_section.html +141 -0
- solace_agent_mesh/evaluation/report/detailed_breakdown.html +28 -0
- solace_agent_mesh/evaluation/report/modal.html +59 -0
- solace_agent_mesh/evaluation/report/modal_chart_functions.js +411 -0
- solace_agent_mesh/evaluation/report/modal_script.js +296 -0
- solace_agent_mesh/evaluation/report/modal_styles.css +340 -0
- solace_agent_mesh/evaluation/report/performance_metrics_styles.css +93 -0
- solace_agent_mesh/evaluation/report/templates/footer.html +2 -0
- solace_agent_mesh/evaluation/report/templates/header.html +340 -0
- solace_agent_mesh/evaluation/report_data_processor.py +972 -0
- solace_agent_mesh/evaluation/report_generator.py +613 -0
- solace_agent_mesh/evaluation/run.py +613 -0
- solace_agent_mesh/evaluation/subscriber.py +872 -0
- solace_agent_mesh/evaluation/summary_builder.py +775 -0
- solace_agent_mesh/evaluation/test_case_loader.py +714 -0
- solace_agent_mesh/gateway/base/__init__.py +1 -0
- solace_agent_mesh/gateway/base/app.py +266 -0
- solace_agent_mesh/gateway/base/base_llm.txt +119 -0
- solace_agent_mesh/gateway/base/component.py +1542 -0
- solace_agent_mesh/gateway/base/task_context.py +74 -0
- solace_agent_mesh/gateway/gateway_llm.txt +125 -0
- solace_agent_mesh/gateway/http_sse/app.py +190 -0
- solace_agent_mesh/gateway/http_sse/component.py +1602 -0
- solace_agent_mesh/gateway/http_sse/components/__init__.py +7 -0
- solace_agent_mesh/gateway/http_sse/components/components_llm.txt +65 -0
- solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +108 -0
- solace_agent_mesh/gateway/http_sse/dependencies.py +316 -0
- solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +63 -0
- solace_agent_mesh/gateway/http_sse/main.py +442 -0
- solace_agent_mesh/gateway/http_sse/routers/__init__.py +4 -0
- solace_agent_mesh/gateway/http_sse/routers/agents.py +41 -0
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +821 -0
- solace_agent_mesh/gateway/http_sse/routers/auth.py +212 -0
- solace_agent_mesh/gateway/http_sse/routers/config.py +55 -0
- solace_agent_mesh/gateway/http_sse/routers/people.py +69 -0
- solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +37 -0
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +80 -0
- solace_agent_mesh/gateway/http_sse/routers/sse.py +138 -0
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +294 -0
- solace_agent_mesh/gateway/http_sse/routers/users.py +59 -0
- solace_agent_mesh/gateway/http_sse/routers/visualization.py +1131 -0
- solace_agent_mesh/gateway/http_sse/services/__init__.py +4 -0
- solace_agent_mesh/gateway/http_sse/services/agent_service.py +69 -0
- solace_agent_mesh/gateway/http_sse/services/people_service.py +158 -0
- solace_agent_mesh/gateway/http_sse/services/services_llm.txt +179 -0
- solace_agent_mesh/gateway/http_sse/services/task_service.py +121 -0
- solace_agent_mesh/gateway/http_sse/session_manager.py +187 -0
- solace_agent_mesh/gateway/http_sse/sse_manager.py +328 -0
- solace_agent_mesh/llm.txt +228 -0
- solace_agent_mesh/llm_detail.txt +2835 -0
- solace_agent_mesh/templates/agent_template.yaml +53 -0
- solace_agent_mesh/templates/eval_backend_template.yaml +54 -0
- solace_agent_mesh/templates/gateway_app_template.py +73 -0
- solace_agent_mesh/templates/gateway_component_template.py +400 -0
- solace_agent_mesh/templates/gateway_config_template.yaml +43 -0
- solace_agent_mesh/templates/main_orchestrator.yaml +55 -0
- solace_agent_mesh/templates/plugin_agent_config_template.yaml +122 -0
- solace_agent_mesh/templates/plugin_custom_config_template.yaml +27 -0
- solace_agent_mesh/templates/plugin_custom_template.py +10 -0
- solace_agent_mesh/templates/plugin_gateway_config_template.yaml +63 -0
- solace_agent_mesh/templates/plugin_pyproject_template.toml +33 -0
- solace_agent_mesh/templates/plugin_readme_template.md +34 -0
- solace_agent_mesh/templates/plugin_tools_template.py +224 -0
- solace_agent_mesh/templates/shared_config.yaml +66 -0
- solace_agent_mesh/templates/templates_llm.txt +147 -0
- solace_agent_mesh/templates/webui.yaml +53 -0
- solace_agent_mesh-1.0.1.dist-info/METADATA +432 -0
- solace_agent_mesh-1.0.1.dist-info/RECORD +359 -0
- solace_agent_mesh-1.0.1.dist-info/entry_points.txt +3 -0
- {solace_agent_mesh-0.2.4.dist-info → solace_agent_mesh-1.0.1.dist-info}/licenses/LICENSE +1 -1
- solace_agent_mesh/agents/base_agent_component.py +0 -256
- solace_agent_mesh/agents/global/actions/agent_state_change.py +0 -54
- solace_agent_mesh/agents/global/actions/clear_history.py +0 -32
- solace_agent_mesh/agents/global/actions/convert_file_to_markdown.py +0 -160
- solace_agent_mesh/agents/global/actions/create_file.py +0 -70
- solace_agent_mesh/agents/global/actions/error_action.py +0 -45
- solace_agent_mesh/agents/global/actions/plantuml_diagram.py +0 -163
- solace_agent_mesh/agents/global/actions/plotly_graph.py +0 -152
- solace_agent_mesh/agents/global/actions/retrieve_file.py +0 -51
- solace_agent_mesh/agents/global/global_agent_component.py +0 -38
- solace_agent_mesh/agents/image_processing/actions/create_image.py +0 -75
- solace_agent_mesh/agents/image_processing/actions/describe_image.py +0 -115
- solace_agent_mesh/agents/image_processing/image_processing_agent_component.py +0 -23
- solace_agent_mesh/agents/slack/__init__.py +0 -1
- solace_agent_mesh/agents/slack/actions/__init__.py +0 -1
- solace_agent_mesh/agents/slack/actions/post_message.py +0 -177
- solace_agent_mesh/agents/slack/slack_agent_component.py +0 -59
- solace_agent_mesh/agents/web_request/actions/do_image_search.py +0 -84
- solace_agent_mesh/agents/web_request/actions/do_news_search.py +0 -47
- solace_agent_mesh/agents/web_request/actions/do_suggestion_search.py +0 -34
- solace_agent_mesh/agents/web_request/actions/do_web_request.py +0 -135
- solace_agent_mesh/agents/web_request/actions/download_file.py +0 -69
- solace_agent_mesh/agents/web_request/web_request_agent_component.py +0 -33
- solace_agent_mesh/assets/web-visualizer/assets/index-D0qORgkg.css +0 -1
- solace_agent_mesh/assets/web-visualizer/assets/index-DnDr1pnu.js +0 -109
- solace_agent_mesh/assets/web-visualizer/index.html +0 -14
- solace_agent_mesh/assets/web-visualizer/vite.svg +0 -1
- solace_agent_mesh/cli/commands/add/__init__.py +0 -3
- solace_agent_mesh/cli/commands/add/add.py +0 -88
- solace_agent_mesh/cli/commands/add/agent.py +0 -110
- solace_agent_mesh/cli/commands/add/copy_from_plugin.py +0 -92
- solace_agent_mesh/cli/commands/add/gateway.py +0 -374
- solace_agent_mesh/cli/commands/build.py +0 -670
- solace_agent_mesh/cli/commands/chat/__init__.py +0 -3
- solace_agent_mesh/cli/commands/chat/chat.py +0 -361
- solace_agent_mesh/cli/commands/config.py +0 -29
- solace_agent_mesh/cli/commands/init/__init__.py +0 -3
- solace_agent_mesh/cli/commands/init/ai_provider_step.py +0 -93
- solace_agent_mesh/cli/commands/init/broker_step.py +0 -99
- solace_agent_mesh/cli/commands/init/builtin_agent_step.py +0 -83
- solace_agent_mesh/cli/commands/init/check_if_already_done.py +0 -13
- solace_agent_mesh/cli/commands/init/create_config_file_step.py +0 -65
- solace_agent_mesh/cli/commands/init/create_other_project_files_step.py +0 -147
- solace_agent_mesh/cli/commands/init/file_service_step.py +0 -73
- solace_agent_mesh/cli/commands/init/init.py +0 -92
- solace_agent_mesh/cli/commands/init/project_structure_step.py +0 -16
- solace_agent_mesh/cli/commands/init/web_init_step.py +0 -32
- solace_agent_mesh/cli/commands/plugin/__init__.py +0 -3
- solace_agent_mesh/cli/commands/plugin/add.py +0 -100
- solace_agent_mesh/cli/commands/plugin/build.py +0 -268
- solace_agent_mesh/cli/commands/plugin/create.py +0 -117
- solace_agent_mesh/cli/commands/plugin/plugin.py +0 -124
- solace_agent_mesh/cli/commands/plugin/remove.py +0 -73
- solace_agent_mesh/cli/commands/run.py +0 -68
- solace_agent_mesh/cli/commands/visualizer.py +0 -138
- solace_agent_mesh/cli/config.py +0 -85
- solace_agent_mesh/common/action.py +0 -91
- solace_agent_mesh/common/action_list.py +0 -37
- solace_agent_mesh/common/action_response.py +0 -340
- solace_agent_mesh/common/mysql_database.py +0 -40
- solace_agent_mesh/common/postgres_database.py +0 -85
- solace_agent_mesh/common/prompt_templates.py +0 -28
- solace_agent_mesh/common/stimulus_utils.py +0 -152
- solace_agent_mesh/common/time.py +0 -24
- solace_agent_mesh/common/utils.py +0 -712
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-a-zJ6rLx.js +0 -46
- solace_agent_mesh/config_portal/frontend/static/client/assets/components-ZIfdTbrV.js +0 -191
- solace_agent_mesh/config_portal/frontend/static/client/assets/index-BJHAE5s4.js +0 -17
- solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-44c41103.js +0 -1
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-DX4gQ516.css +0 -1
- solace_agent_mesh/configs/agent_global.yaml +0 -74
- solace_agent_mesh/configs/agent_image_processing.yaml +0 -82
- solace_agent_mesh/configs/agent_slack.yaml +0 -64
- solace_agent_mesh/configs/agent_web_request.yaml +0 -75
- solace_agent_mesh/configs/conversation_to_file.yaml +0 -56
- solace_agent_mesh/configs/error_catcher.yaml +0 -56
- solace_agent_mesh/configs/monitor.yaml +0 -0
- solace_agent_mesh/configs/monitor_stim_and_errors_to_slack.yaml +0 -109
- solace_agent_mesh/configs/monitor_user_feedback.yaml +0 -58
- solace_agent_mesh/configs/orchestrator.yaml +0 -241
- solace_agent_mesh/configs/service_embedding.yaml +0 -81
- solace_agent_mesh/configs/service_llm.yaml +0 -265
- solace_agent_mesh/configs/visualize_websocket.yaml +0 -55
- solace_agent_mesh/gateway/components/gateway_base.py +0 -47
- solace_agent_mesh/gateway/components/gateway_input.py +0 -278
- solace_agent_mesh/gateway/components/gateway_output.py +0 -298
- solace_agent_mesh/gateway/identity/bamboohr_identity.py +0 -18
- solace_agent_mesh/gateway/identity/identity_base.py +0 -10
- solace_agent_mesh/gateway/identity/identity_provider.py +0 -60
- solace_agent_mesh/gateway/identity/no_identity.py +0 -9
- solace_agent_mesh/gateway/identity/passthru_identity.py +0 -9
- solace_agent_mesh/monitors/base_monitor_component.py +0 -26
- solace_agent_mesh/monitors/feedback/user_feedback_monitor.py +0 -75
- solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py +0 -560
- solace_agent_mesh/orchestrator/__init__.py +0 -0
- solace_agent_mesh/orchestrator/action_manager.py +0 -237
- solace_agent_mesh/orchestrator/components/__init__.py +0 -0
- solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py +0 -58
- solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py +0 -179
- solace_agent_mesh/orchestrator/components/orchestrator_register_component.py +0 -107
- solace_agent_mesh/orchestrator/components/orchestrator_stimulus_processor_component.py +0 -527
- solace_agent_mesh/orchestrator/components/orchestrator_streaming_output_component.py +0 -260
- solace_agent_mesh/orchestrator/orchestrator_main.py +0 -172
- solace_agent_mesh/orchestrator/orchestrator_prompt.py +0 -539
- solace_agent_mesh/services/__init__.py +0 -0
- solace_agent_mesh/services/authorization/providers/base_authorization_provider.py +0 -56
- solace_agent_mesh/services/bamboo_hr_service/__init__.py +0 -3
- solace_agent_mesh/services/bamboo_hr_service/bamboo_hr.py +0 -182
- solace_agent_mesh/services/common/__init__.py +0 -4
- solace_agent_mesh/services/common/auto_expiry.py +0 -45
- solace_agent_mesh/services/common/singleton.py +0 -18
- solace_agent_mesh/services/file_service/__init__.py +0 -14
- solace_agent_mesh/services/file_service/file_manager/__init__.py +0 -0
- solace_agent_mesh/services/file_service/file_manager/bucket_file_manager.py +0 -149
- solace_agent_mesh/services/file_service/file_manager/file_manager_base.py +0 -162
- solace_agent_mesh/services/file_service/file_manager/memory_file_manager.py +0 -64
- solace_agent_mesh/services/file_service/file_manager/volume_file_manager.py +0 -106
- solace_agent_mesh/services/file_service/file_service.py +0 -437
- solace_agent_mesh/services/file_service/file_service_constants.py +0 -54
- solace_agent_mesh/services/file_service/file_transformations.py +0 -141
- solace_agent_mesh/services/file_service/file_utils.py +0 -324
- solace_agent_mesh/services/file_service/transformers/__init__.py +0 -5
- solace_agent_mesh/services/history_service/__init__.py +0 -3
- solace_agent_mesh/services/history_service/history_providers/__init__.py +0 -0
- solace_agent_mesh/services/history_service/history_providers/base_history_provider.py +0 -54
- solace_agent_mesh/services/history_service/history_providers/file_history_provider.py +0 -74
- solace_agent_mesh/services/history_service/history_providers/index.py +0 -40
- solace_agent_mesh/services/history_service/history_providers/memory_history_provider.py +0 -33
- solace_agent_mesh/services/history_service/history_providers/mongodb_history_provider.py +0 -66
- solace_agent_mesh/services/history_service/history_providers/redis_history_provider.py +0 -66
- solace_agent_mesh/services/history_service/history_providers/sql_history_provider.py +0 -93
- solace_agent_mesh/services/history_service/history_service.py +0 -413
- solace_agent_mesh/services/history_service/long_term_memory/__init__.py +0 -0
- solace_agent_mesh/services/history_service/long_term_memory/long_term_memory.py +0 -399
- solace_agent_mesh/services/llm_service/components/llm_request_component.py +0 -340
- solace_agent_mesh/services/llm_service/components/llm_service_component_base.py +0 -152
- solace_agent_mesh/services/middleware_service/__init__.py +0 -0
- solace_agent_mesh/services/middleware_service/middleware_service.py +0 -20
- solace_agent_mesh/templates/action.py +0 -38
- solace_agent_mesh/templates/agent.py +0 -29
- solace_agent_mesh/templates/agent.yaml +0 -70
- solace_agent_mesh/templates/gateway-config-template.yaml +0 -6
- solace_agent_mesh/templates/gateway-default-config.yaml +0 -28
- solace_agent_mesh/templates/gateway-flows.yaml +0 -78
- solace_agent_mesh/templates/gateway-header.yaml +0 -16
- solace_agent_mesh/templates/gateway_base.py +0 -15
- solace_agent_mesh/templates/gateway_input.py +0 -98
- solace_agent_mesh/templates/gateway_output.py +0 -71
- solace_agent_mesh/templates/plugin-gateway-default-config.yaml +0 -29
- solace_agent_mesh/templates/plugin-pyproject.toml +0 -30
- solace_agent_mesh/templates/rest-api-default-config.yaml +0 -31
- solace_agent_mesh/templates/rest-api-flows.yaml +0 -81
- solace_agent_mesh/templates/slack-default-config.yaml +0 -16
- solace_agent_mesh/templates/slack-flows.yaml +0 -81
- solace_agent_mesh/templates/solace-agent-mesh-default.yaml +0 -86
- solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml +0 -8
- solace_agent_mesh/templates/web-default-config.yaml +0 -10
- solace_agent_mesh/templates/web-flows.yaml +0 -76
- solace_agent_mesh/tools/__init__.py +0 -0
- solace_agent_mesh/tools/components/__init__.py +0 -0
- solace_agent_mesh/tools/components/conversation_formatter.py +0 -111
- solace_agent_mesh/tools/components/file_resolver_component.py +0 -58
- solace_agent_mesh/tools/config/runtime_config.py +0 -26
- solace_agent_mesh-0.2.4.dist-info/METADATA +0 -176
- solace_agent_mesh-0.2.4.dist-info/RECORD +0 -193
- solace_agent_mesh-0.2.4.dist-info/entry_points.txt +0 -3
- /solace_agent_mesh/{agents → agent}/__init__.py +0 -0
- /solace_agent_mesh/{agents/global → agent/adk}/__init__.py +0 -0
- /solace_agent_mesh/{agents/global/actions → agent/protocol}/__init__.py +0 -0
- /solace_agent_mesh/{agents/image_processing → agent/sac}/__init__.py +0 -0
- /solace_agent_mesh/{agents/image_processing/actions → agent/utils}/__init__.py +0 -0
- /solace_agent_mesh/{agents/web_request → config_portal/backend/plugin_catalog}/__init__.py +0 -0
- /solace_agent_mesh/{agents/web_request/actions → evaluation}/__init__.py +0 -0
- /solace_agent_mesh/gateway/{components → http_sse}/__init__.py +0 -0
- {solace_agent_mesh-0.2.4.dist-info → solace_agent_mesh-1.0.1.dist-info}/WHEEL +0 -0
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import http.server
|
|
3
|
-
import socketserver
|
|
4
|
-
import socket
|
|
5
|
-
import click
|
|
6
|
-
import json
|
|
7
|
-
|
|
8
|
-
from cli.utils import get_cli_root_dir, log_error
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def get_local_ip():
|
|
12
|
-
"""Get the local IP address of the machine."""
|
|
13
|
-
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
14
|
-
try:
|
|
15
|
-
# Connect to an external address, doesn't send any packets, just determines IP
|
|
16
|
-
s.connect(("8.8.8.8", 80))
|
|
17
|
-
ip = s.getsockname()[0]
|
|
18
|
-
except Exception:
|
|
19
|
-
ip = "localhost"
|
|
20
|
-
finally:
|
|
21
|
-
s.close()
|
|
22
|
-
return ip
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def get_wss_url(url: str) -> str:
|
|
26
|
-
"""Get the WSS URL from a WS URL."""
|
|
27
|
-
if url.startswith("ws://") or url.startswith("wss://"):
|
|
28
|
-
return url
|
|
29
|
-
elif url.startswith("tcp://"):
|
|
30
|
-
url = url.replace("tcp://", "ws://")
|
|
31
|
-
# Change port to 443
|
|
32
|
-
if len(url.split(":")) > 1:
|
|
33
|
-
url = url.split(":")
|
|
34
|
-
url[-1] = "443"
|
|
35
|
-
url = ":".join(url)
|
|
36
|
-
elif url.startswith("tcps://"):
|
|
37
|
-
url = url.replace("tcps://", "wss://")
|
|
38
|
-
# Change port to 443
|
|
39
|
-
if len(url.split(":")) > 1:
|
|
40
|
-
url = url.split(":")
|
|
41
|
-
url[-1] = "443"
|
|
42
|
-
url = ":".join(url)
|
|
43
|
-
return url
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def visualizer_command(port, find_unused_port=False, host=False, use_env=False):
|
|
47
|
-
"""Runs a GUI web-based visualizer for inspecting events inside the solace agent mesh."""
|
|
48
|
-
config = click.get_current_context().obj["solace_agent_mesh"]
|
|
49
|
-
if use_env:
|
|
50
|
-
try:
|
|
51
|
-
from dotenv import load_dotenv
|
|
52
|
-
|
|
53
|
-
env_file = config["env_file"]
|
|
54
|
-
load_dotenv(env_file, override=True)
|
|
55
|
-
except ImportError:
|
|
56
|
-
log_error(
|
|
57
|
-
"Failed to import dotenv. Please install it using 'pip install python-dotenv'"
|
|
58
|
-
)
|
|
59
|
-
return 1
|
|
60
|
-
except Exception as e:
|
|
61
|
-
log_error(f"Failed to load environment variables. {e}")
|
|
62
|
-
return 1
|
|
63
|
-
|
|
64
|
-
visualizer_directory = os.path.join(get_cli_root_dir(), "assets", "web-visualizer")
|
|
65
|
-
# Check if the visualizer directory exists
|
|
66
|
-
if not os.path.exists(visualizer_directory):
|
|
67
|
-
visualizer_directory = os.path.join(
|
|
68
|
-
get_cli_root_dir(), "web-visualizer", "dist"
|
|
69
|
-
)
|
|
70
|
-
if not os.path.exists(visualizer_directory):
|
|
71
|
-
log_error("Error: Built Web-Visualizer directory not found.")
|
|
72
|
-
return 1
|
|
73
|
-
|
|
74
|
-
# Find an unused port if the specified port is in use
|
|
75
|
-
while True:
|
|
76
|
-
# Check if port is available
|
|
77
|
-
try:
|
|
78
|
-
with socketserver.TCPServer(("localhost", port), None) as s:
|
|
79
|
-
pass
|
|
80
|
-
except OSError:
|
|
81
|
-
log_error(f"Error: Port {port} is already in use.")
|
|
82
|
-
if find_unused_port:
|
|
83
|
-
port += 1
|
|
84
|
-
click.echo(f"Trying port {port}...")
|
|
85
|
-
continue
|
|
86
|
-
else:
|
|
87
|
-
return 1
|
|
88
|
-
break
|
|
89
|
-
|
|
90
|
-
# Change the current working directory to the visualizer directory
|
|
91
|
-
os.chdir(visualizer_directory)
|
|
92
|
-
|
|
93
|
-
# Write the Solace broker configuration to a file for client pickup
|
|
94
|
-
config = {
|
|
95
|
-
"url": get_wss_url(os.getenv("SOLACE_BROKER_URL", "")),
|
|
96
|
-
"username": os.getenv("SOLACE_BROKER_USERNAME", ""),
|
|
97
|
-
"password": os.getenv("SOLACE_BROKER_PASSWORD", ""),
|
|
98
|
-
"vpn": os.getenv("SOLACE_BROKER_VPN", ""),
|
|
99
|
-
"namespace": os.getenv("SOLACE_AGENT_MESH_NAMESPACE", ""),
|
|
100
|
-
}
|
|
101
|
-
with open("config.json", "w") as f:
|
|
102
|
-
json.dump(config, f)
|
|
103
|
-
|
|
104
|
-
# Set up a handler to serve files from the specified directory
|
|
105
|
-
handler = http.server.SimpleHTTPRequestHandler
|
|
106
|
-
|
|
107
|
-
# Determine the host binding
|
|
108
|
-
if host:
|
|
109
|
-
# Bind to '0.0.0.0' to expose to the network
|
|
110
|
-
bind_address = "0.0.0.0"
|
|
111
|
-
local_ip = get_local_ip() # Get local network IP address
|
|
112
|
-
else:
|
|
113
|
-
# Bind to 'localhost' to restrict access to the local machine
|
|
114
|
-
bind_address = "localhost"
|
|
115
|
-
local_ip = "localhost"
|
|
116
|
-
|
|
117
|
-
# Start the server
|
|
118
|
-
with socketserver.TCPServer((bind_address, port), handler) as httpd:
|
|
119
|
-
click.echo(f"Serving solace-agent-mesh web-visualizer.")
|
|
120
|
-
click.echo(
|
|
121
|
-
click.style(f"\tLocal: http://localhost:{port}", bold=True, fg="blue")
|
|
122
|
-
)
|
|
123
|
-
click.echo(
|
|
124
|
-
click.style(
|
|
125
|
-
"\tNetwork: "
|
|
126
|
-
+ (f"http://{local_ip}:{port}" if host else "use --host to expose"),
|
|
127
|
-
bold=True,
|
|
128
|
-
fg="blue",
|
|
129
|
-
)
|
|
130
|
-
)
|
|
131
|
-
click.echo("Press Ctrl+C to stop the server.")
|
|
132
|
-
try:
|
|
133
|
-
httpd.serve_forever()
|
|
134
|
-
except KeyboardInterrupt:
|
|
135
|
-
click.echo("Shutting down server.")
|
|
136
|
-
httpd.shutdown()
|
|
137
|
-
finally:
|
|
138
|
-
os.remove("config.json")
|
solace_agent_mesh/cli/config.py
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from ruamel.yaml import YAML
|
|
3
|
-
|
|
4
|
-
# Initialize a YAML object
|
|
5
|
-
yaml = YAML()
|
|
6
|
-
yaml.preserve_quotes = True # To preserve quotes in the YAML
|
|
7
|
-
|
|
8
|
-
from cli.utils import merge_dicts, load_template, remove_duplicate
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class Config:
|
|
12
|
-
default_config_file = "solace-agent-mesh-default.yaml"
|
|
13
|
-
user_config_file = "solace-agent-mesh.yaml"
|
|
14
|
-
user_plugin_config_file = "solace-agent-mesh-plugin.yaml"
|
|
15
|
-
default_plugin_config_file = "solace-agent-mesh-plugin-default.yaml"
|
|
16
|
-
|
|
17
|
-
@staticmethod
|
|
18
|
-
def get_default_config():
|
|
19
|
-
loaded_config = load_template(Config.default_config_file)
|
|
20
|
-
return yaml.load(loaded_config)
|
|
21
|
-
|
|
22
|
-
@staticmethod
|
|
23
|
-
def get_default_plugin_config():
|
|
24
|
-
loaded_config = load_template(Config.default_plugin_config_file)
|
|
25
|
-
return yaml.load(loaded_config)
|
|
26
|
-
|
|
27
|
-
@staticmethod
|
|
28
|
-
def get_user_config(config_file=None):
|
|
29
|
-
config_file_path = config_file or Config.user_config_file
|
|
30
|
-
if os.path.exists(config_file_path):
|
|
31
|
-
with open(config_file_path, "r", encoding="utf-8") as f:
|
|
32
|
-
return yaml.load(f) or {}
|
|
33
|
-
return {}
|
|
34
|
-
|
|
35
|
-
@staticmethod
|
|
36
|
-
def get_user_plugin_config(config_file=None):
|
|
37
|
-
config_file_path = config_file or Config.user_plugin_config_file
|
|
38
|
-
if os.path.exists(config_file_path):
|
|
39
|
-
with open(config_file_path, "r", encoding="utf-8") as f:
|
|
40
|
-
return yaml.load(f) or {}
|
|
41
|
-
return {}
|
|
42
|
-
|
|
43
|
-
@staticmethod
|
|
44
|
-
def get_config(config_file=None):
|
|
45
|
-
user_config = Config.get_user_config(config_file)
|
|
46
|
-
default_config = Config.get_default_config()
|
|
47
|
-
# Merge user config with default config
|
|
48
|
-
merged_config = merge_dicts(default_config, user_config)
|
|
49
|
-
merged_config["solace_agent_mesh"]["built_in"]["agents"] = remove_duplicate(
|
|
50
|
-
merged_config["solace_agent_mesh"]["built_in"]["agents"],
|
|
51
|
-
lambda agent: agent.get("name"),
|
|
52
|
-
)
|
|
53
|
-
return merged_config
|
|
54
|
-
|
|
55
|
-
@staticmethod
|
|
56
|
-
def get_plugin_config(config_file=None):
|
|
57
|
-
user_config = Config.get_user_plugin_config(config_file)
|
|
58
|
-
default_config = Config.get_default_plugin_config()
|
|
59
|
-
# Merge user config with default config
|
|
60
|
-
merged_config = merge_dicts(default_config, user_config)
|
|
61
|
-
return merged_config
|
|
62
|
-
|
|
63
|
-
@staticmethod
|
|
64
|
-
def is_plugin_project():
|
|
65
|
-
return os.path.exists(Config.user_plugin_config_file)
|
|
66
|
-
|
|
67
|
-
@staticmethod
|
|
68
|
-
@staticmethod
|
|
69
|
-
def write_config(config, path=None):
|
|
70
|
-
if not path:
|
|
71
|
-
path = Config.user_config_file
|
|
72
|
-
with open(path, "w", encoding="utf-8") as f:
|
|
73
|
-
yaml.dump(config, f)
|
|
74
|
-
|
|
75
|
-
@staticmethod
|
|
76
|
-
def load_config(path=None):
|
|
77
|
-
if not path:
|
|
78
|
-
path = Config.user_config_file
|
|
79
|
-
if os.path.exists(path):
|
|
80
|
-
with open(path, "r", encoding="utf-8") as f:
|
|
81
|
-
return yaml.load(f)
|
|
82
|
-
|
|
83
|
-
@staticmethod
|
|
84
|
-
def get_yaml_parser():
|
|
85
|
-
return yaml.load
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
from abc import ABC, abstractmethod
|
|
2
|
-
|
|
3
|
-
from .action_response import ActionResponse
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Action(ABC):
|
|
7
|
-
|
|
8
|
-
def __init__(self, attributes, agent=None, config_fn=None, **kwargs):
|
|
9
|
-
self.validate_attributes(attributes)
|
|
10
|
-
self.long_description = attributes.get(
|
|
11
|
-
"long_description", attributes.get("prompt_directive", "<unspecified>")
|
|
12
|
-
)
|
|
13
|
-
self._prompt_directive = attributes.get("prompt_directive")
|
|
14
|
-
self._name = attributes.get("name")
|
|
15
|
-
self._params = attributes.get("params")
|
|
16
|
-
self._disabled = attributes.get("disabled", False)
|
|
17
|
-
self._examples = attributes.get("examples", [])
|
|
18
|
-
self._required_scopes = attributes.get("required_scopes", [])
|
|
19
|
-
self._config_fn = config_fn
|
|
20
|
-
self.agent = agent
|
|
21
|
-
self.kwargs = kwargs
|
|
22
|
-
|
|
23
|
-
@property
|
|
24
|
-
def name(self):
|
|
25
|
-
return self._name
|
|
26
|
-
|
|
27
|
-
@property
|
|
28
|
-
def disabled(self):
|
|
29
|
-
return self._disabled
|
|
30
|
-
|
|
31
|
-
@property
|
|
32
|
-
def examples(self):
|
|
33
|
-
return self._examples
|
|
34
|
-
|
|
35
|
-
@property
|
|
36
|
-
def required_scopes(self):
|
|
37
|
-
return self._required_scopes
|
|
38
|
-
|
|
39
|
-
def set_agent(self, agent):
|
|
40
|
-
self.agent = agent
|
|
41
|
-
|
|
42
|
-
def fix_scopes(self, search_value, replace_value):
|
|
43
|
-
self._required_scopes = [
|
|
44
|
-
scope.replace(search_value, replace_value)
|
|
45
|
-
for scope in self._required_scopes
|
|
46
|
-
]
|
|
47
|
-
|
|
48
|
-
def get_agent(self):
|
|
49
|
-
return self.agent
|
|
50
|
-
|
|
51
|
-
def set_config_fn(self, config_fn):
|
|
52
|
-
self._config_fn = config_fn
|
|
53
|
-
|
|
54
|
-
def get_config(self, key=None, default=None):
|
|
55
|
-
if self._config_fn:
|
|
56
|
-
return self._config_fn(key, default)
|
|
57
|
-
return default
|
|
58
|
-
|
|
59
|
-
def get_prompt_summary(self, prefix="") -> dict:
|
|
60
|
-
if self.disabled:
|
|
61
|
-
return None
|
|
62
|
-
summary = {}
|
|
63
|
-
action_name = self._name
|
|
64
|
-
summary[action_name] = {
|
|
65
|
-
"desc": self._prompt_directive,
|
|
66
|
-
"params": [f"{param['name']} ({param['desc']})" for param in self._params],
|
|
67
|
-
"examples": self._examples,
|
|
68
|
-
"required_scopes": self._required_scopes,
|
|
69
|
-
}
|
|
70
|
-
return summary
|
|
71
|
-
|
|
72
|
-
def validate_attributes(self, attributes):
|
|
73
|
-
if not attributes.get("name"):
|
|
74
|
-
raise ValueError("Actions must have a name")
|
|
75
|
-
if not attributes.get("prompt_directive"):
|
|
76
|
-
raise ValueError("Actions must have a prompt_directive")
|
|
77
|
-
if attributes.get("params"):
|
|
78
|
-
params = attributes.get("params")
|
|
79
|
-
for param in params:
|
|
80
|
-
if not param.get("name"):
|
|
81
|
-
raise ValueError(
|
|
82
|
-
"Action attributes params must have a descriptive name"
|
|
83
|
-
)
|
|
84
|
-
if not param.get("desc"):
|
|
85
|
-
raise ValueError("Action attributes params must have a description")
|
|
86
|
-
if not param.get("type"):
|
|
87
|
-
raise ValueError("Action attributes params must have a type")
|
|
88
|
-
|
|
89
|
-
@abstractmethod
|
|
90
|
-
def invoke(self, params, meta={}) -> ActionResponse:
|
|
91
|
-
raise NotImplementedError("Invoke method must be implemented in subclass")
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
from .action import Action
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class ActionList:
|
|
5
|
-
|
|
6
|
-
def __init__(self, actions_classes, **kwargs):
|
|
7
|
-
self.actions: Action = []
|
|
8
|
-
self.actions_map = {}
|
|
9
|
-
for action_class in actions_classes:
|
|
10
|
-
action = action_class(**kwargs)
|
|
11
|
-
self.actions.append(action)
|
|
12
|
-
self.actions_map[action.name] = action
|
|
13
|
-
|
|
14
|
-
def add_action(self, action):
|
|
15
|
-
self.actions.append(action)
|
|
16
|
-
self.actions_map[action.name] = action
|
|
17
|
-
|
|
18
|
-
def set_agent(self, agent):
|
|
19
|
-
for action in self.actions:
|
|
20
|
-
action.set_agent(agent)
|
|
21
|
-
|
|
22
|
-
def fix_scopes(self, search_value, replace_value):
|
|
23
|
-
for action in self.actions:
|
|
24
|
-
action.fix_scopes(search_value, replace_value)
|
|
25
|
-
|
|
26
|
-
def set_config_fn(self, config_fn):
|
|
27
|
-
for action in self.actions:
|
|
28
|
-
action.set_config_fn(config_fn)
|
|
29
|
-
|
|
30
|
-
def get_prompt_summary(self, prefix="") -> dict:
|
|
31
|
-
summary = []
|
|
32
|
-
for action in self.actions:
|
|
33
|
-
summary.append(action.get_prompt_summary(prefix))
|
|
34
|
-
return summary
|
|
35
|
-
|
|
36
|
-
def get_action(self, name):
|
|
37
|
-
return self.actions_map.get(name)
|
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
"""This is the definition of responses for the actions of the system."""
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class RagMatch:
|
|
7
|
-
|
|
8
|
-
def __init__(self, text: str, link: str = None, heading: str = None):
|
|
9
|
-
self._text: str = text
|
|
10
|
-
self._link: str = link
|
|
11
|
-
self._heading: str = heading
|
|
12
|
-
|
|
13
|
-
@property
|
|
14
|
-
def text(self) -> str:
|
|
15
|
-
return self._text
|
|
16
|
-
|
|
17
|
-
@property
|
|
18
|
-
def link(self) -> str:
|
|
19
|
-
return self._link
|
|
20
|
-
|
|
21
|
-
@property
|
|
22
|
-
def heading(self) -> str:
|
|
23
|
-
return self._headings
|
|
24
|
-
|
|
25
|
-
def to_dict(self) -> dict:
|
|
26
|
-
return {
|
|
27
|
-
"text": self._text,
|
|
28
|
-
"link": self._link,
|
|
29
|
-
"heading": self._heading,
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class InlineFile:
|
|
34
|
-
|
|
35
|
-
def __init__(self, content: str, name: str, **kwargs):
|
|
36
|
-
if type(content) != str:
|
|
37
|
-
raise ValueError("InlineFile content must be a string")
|
|
38
|
-
self._content: str = content
|
|
39
|
-
self._name: str = name
|
|
40
|
-
self._kwargs: dict = kwargs
|
|
41
|
-
|
|
42
|
-
@property
|
|
43
|
-
def content(self) -> str:
|
|
44
|
-
return self._content
|
|
45
|
-
|
|
46
|
-
@property
|
|
47
|
-
def name(self) -> str:
|
|
48
|
-
return self._name
|
|
49
|
-
|
|
50
|
-
@property
|
|
51
|
-
def kwargs(self) -> dict:
|
|
52
|
-
return self._kwargs
|
|
53
|
-
|
|
54
|
-
def to_dict(self) -> dict:
|
|
55
|
-
return {
|
|
56
|
-
"data": self._content,
|
|
57
|
-
"name": self._name,
|
|
58
|
-
"file_size": len(self._content.encode()),
|
|
59
|
-
"mime_type": "text/plain",
|
|
60
|
-
**self._kwargs,
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
class WithContextQuery:
|
|
65
|
-
|
|
66
|
-
def __init__(
|
|
67
|
-
self, query: str, context_type: str, context: str = None, since: str = None
|
|
68
|
-
):
|
|
69
|
-
self._query: str = query
|
|
70
|
-
self._context_type: str = context_type
|
|
71
|
-
self._context: str = context
|
|
72
|
-
self._since: str = since
|
|
73
|
-
|
|
74
|
-
@property
|
|
75
|
-
def query(self) -> str:
|
|
76
|
-
return self._query
|
|
77
|
-
|
|
78
|
-
@property
|
|
79
|
-
def context(self) -> str:
|
|
80
|
-
return self._context
|
|
81
|
-
|
|
82
|
-
@property
|
|
83
|
-
def context_type(self) -> str:
|
|
84
|
-
return self._context_type
|
|
85
|
-
|
|
86
|
-
@property
|
|
87
|
-
def since(self) -> dict:
|
|
88
|
-
return self._since
|
|
89
|
-
|
|
90
|
-
def to_dict(self) -> dict:
|
|
91
|
-
return {
|
|
92
|
-
"query": self._query,
|
|
93
|
-
"context_type": self._context_type,
|
|
94
|
-
"context": self._context,
|
|
95
|
-
"since": self._since,
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
class RagResponse:
|
|
100
|
-
|
|
101
|
-
def __init__(
|
|
102
|
-
self, data_source: str, matches: list[RagMatch], query: str, prompt: str = None
|
|
103
|
-
):
|
|
104
|
-
self._data_source: str = data_source
|
|
105
|
-
self._matches: list[RagMatch] = matches
|
|
106
|
-
self._query: str = query
|
|
107
|
-
self._prompt: str = prompt
|
|
108
|
-
|
|
109
|
-
@property
|
|
110
|
-
def data_source(self) -> str:
|
|
111
|
-
return self._data_source
|
|
112
|
-
|
|
113
|
-
@property
|
|
114
|
-
def matches(self) -> list[RagMatch]:
|
|
115
|
-
return self._matches
|
|
116
|
-
|
|
117
|
-
@property
|
|
118
|
-
def query(self) -> str:
|
|
119
|
-
return self._query
|
|
120
|
-
|
|
121
|
-
@property
|
|
122
|
-
def prompt(self) -> str:
|
|
123
|
-
return self._prompt
|
|
124
|
-
|
|
125
|
-
def to_dict(self) -> dict:
|
|
126
|
-
return {
|
|
127
|
-
"data_source": self._data_source,
|
|
128
|
-
"matches": [match.to_dict() for match in self._matches],
|
|
129
|
-
"query": self._query,
|
|
130
|
-
"prompt": self._prompt,
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
class AgentStateChange:
|
|
135
|
-
|
|
136
|
-
def __init__(self, agent_name: str, new_state: str):
|
|
137
|
-
self._agent_name: str = agent_name
|
|
138
|
-
self._new_state: str = new_state
|
|
139
|
-
|
|
140
|
-
@property
|
|
141
|
-
def agent_name(self) -> str:
|
|
142
|
-
return self._agent_name
|
|
143
|
-
|
|
144
|
-
@property
|
|
145
|
-
def new_state(self) -> str:
|
|
146
|
-
return self._new_state
|
|
147
|
-
|
|
148
|
-
def to_dict(self) -> dict:
|
|
149
|
-
return {"agent_name": self._agent_name, "new_state": self._new_state}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
class ErrorInfo:
|
|
153
|
-
|
|
154
|
-
def __init__(self, error_message: str):
|
|
155
|
-
self._error_message: str = error_message
|
|
156
|
-
|
|
157
|
-
@property
|
|
158
|
-
def error_message(self) -> str:
|
|
159
|
-
return self._error_message
|
|
160
|
-
|
|
161
|
-
def __str__(self) -> str:
|
|
162
|
-
return self._error_message
|
|
163
|
-
|
|
164
|
-
def to_dict(self) -> dict:
|
|
165
|
-
return {"error_message": self._error_message}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
class ActionResponse:
|
|
169
|
-
|
|
170
|
-
def __init__(
|
|
171
|
-
self,
|
|
172
|
-
message: any = None,
|
|
173
|
-
files: list[str] = None,
|
|
174
|
-
inline_files: list[InlineFile] = None,
|
|
175
|
-
clear_history: bool = False,
|
|
176
|
-
history_depth_to_keep: int = None,
|
|
177
|
-
error_info: ErrorInfo = None,
|
|
178
|
-
agent_state_change: AgentStateChange = None,
|
|
179
|
-
invoke_model_again: bool = False,
|
|
180
|
-
context_query: WithContextQuery = None,
|
|
181
|
-
is_async: bool = False,
|
|
182
|
-
async_response_id: str = None,
|
|
183
|
-
):
|
|
184
|
-
# Message to return - this could be a string or a slack blocks message
|
|
185
|
-
self._message: str = message
|
|
186
|
-
# Files to return - this is a list of temporary files to return
|
|
187
|
-
self._files: list[str] = files
|
|
188
|
-
# Inline files to return - this is a list of inline files to return
|
|
189
|
-
self._inline_files: list[InlineFile] = inline_files
|
|
190
|
-
# Clear history - this is a flag to clear the chat history
|
|
191
|
-
self._clear_history: bool = clear_history
|
|
192
|
-
# Clear history but keep depth - this is a flag to clear the chat history but keep
|
|
193
|
-
# the last N messages
|
|
194
|
-
self._history_depth_to_keep: int = history_depth_to_keep
|
|
195
|
-
# Error info - this is a dictionary of error information (error_message)
|
|
196
|
-
self._error_info: ErrorInfo = error_info
|
|
197
|
-
# Agent state change - this is a dictionary of agent state change
|
|
198
|
-
# information (agent_name, new_state)
|
|
199
|
-
self._agent_state_change: AgentStateChange = agent_state_change
|
|
200
|
-
# Invoke model again - this is a flag to indicate if the model should be
|
|
201
|
-
# invoked again with the same input
|
|
202
|
-
self._invoke_model_again: bool = invoke_model_again
|
|
203
|
-
# Context query - this contains the query and context type to be used in the next action
|
|
204
|
-
self._context_query: WithContextQuery = context_query
|
|
205
|
-
# action_list_id - identifier of the action_list that this action response is associated with
|
|
206
|
-
self._action_list_id: str = None
|
|
207
|
-
# action_idx - index of the action in the action_list that this action response is associated with
|
|
208
|
-
self._action_idx: int = None
|
|
209
|
-
# action_name - name of the action that this action response is associated with
|
|
210
|
-
self._action_name: str = None
|
|
211
|
-
# action_params - parameters of the action that this action response is associated with
|
|
212
|
-
self._action_params: dict = None
|
|
213
|
-
# is_async - indicates if this is an async response that will be delivered later
|
|
214
|
-
self._is_async: bool = is_async
|
|
215
|
-
# async_response_id - unique identifier for correlating async responses
|
|
216
|
-
self._async_response_id: str = async_response_id
|
|
217
|
-
# originator - the component that originated the action request
|
|
218
|
-
self._originator: Optional[str] = None
|
|
219
|
-
|
|
220
|
-
@property
|
|
221
|
-
def message(self) -> any:
|
|
222
|
-
return self._message
|
|
223
|
-
|
|
224
|
-
@message.setter
|
|
225
|
-
def message(self, message: any):
|
|
226
|
-
self._message = message
|
|
227
|
-
|
|
228
|
-
@property
|
|
229
|
-
def files(self) -> list[str]:
|
|
230
|
-
return self._files
|
|
231
|
-
|
|
232
|
-
@property
|
|
233
|
-
def inline_files(self) -> list[InlineFile]:
|
|
234
|
-
return self._inline_files
|
|
235
|
-
|
|
236
|
-
@property
|
|
237
|
-
def clear_history(self) -> bool:
|
|
238
|
-
return self._clear_history
|
|
239
|
-
|
|
240
|
-
@property
|
|
241
|
-
def history_depth_to_keep(self) -> int:
|
|
242
|
-
return self._history_depth_to_keep
|
|
243
|
-
|
|
244
|
-
@property
|
|
245
|
-
def error_info(self) -> dict:
|
|
246
|
-
return self._error_info
|
|
247
|
-
|
|
248
|
-
@property
|
|
249
|
-
def agent_state_change(self) -> AgentStateChange:
|
|
250
|
-
return self._agent_state_change
|
|
251
|
-
|
|
252
|
-
@property
|
|
253
|
-
def invoke_model_again(self) -> bool:
|
|
254
|
-
return self._invoke_model_again
|
|
255
|
-
|
|
256
|
-
@property
|
|
257
|
-
def context_query(self) -> WithContextQuery:
|
|
258
|
-
return self._context_query
|
|
259
|
-
|
|
260
|
-
@property
|
|
261
|
-
def action_list_id(self) -> str:
|
|
262
|
-
return self._action_list_id
|
|
263
|
-
|
|
264
|
-
@property
|
|
265
|
-
def action_idx(self) -> int:
|
|
266
|
-
return self._action_idx
|
|
267
|
-
|
|
268
|
-
@property
|
|
269
|
-
def action_name(self) -> str:
|
|
270
|
-
return self._action_name
|
|
271
|
-
|
|
272
|
-
@property
|
|
273
|
-
def action_params(self) -> dict:
|
|
274
|
-
return self._action_params
|
|
275
|
-
|
|
276
|
-
@property
|
|
277
|
-
def originator(self) -> dict:
|
|
278
|
-
return self._originator
|
|
279
|
-
|
|
280
|
-
@action_list_id.setter
|
|
281
|
-
def action_list_id(self, action_list_id: str):
|
|
282
|
-
self._action_list_id = action_list_id
|
|
283
|
-
|
|
284
|
-
@action_idx.setter
|
|
285
|
-
def action_idx(self, action_idx: int):
|
|
286
|
-
self._action_idx = action_idx
|
|
287
|
-
|
|
288
|
-
@action_name.setter
|
|
289
|
-
def action_name(self, action_name: str):
|
|
290
|
-
self._action_name = action_name
|
|
291
|
-
|
|
292
|
-
@action_params.setter
|
|
293
|
-
def action_params(self, action_params: dict):
|
|
294
|
-
self._action_params = action_params
|
|
295
|
-
|
|
296
|
-
@originator.setter
|
|
297
|
-
def originator(self, originator: str):
|
|
298
|
-
self._originator = originator
|
|
299
|
-
|
|
300
|
-
@property
|
|
301
|
-
def is_async(self) -> bool:
|
|
302
|
-
return self._is_async
|
|
303
|
-
|
|
304
|
-
@property
|
|
305
|
-
def async_response_id(self) -> str:
|
|
306
|
-
return self._async_response_id
|
|
307
|
-
|
|
308
|
-
def to_dict(self) -> dict:
|
|
309
|
-
response = {}
|
|
310
|
-
if self._message:
|
|
311
|
-
response["message"] = self._message
|
|
312
|
-
if self._is_async:
|
|
313
|
-
response["is_async"] = True
|
|
314
|
-
response["async_response_id"] = self._async_response_id
|
|
315
|
-
if self._files:
|
|
316
|
-
# Files are already dictionary
|
|
317
|
-
response["files"] = self._files
|
|
318
|
-
if self._inline_files:
|
|
319
|
-
# Add to the files list
|
|
320
|
-
response["files"] = response.get("files", []) + [
|
|
321
|
-
inline_file.to_dict() for inline_file in self._inline_files
|
|
322
|
-
]
|
|
323
|
-
if self._clear_history:
|
|
324
|
-
response["clear_history"] = self._clear_history
|
|
325
|
-
if self._history_depth_to_keep:
|
|
326
|
-
response["history_depth_to_keep"] = self._history_depth_to_keep
|
|
327
|
-
if self._error_info:
|
|
328
|
-
response["error_info"] = self._error_info.to_dict()
|
|
329
|
-
if self._agent_state_change:
|
|
330
|
-
response["agent_state_change"] = self._agent_state_change.to_dict()
|
|
331
|
-
if self._invoke_model_again:
|
|
332
|
-
response["invoke_model_again"] = self._invoke_model_again
|
|
333
|
-
if self._context_query:
|
|
334
|
-
response["context_query"] = self._context_query.to_dict()
|
|
335
|
-
response["action_list_id"] = self._action_list_id
|
|
336
|
-
response["action_idx"] = self._action_idx
|
|
337
|
-
response["action_name"] = self._action_name
|
|
338
|
-
response["action_params"] = self._action_params
|
|
339
|
-
response["originator"] = self._originator
|
|
340
|
-
return response
|