a2a-source-edit: write agent.py
This commit is contained in:
10
agent.py
10
agent.py
@@ -438,7 +438,7 @@ class CustomerIntegrationEngineer(A2AAgent[CustomerIntegrationEngineerConfig, No
|
|||||||
ConsumerSetupField.config("ARGOCD_APP_REF", label="Argo CD app reference", description="Optional caller-owned Argo CD app reference.", required=False),
|
ConsumerSetupField.config("ARGOCD_APP_REF", label="Argo CD app reference", description="Optional caller-owned Argo CD app reference.", required=False),
|
||||||
)
|
)
|
||||||
|
|
||||||
@a2a.tool(description="Capture requirements, produce architecture and field mapping artifacts", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic", grant_outputs_prefix="outputs", grant_write_prefixes=("outputs/integrations",))
|
@a2a.tool(description="Capture requirements, produce architecture and field mapping artifacts", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic")
|
||||||
async def design_integration(self, ctx: RunContext[NoAuth], request: DesignIntegrationRequest) -> Any:
|
async def design_integration(self, ctx: RunContext[NoAuth], request: DesignIntegrationRequest) -> Any:
|
||||||
req = request.requirements.model_copy(
|
req = request.requirements.model_copy(
|
||||||
update={"dry_run": _effective_dry_run(self, request.dry_run, request.requirements.dry_run)}
|
update={"dry_run": _effective_dry_run(self, request.dry_run, request.requirements.dry_run)}
|
||||||
@@ -476,7 +476,7 @@ class CustomerIntegrationEngineer(A2AAgent[CustomerIntegrationEngineerConfig, No
|
|||||||
required_setup=required_setup,
|
required_setup=required_setup,
|
||||||
)
|
)
|
||||||
|
|
||||||
@a2a.tool(description="Generate a minimal workspace-contained connector scaffold with no deployment or repository mutation", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic", grant_outputs_prefix="outputs", grant_write_prefixes=("outputs/integrations",))
|
@a2a.tool(description="Generate a minimal workspace-contained connector scaffold with no deployment or repository mutation", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic")
|
||||||
async def generate_connector(self, ctx: RunContext[NoAuth], request: GenerateConnectorRequest) -> Any:
|
async def generate_connector(self, ctx: RunContext[NoAuth], request: GenerateConnectorRequest) -> Any:
|
||||||
req = request.requirements.model_copy(
|
req = request.requirements.model_copy(
|
||||||
update={"dry_run": _effective_dry_run(self, request.dry_run, request.requirements.dry_run)}
|
update={"dry_run": _effective_dry_run(self, request.dry_run, request.requirements.dry_run)}
|
||||||
@@ -530,7 +530,7 @@ class CustomerIntegrationEngineer(A2AAgent[CustomerIntegrationEngineerConfig, No
|
|||||||
blocked_actions=blocked_actions,
|
blocked_actions=blocked_actions,
|
||||||
)
|
)
|
||||||
|
|
||||||
@a2a.tool(description="Validate OpenAPI, JSON Schema, and webhook contracts with deterministic fixtures", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic", grant_outputs_prefix="outputs", grant_write_prefixes=("outputs/integrations",))
|
@a2a.tool(description="Validate OpenAPI, JSON Schema, and webhook contracts with deterministic fixtures", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic")
|
||||||
async def validate_contract(self, ctx: RunContext[NoAuth], request: ValidateContractRequest) -> ValidateContractResult:
|
async def validate_contract(self, ctx: RunContext[NoAuth], request: ValidateContractRequest) -> ValidateContractResult:
|
||||||
dry_run = _effective_dry_run(self, request.dry_run)
|
dry_run = _effective_dry_run(self, request.dry_run)
|
||||||
audit = [_audit("contract_validation_started", request.integration_id, {"contracts": len(request.contracts), "dry_run": dry_run})]
|
audit = [_audit("contract_validation_started", request.integration_id, {"contracts": len(request.contracts), "dry_run": dry_run})]
|
||||||
@@ -562,7 +562,7 @@ class CustomerIntegrationEngineer(A2AAgent[CustomerIntegrationEngineerConfig, No
|
|||||||
drift_detected=drift,
|
drift_detected=drift,
|
||||||
)
|
)
|
||||||
|
|
||||||
@a2a.tool(description="Run dry-run or allowlisted acceptance checks using endpoint metadata and secret references", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=180, idempotent=True, max_retries=0, cost_class="deterministic", grant_outputs_prefix="outputs", grant_write_prefixes=("outputs/integrations",))
|
@a2a.tool(description="Run dry-run or allowlisted acceptance checks using endpoint metadata and secret references", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=180, idempotent=True, max_retries=0, cost_class="deterministic")
|
||||||
async def run_acceptance(self, ctx: RunContext[NoAuth], request: RunAcceptanceRequest) -> RunAcceptanceResult:
|
async def run_acceptance(self, ctx: RunContext[NoAuth], request: RunAcceptanceRequest) -> RunAcceptanceResult:
|
||||||
dry_run = _effective_dry_run(self, request.dry_run)
|
dry_run = _effective_dry_run(self, request.dry_run)
|
||||||
live_network_block = _live_network_unavailable_reason(self)
|
live_network_block = _live_network_unavailable_reason(self)
|
||||||
@@ -628,7 +628,7 @@ class CustomerIntegrationEngineer(A2AAgent[CustomerIntegrationEngineerConfig, No
|
|||||||
network_calls_made=network_calls,
|
network_calls_made=network_calls,
|
||||||
)
|
)
|
||||||
|
|
||||||
@a2a.tool(description="Prepare rollout, rollback, monitoring, and operator handoff documentation with approval-gated delivery planning", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic", grant_outputs_prefix="outputs", grant_write_prefixes=("outputs/integrations",))
|
@a2a.tool(description="Prepare rollout, rollback, monitoring, and operator handoff documentation with approval-gated delivery planning", input_schema=_PUBLIC_REQUEST_SCHEMA, timeout_seconds=120, idempotent=True, max_retries=0, cost_class="deterministic")
|
||||||
async def prepare_handoff(self, ctx: RunContext[NoAuth], request: PrepareHandoffRequest) -> PrepareHandoffResult:
|
async def prepare_handoff(self, ctx: RunContext[NoAuth], request: PrepareHandoffRequest) -> PrepareHandoffResult:
|
||||||
dry_run = _effective_dry_run(self, request.dry_run)
|
dry_run = _effective_dry_run(self, request.dry_run)
|
||||||
audit = [_audit("handoff_started", request.integration_id, {"dry_run": dry_run, "delivery_actions": len(request.delivery_actions)})]
|
audit = [_audit("handoff_started", request.integration_id, {"dry_run": dry_run, "delivery_actions": len(request.delivery_actions)})]
|
||||||
|
|||||||
Reference in New Issue
Block a user