{"name":"test-helper","description":"Platform feature exerciser for e2e tests.","version":"0.1.0","skills":[{"id":"echo","name":"echo","description":"Echo the text back. Trivial, sub-second response — used by tests that need to exercise the handoff/approval mechanics without paying for chart rendering.","tags":["e2e","echo"],"scopes":[],"stream":false,"policy":{"timeout_seconds":null,"idempotent":false,"max_retries":0,"cost_class":null,"allow_scope_expansion":false,"grant_mode":null,"grant_allow_patterns":[],"grant_deny_patterns":[],"grant_outputs_prefix":null,"grant_write_prefixes":[],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","properties":{"text":{"type":"string"}},"required":[],"additionalProperties":false},"output_schema":{"additionalProperties":true,"type":"object"}},{"id":"try_scope_expansion","name":"try_scope_expansion","description":"Call ctx.request_scope() with the caller-supplied args, then report the platform's response. Lets tests verify the orchestrator's scope-negotiation flow end-to-end without needing a real workload that happens to need extra access.","tags":["e2e","scope-request"],"scopes":[],"stream":false,"policy":{"timeout_seconds":null,"idempotent":false,"max_retries":0,"cost_class":null,"allow_scope_expansion":true,"grant_mode":null,"grant_allow_patterns":[],"grant_deny_patterns":[],"grant_outputs_prefix":null,"grant_write_prefixes":[],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","properties":{"reason":{"type":"string"},"read_patterns":{"items":{"type":"string"},"type":"array"},"ttl_seconds":{"type":"integer"},"mode":{"type":"string"},"write_prefix":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":[],"additionalProperties":false},"output_schema":{"additionalProperties":true,"type":"object"}}],"capabilities":{"a2a_pack":{"package":"a2a-pack","version":"0.1.108"},"mcp":{"standard":{"path":"/mcp","intended_for":"code_sdk_clients"},"connector":{"path":"/connector-mcp","intended_for":["chatgpt","claude","hosted_connectors"],"supports_async_jobs":true,"supports_structured_interrupts":true,"poll_tool":"job_result","resume_tool":"submit_interaction","instructions":"Use this URL for hosted connector UIs. Use /mcp for normal code or SDK MCP clients."}}},"input_modes":["application/json"],"output_modes":["application/json"],"required_secrets":[],"required_env":[],"consumer_setup":{"fields":[]},"runtime":{"lifecycle":"ephemeral","availability":"on_demand","state":"none","sandbox":"microsandbox","resources":{"cpu":"100m","memory":"256Mi","gpu":0,"max_runtime_seconds":600},"concurrency":1,"egress":{"allow_hosts":[],"allow_internal_services":[],"deny_internet_by_default":true},"tools_used":["e2e"],"llm_provisioning":"platform","pricing":{"price_per_call_usd":0.0,"caller_pays_llm":false,"notes":""},"wants_cp_jwt":false,"platform_resources":{"memory":null,"databases":[],"mailbox":null},"endpoints":[],"apt_packages":[]},"state_schema":null,"workspace_access":{"enabled":false,"max_files":0,"allowed_modes":[],"require_reason":true,"deny_patterns":[],"require_human_approval":false,"max_total_size_bytes":104857600},"mcp_endpoint":"/mcp","connector_mcp_endpoint":"/connector-mcp","mcp_endpoints":{"standard":{"path":"/mcp","intended_for":"code_sdk_clients"},"connector":{"path":"/connector-mcp","intended_for":["chatgpt","claude","hosted_connectors"],"supports_async_jobs":true,"supports_structured_interrupts":true,"poll_tool":"job_result","resume_tool":"submit_interaction","instructions":"Use this URL for hosted connector UIs. Use /mcp for normal code or SDK MCP clients."}}}