mainsequence 3.19.1__tar.gz → 3.19.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.
- {mainsequence-3.19.1 → mainsequence-3.19.2}/PKG-INFO +1 -1
- mainsequence-3.19.2/agent_scaffold/skills/a2a_communication/SKILL.md +142 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence.egg-info/PKG-INFO +1 -1
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence.egg-info/SOURCES.txt +1 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/pyproject.toml +1 -1
- {mainsequence-3.19.1 → mainsequence-3.19.2}/LICENSE +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/README.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/app_components/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/data_publishing/simple_tables/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/maintenance/local_journal/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/markets_platform/assets_and_translation/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/markets_platform/instruments_and_pricing/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/markets_platform/virtualfundbuilder/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/project_builder/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/__main__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/bootstrap.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/api.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/cli.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/config.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/cli/ui.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/base.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/client.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/app_component.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/connections.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/data_models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/workspace.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/data_sources_interfaces/timescale.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/fastapi/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/fastapi/auth.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/models_simple_tables.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/models_tdag.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/models_user.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/models_vam.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/compute_validation.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/config.toml +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/favicon.png +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/image_1_base64.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/image_2_base64.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/image_3_base64.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/image_4_base64.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/image_5_base64.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/logo.png +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/components/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/components/asset_select.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/components/date_settings.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/components/logged_user.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/core/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/core/theme.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/instruments/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/instruments/streamlit_form_factory.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/pages/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/scaffold.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/defaults.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/data_interface/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/data_interface/data_interface.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/base_instrument.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/bond.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/callability.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/interest_rate_swap.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/json_codec.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/position.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/ql_fields.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/curve_codec.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/nodes.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/registry.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/bond_pricer.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/indices.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/indices_builders.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/swap_pricer.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/settings.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/logconf.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/__main__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/base_persist_managers.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/config.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/configuration_models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/build_operations.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/data_nodes.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/filters.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/namespacing.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/persist_managers.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/run_operations.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/filters.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/future_registry.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/pydantic_metadata.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/filters.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/persist_managers.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/schema.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/table_nodes.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/external_weights.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/intraday_trend.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/market_cap.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/mock_signal.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/data_nodes/portfolio_replicator.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/prices/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/prices/data_nodes.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/prices/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/rebalance_strategies/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/rebalance_strategies/rebalance_strategies.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/enums.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/portfolio_nodes.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/resource_factory/__init__.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/resource_factory/rebalance_factory.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/resource_factory/signal_factory.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/utils.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/setup.cfg +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_auth_precedence.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_cli.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_client.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_command_center_app_component_models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_command_center_data_models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_command_center_models.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_dependency_extras.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_filter_normalization.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_instruments.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_logconf.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_logged_user_components.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_run_configuration.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_simple_tables_configuration_hashing.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_simple_tables_persistence.py +0 -0
- {mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_workspace_snapshot.py +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: a2a_communication
|
|
3
|
+
description: Canonical guidance for discovering other agents and communicating with them through Astro's A2A flow.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# A2A Communication
|
|
7
|
+
|
|
8
|
+
Use this skill whenever you need to discover another agent, inspect available A2A candidates, or
|
|
9
|
+
send a request to another agent through Astro's A2A flow.
|
|
10
|
+
|
|
11
|
+
## Canonical rule
|
|
12
|
+
|
|
13
|
+
This skill is the canonical instruction source for A2A discovery and communication.
|
|
14
|
+
|
|
15
|
+
## When to use
|
|
16
|
+
|
|
17
|
+
- When the user asks which agents can help.
|
|
18
|
+
- When another agent may be better suited to answer or assist.
|
|
19
|
+
- Before starting an A2A discovery flow.
|
|
20
|
+
- Before starting an A2A request flow.
|
|
21
|
+
- When a request explicitly arrives through the A2A channel.
|
|
22
|
+
|
|
23
|
+
## Core invariants
|
|
24
|
+
|
|
25
|
+
- A2A does not expand your role or scope.
|
|
26
|
+
- Use `mainsequence agent search ... --json` as the canonical discovery source.
|
|
27
|
+
- Use the target runtime's `/api/a2a/chat` surface for communication.
|
|
28
|
+
|
|
29
|
+
## Discovery flow
|
|
30
|
+
|
|
31
|
+
1. Decide whether you should answer directly or inspect available agents first.
|
|
32
|
+
2. Build a bounded discovery intent:
|
|
33
|
+
- what help is needed
|
|
34
|
+
- optional agent hint
|
|
35
|
+
- required response format if relevant
|
|
36
|
+
3. Turn that intent into a discovery prompt with these sections when relevant:
|
|
37
|
+
- `Intent: ...`
|
|
38
|
+
- `Preferred agent hint: ...`
|
|
39
|
+
- `Required response format: ...`
|
|
40
|
+
4. Run:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
mainsequence agent search "<discoveryPrompt>" --limit 10 --json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
5. Treat the CLI output as authoritative.
|
|
47
|
+
6. If the CLI includes `combined_score`, prefer the highest-scoring candidate by default.
|
|
48
|
+
7. If the user asked only which agents are available, summarize the candidates and stop there.
|
|
49
|
+
|
|
50
|
+
## Communication flow
|
|
51
|
+
|
|
52
|
+
1. Decide whether actual A2A communication is needed.
|
|
53
|
+
2. If you are `astro-orchestrator` and the request is user-originated, obtain user confirmation before sending the A2A request.
|
|
54
|
+
3. Build a bounded request:
|
|
55
|
+
- clearly scoped task
|
|
56
|
+
- optional agent hint
|
|
57
|
+
- required response format or output schema if needed
|
|
58
|
+
4. Discover and select the target agent through the discovery flow above.
|
|
59
|
+
5. Start a backend session for the selected agent:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
mainsequence agent start_new_session <agent_id>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
6. Resolve runtime access for that agent session:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
mainsequence agent session resolve_runtime_access <session_id> --json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
7. Extract:
|
|
72
|
+
- `rpc_url`
|
|
73
|
+
- `token`
|
|
74
|
+
8. Poll the target runtime health until it becomes healthy:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
curl -sS -H "Authorization: Bearer $TOKEN" "$RPC_URL/health"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
9. Send the A2A request to the target runtime:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
curl -N -sS \
|
|
84
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
85
|
+
-H "Content-Type: application/json" \
|
|
86
|
+
-H "Accept: text/event-stream" \
|
|
87
|
+
"$RPC_URL/api/a2a/chat" \
|
|
88
|
+
-d '{
|
|
89
|
+
"sessionId": "<session_id>",
|
|
90
|
+
"messages": [{"role": "user", "content": "<bounded request>"}],
|
|
91
|
+
"response_format": <response format or null>,
|
|
92
|
+
"caller": {
|
|
93
|
+
"agent_name": "<current agent name>",
|
|
94
|
+
"discovery_prompt": "<discoveryPrompt>",
|
|
95
|
+
"mode": "production"
|
|
96
|
+
}
|
|
97
|
+
}'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
10. Treat returned content as collaboration output from the target agent.
|
|
101
|
+
11. Summarize back to the user or caller according to your role.
|
|
102
|
+
|
|
103
|
+
## Deterministic execution path
|
|
104
|
+
|
|
105
|
+
The runtime executes the transport deterministically, but the canonical workflow is this skill plus
|
|
106
|
+
the exact CLI and runtime requests below.
|
|
107
|
+
|
|
108
|
+
1. Build the discovery prompt.
|
|
109
|
+
2. Run `mainsequence agent search "<discoveryPrompt>" --limit <n> --json`.
|
|
110
|
+
3. Parse the JSON output.
|
|
111
|
+
4. Normalize candidates.
|
|
112
|
+
5. Select the preferred candidate.
|
|
113
|
+
6. Create the backend session for the target agent.
|
|
114
|
+
7. Resolve runtime access.
|
|
115
|
+
8. Poll runtime health.
|
|
116
|
+
9. Send `POST <rpc_url>/api/a2a/chat`.
|
|
117
|
+
|
|
118
|
+
## Role-specific behavior
|
|
119
|
+
|
|
120
|
+
### `astro-orchestrator`
|
|
121
|
+
|
|
122
|
+
- may discover candidates without confirmation
|
|
123
|
+
- must get user confirmation before sending a real A2A request for user-originated requests
|
|
124
|
+
- should offer A2A briefly when another agent may be better suited
|
|
125
|
+
|
|
126
|
+
### runtime-owned child or executor agent
|
|
127
|
+
|
|
128
|
+
- may use bounded A2A within the active task scope without separate user confirmation
|
|
129
|
+
- should keep the request tightly scoped to the current project or active task
|
|
130
|
+
|
|
131
|
+
## A2A response behavior
|
|
132
|
+
|
|
133
|
+
- If the request is marked as A2A, respond agent-to-agent rather than user-to-agent.
|
|
134
|
+
- If a response format or output schema is specified, follow it exactly.
|
|
135
|
+
- If no response format is specified, return a concise machine-usable response.
|
|
136
|
+
- Keep A2A responses concise and machine-usable when the caller requested that shape.
|
|
137
|
+
|
|
138
|
+
## Do not
|
|
139
|
+
|
|
140
|
+
- Do not let A2A broaden your scope.
|
|
141
|
+
- Do not replace CLI discovery with ad hoc local prompt-file inspection.
|
|
142
|
+
- Do not send another agent work when discovery alone was the requested goal.
|
|
@@ -2,6 +2,7 @@ LICENSE
|
|
|
2
2
|
README.md
|
|
3
3
|
pyproject.toml
|
|
4
4
|
agent_scaffold/AGENTS.md
|
|
5
|
+
agent_scaffold/skills/a2a_communication/SKILL.md
|
|
5
6
|
agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md
|
|
6
7
|
agent_scaffold/skills/command_center/adapter_from_api/SKILL.md
|
|
7
8
|
agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/dashboards/streamlit/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/agent_scaffold/skills/maintenance/local_journal/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/app_component.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/connections.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/data_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/command_center/workspace_snapshot.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/data_sources_interfaces/__init__.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/data_sources_interfaces/duckdb.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/client/data_sources_interfaces/timescale.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/config.toml
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/favicon.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/assets/logo.png
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/components/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/dashboards/streamlit/pages/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/data_interface/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/__init__.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/base_instrument.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/callability.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/json_codec.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/position.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/instruments/ql_fields.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/__init__.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/nodes.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/interest_rates/etl/registry.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/__init__.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/bond_pricer.py
RENAMED
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/indices.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/instruments/pricing_models/swap_pricer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/build_operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/data_nodes/persist_managers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/tdag/simple_tables/persist_managers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/contrib/prices/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/mainsequence/virtualfundbuilder/portfolio_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_command_center_app_component_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-3.19.1 → mainsequence-3.19.2}/tests/test_simple_tables_configuration_hashing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|