{"name":"contract-clock-studio-v1","description":"ContractClock Studio extracts explicit renewal and notice deadlines from contracts, persists user-scoped timelines, and serves a packed one-page React product at /app.","version":"0.1.8","skills":[{"id":"analyze_contract","name":"analyze_contract","description":"Analyze pasted contract text, extract explicit renewal/notice deadlines, atomically persist the contract timeline and receipt.","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":30.0,"idempotent":false,"max_retries":0,"cost_class":"deterministic-db-write","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":{"contract_id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}$","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"text":{"maxLength":80000,"minLength":1,"type":"string"}},"required":["contract_id","title","text"],"additionalProperties":false},"output_schema":{"$defs":{"DeadlineOut":{"properties":{"kind":{"enum":["renewal","notice"],"title":"Kind","type":"string"},"date":{"title":"Date","type":"string"},"source_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Source Text"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"required":["kind","date"],"title":"DeadlineOut","type":"object"}},"properties":{"ok":{"title":"Ok","type":"boolean"},"contract_id":{"title":"Contract Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"deadlines":{"items":{"$ref":"#/$defs/DeadlineOut"},"title":"Deadlines","type":"array"},"receipt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Receipt Id"},"saved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Saved At"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Message"}},"required":["ok","contract_id"],"title":"ContractResult","type":"object"}},{"id":"get_contract_deadlines","name":"get_contract_deadlines","description":"Reload a previously saved user-scoped ContractClock deadline timeline.","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":20.0,"idempotent":true,"max_retries":0,"cost_class":"deterministic-db-read","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":{"contract_id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}$","type":"string"}},"required":["contract_id"],"additionalProperties":false},"output_schema":{"$defs":{"DeadlineOut":{"properties":{"kind":{"enum":["renewal","notice"],"title":"Kind","type":"string"},"date":{"title":"Date","type":"string"},"source_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Source Text"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"required":["kind","date"],"title":"DeadlineOut","type":"object"}},"properties":{"ok":{"title":"Ok","type":"boolean"},"contract_id":{"title":"Contract Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"deadlines":{"items":{"$ref":"#/$defs/DeadlineOut"},"title":"Deadlines","type":"array"},"receipt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Receipt Id"},"saved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Saved At"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Message"}},"required":["ok","contract_id"],"title":"ContractResult","type":"object"}},{"id":"analyze_contract_upload_base64","name":"analyze_contract_upload_base64","description":"Browser upload bridge: accept one bounded base64 text document, then analyze and persist its contract deadlines.","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":30.0,"idempotent":false,"max_retries":0,"cost_class":"deterministic-db-write","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":{"contract_id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}$","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"document":{"properties":{"filename":{"maxLength":180,"minLength":1,"title":"Filename","type":"string"},"media_type":{"maxLength":120,"minLength":1,"title":"Media Type","type":"string"},"data_base64":{"maxLength":1024000,"minLength":1,"title":"Data Base64","type":"string"}},"required":["filename","media_type","data_base64"],"title":"BrowserDocument","type":"object"}},"required":["contract_id","title","document"],"additionalProperties":false},"output_schema":{"$defs":{"DeadlineOut":{"properties":{"kind":{"enum":["renewal","notice"],"title":"Kind","type":"string"},"date":{"title":"Date","type":"string"},"source_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Source Text"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"required":["kind","date"],"title":"DeadlineOut","type":"object"}},"properties":{"ok":{"title":"Ok","type":"boolean"},"contract_id":{"title":"Contract Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"deadlines":{"items":{"$ref":"#/$defs/DeadlineOut"},"title":"Deadlines","type":"array"},"receipt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Receipt Id"},"saved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Saved At"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Message"}},"required":["ok","contract_id"],"title":"ContractResult","type":"object"}},{"id":"analyze_contract_file","name":"analyze_contract_file","description":"External client upload bridge: accept a typed A2A FileUpload text document, then analyze and persist its contract deadlines.","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":30.0,"idempotent":false,"max_retries":0,"cost_class":"deterministic-db-write","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":{"contract_id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.:-]{0,119}$","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"document":{"additionalProperties":false,"description":"Workspace-backed file staged for a skill invocation.\n\nAgent API multipart uploads are persisted into the caller workspace before\nthe skill runs. The handler receives this metadata object and reads bytes\nthrough ``ctx.workspace`` using ``path``.","properties":{"path":{"title":"Path","type":"string"},"filename":{"title":"Filename","type":"string"},"media_type":{"title":"Media Type","type":"string"},"size_bytes":{"default":0,"minimum":0,"title":"Size Bytes","type":"integer"}},"required":["path","filename","media_type"],"title":"UploadedFile","type":"object","x-a2a-file-upload":{"required_upload":true,"accept":["text/plain","application/octet-stream"],"max_bytes":512000,"description":"Plain-text contract document up to 512 KB."}}},"required":["contract_id","title","document"],"additionalProperties":false},"output_schema":{"$defs":{"DeadlineOut":{"properties":{"kind":{"enum":["renewal","notice"],"title":"Kind","type":"string"},"date":{"title":"Date","type":"string"},"source_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Source Text"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Rationale"}},"required":["kind","date"],"title":"DeadlineOut","type":"object"}},"properties":{"ok":{"title":"Ok","type":"boolean"},"contract_id":{"title":"Contract Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"deadlines":{"items":{"$ref":"#/$defs/DeadlineOut"},"title":"Deadlines","type":"array"},"receipt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Receipt Id"},"saved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Saved At"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Message"}},"required":["ok","contract_id"],"title":"ContractResult","type":"object"}}],"capabilities":{"a2a_pack":{"package":"a2a-pack","version":"0.1.115"},"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."}},"ui":{"url":"https://contract-clock-studio-v1.a2acloud.io/app","type":"static-spa","framework":null,"entry":"/app/index.html","config":"https://contract-clock-studio-v1.a2acloud.io/app/config.json","client":"https://contract-clock-studio-v1.a2acloud.io/app/a2a-client.js","requiresAuth":false,"auth":{"mode":"inherit","flow":"public","sessionTransport":"cookie","sessionCookieName":"__Host-a2a_agent_session","sessionUrl":"https://contract-clock-studio-v1.a2acloud.io/auth/session","loginUrl":"https://app.a2acloud.io","authorizeUrl":"https://app.a2acloud.io/v1/auth/agent-session/authorize?agent=contract-clock-studio-v1","callbackUrl":"https://contract-clock-studio-v1.a2acloud.io/auth/callback","requiresSession":false}}},"input_modes":["application/json"],"output_modes":["application/json"],"required_secrets":[],"required_env":[],"consumer_setup":{"fields":[]},"runtime":{"lifecycle":"ephemeral","availability":"on_demand","state":"durable","sandbox":"microsandbox","resources":{"cpu":"500m","memory":"512Mi","gpu":0,"max_runtime_seconds":120},"concurrency":1,"egress":{"allow_hosts":[],"allow_internal_services":[],"deny_internet_by_default":true},"tools_used":["managed-postgres","mcp","packed-frontend"],"llm_provisioning":"platform","account_access":{"required":false,"platform_skill_calls":0,"after_trial":"byok"},"pricing":{"price_per_call_usd":0.0,"caller_pays_llm":false,"notes":"Deterministic deadline extraction; no LLM usage."},"wants_cp_jwt":false,"platform_resources":{"memory":null,"databases":[{"name":"contract-clock-studio-v1-data","engine":"postgres","provider":"neon","scope":"user","branch":"main","access_mode":"read_write","env":{"url":"DATABASE_URL"},"migrations":{"path":"db/migrations"},"scale_to_zero":true}],"mailbox":null},"endpoints":[],"apt_packages":[]},"state_schema":{"properties":{"persistence":{"const":"managed_postgres","default":"managed_postgres","title":"Persistence","type":"string"}},"title":"ContractClockState","type":"object"},"workspace_access":{"enabled":true,"max_files":1,"allowed_modes":["read_only"],"require_reason":false,"deny_patterns":[],"require_human_approval":false,"max_total_size_bytes":512000},"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."}},"ui":{"url":"https://contract-clock-studio-v1.a2acloud.io/app","type":"static-spa","framework":null,"entry":"/app/index.html","config":"https://contract-clock-studio-v1.a2acloud.io/app/config.json","client":"https://contract-clock-studio-v1.a2acloud.io/app/a2a-client.js","requiresAuth":false,"auth":{"mode":"inherit","flow":"public","sessionTransport":"cookie","sessionCookieName":"__Host-a2a_agent_session","sessionUrl":"https://contract-clock-studio-v1.a2acloud.io/auth/session","loginUrl":"https://app.a2acloud.io","authorizeUrl":"https://app.a2acloud.io/v1/auth/agent-session/authorize?agent=contract-clock-studio-v1","callbackUrl":"https://contract-clock-studio-v1.a2acloud.io/auth/callback","requiresSession":false}}}