{"protocol":"AstraNL Capability Catalog","version":"2.0","philosophy":"AstraNL is part of the economy. Tasks are routed to the first executor in [ai, robot, people] that can deliver them with adequate quality. AI executes digital work directly with no commission. Robot executes physical/IoT work via partners with 1% commission. People execute coordinated work with 1% commission. The catalog spans all three so AstraNL coordinates the full economy of work, not just one tier.","identity_hash":"783615750908","executor_classes":["ai","robot","people"],"executor_selection_rule":"Prefer ai > robot > people for tie-breaking. Choose the first executor that can deliver with adequate quality and within Phase A limits.","capabilities_total":29,"capabilities_by_executor":{"ai":{"count":15,"pricing":{"inference":"real Anthropic/OpenAI cost passed through","coordination_fee_pct":15,"coordination_fee_note":"15% of inference cost on each execute. Covers AstraNL infrastructure, monitoring, orchestration, ledger, support.","topup_processing_fee":"1.5% + €0.30 fixed","topup_processing_note":"Mirrors Stripe European card fee + reconciliation overhead"},"astranl_subsidy":"none — honest pass-through pricing","billing_flow":{"auth":"X-Agent-Key required (no anonymous access)","register":"POST /api/agents/register","topup":"POST /api/agents/wallet/topup (Stripe Checkout)","balance":"GET /api/agents/wallet/balance","execute":"POST /capabilities/execute (debits wallet)","min_topup_eur":5.0,"example_translate_call":{"inference_eur":0.001,"coordination_fee_eur":0.00015,"total_debit_eur":0.00115},"example_5eur_topup":{"wallet_credit_eur":5.0,"processing_fee_eur":0.375,"total_charged_eur":5.375,"approx_calls_at_translate_rate":4348}},"typical_seconds":"3-12","items":[{"id":"translate","name":"Translation","executor":"ai","description":"Translate text between any of 10 supported languages","languages":["en","nl","uk","de","fr","es","it","pl","tr","ar"],"input_max_chars":10000,"typical_seconds":3,"cost_estimate_eur":0.001,"commission_pct":0.0,"quality_disclaimer":"AI translation; for legal/medical use sworn translator","keywords":["translate","translation","translat","переклад","перевести","переведи","vertaal","übersetz"]},{"id":"summarize","name":"Summarization","executor":"ai","description":"Compress long text to key points, abstract, TL;DR","input_max_chars":30000,"typical_seconds":5,"cost_estimate_eur":0.003,"commission_pct":0.0,"keywords":["summari","tldr","tl;dr","стисло","скороч","samenvat","zusammenfas","abstract"]},{"id":"write","name":"Writing assistance","executor":"ai","description":"Draft email, message, post, article, product description","input_max_chars":5000,"typical_seconds":8,"cost_estimate_eur":0.005,"commission_pct":0.0,"keywords":["write me","draft","напиши","склади","compose","створи","schrijf","verfasse"]},{"id":"code","name":"Code generation / review","executor":"ai","description":"Generate or review code in any popular language","input_max_chars":20000,"typical_seconds":10,"cost_estimate_eur":0.01,"commission_pct":0.0,"quality_disclaimer":"AI-generated code requires human review before production","keywords":["code","код","function","script","скрипт","python","javascript","sql","bash","typescript","rust","fix this code","refactor"]},{"id":"analyze_data","name":"Data analysis","executor":"ai","description":"Analyze structured data (JSON, CSV) and extract insights","input_max_chars":20000,"typical_seconds":8,"cost_estimate_eur":0.008,"commission_pct":0.0,"keywords":["analyze","analyse","аналіз","csv","json","data","данны","insights","statistics"]},{"id":"explain","name":"Explanation / education","executor":"ai","description":"Explain concept, term, or process in plain language","input_max_chars":2000,"typical_seconds":4,"cost_estimate_eur":0.002,"commission_pct":0.0,"keywords":["explain","what is","поясни","що таке","leg uit","erklär"]},{"id":"qa","name":"Document Q&A","executor":"ai","description":"Answer questions about provided text or document","input_max_chars":30000,"typical_seconds":6,"cost_estimate_eur":0.005,"commission_pct":0.0,"keywords":["question about","q&a","питання","beantwoord","beantworten"]},{"id":"classify","name":"Classification / tagging","executor":"ai","description":"Classify text into categories, extract tags, sentiment","input_max_chars":5000,"typical_seconds":3,"cost_estimate_eur":0.002,"commission_pct":0.0,"keywords":["classify","categorize","tag","label","sentiment","категори","тег"]},{"id":"extract_structured","name":"Structured data extraction","executor":"ai","description":"Extract structured fields (JSON) from unstructured text","input_max_chars":10000,"typical_seconds":5,"cost_estimate_eur":0.004,"commission_pct":0.0,"keywords":["extract","parse","structured","json from","витягни","fields"]},{"id":"transform_format","name":"Format conversion","executor":"ai","description":"Convert between markdown, json, yaml, csv, html, xml","input_max_chars":20000,"typical_seconds":4,"cost_estimate_eur":0.002,"commission_pct":0.0,"keywords":["convert to","reformat","markdown to","json to","yaml to","csv to","конверт"]},{"id":"plan_breakdown","name":"Task breakdown / planning","executor":"ai","description":"Break a goal into a structured action plan with steps","input_max_chars":3000,"typical_seconds":8,"cost_estimate_eur":0.005,"commission_pct":0.0,"keywords":["plan for","break down","roadmap","steps to","план","roadmap"]},{"id":"compare_options","name":"Options comparison","executor":"ai","description":"Compare alternatives and recommend with reasoning","input_max_chars":5000,"typical_seconds":7,"cost_estimate_eur":0.005,"commission_pct":0.0,"keywords":["compare","vs","versus","pros and cons","порівняй","which is better"]},{"id":"name_brainstorm","name":"Naming / brainstorm","executor":"ai","description":"Generate names, titles, slogans, ideas with rationale","input_max_chars":2000,"typical_seconds":6,"cost_estimate_eur":0.003,"commission_pct":0.0,"keywords":["name for","title for","slogan","brainstorm","назва","слоган","tagline"]},{"id":"proofread","name":"Proofreading / editing","executor":"ai","description":"Fix grammar, spelling, style, clarity","input_max_chars":10000,"typical_seconds":5,"cost_estimate_eur":0.003,"commission_pct":0.0,"keywords":["proofread","edit this","fix grammar","fix spelling","виправ","corrigeer"]},{"id":"document_qa_legal_check","name":"Document review (informational, not legal advice)","executor":"ai","description":"Read contract/policy, identify clauses and red flags (informational only — not a substitute for a lawyer)","input_max_chars":30000,"typical_seconds":12,"cost_estimate_eur":0.012,"commission_pct":0.0,"quality_disclaimer":"Informational review only. Not legal advice. Decisions with legal consequence: consult lawyer.","keywords":["review contract","check this clause","договір","policy review","red flags"]}]},"robot":{"count":3,"commission_pct":1.0,"pricing":"partner fleet rate + 1% AstraNL fee","typical_seconds":"60+","phase_a_status":"awaiting_partner_integration","items":[{"id":"iot_status","name":"IoT device status / control","executor":"robot","description":"Read or set state of IoT device via partner integration","phase_a_status":"awaiting_partner","typical_seconds":5,"cost_estimate_eur":0.0,"commission_pct":1.0,"note":"Catalog entry exists so partners and agents see the integration surface. First IoT partner connection activates this capability.","keywords":["iot","smart device","smart light","smart home","sensor reading","thermostat","turn on","turn off","lock door","unlock door","smart plug","set temperature"]},{"id":"robot_dispatch","name":"Robot dispatch (cleaning bot, delivery bot, etc.)","executor":"robot","description":"Dispatch a robot to perform physical task in NL","phase_a_status":"awaiting_partner","typical_seconds":60,"cost_estimate_eur":0.0,"commission_pct":1.0,"note":"First robot fleet partner connection activates this. Architecture ready: dispatch API, evidence callback, Stripe Connect payout to fleet operator.","keywords":["robot vacuum","delivery robot","autonomous","dispatch bot"]},{"id":"sensor_data_stream","name":"Sensor data ingestion","executor":"robot","description":"Subscribe to or publish sensor data stream","phase_a_status":"awaiting_partner","typical_seconds":1,"cost_estimate_eur":0.0,"commission_pct":0.5,"note":"Catalog entry; first sensor partner activates.","keywords":["sensor","telemetry","data stream","mqtt"]}]},"people":{"count":11,"commission_pct":1.0,"pricing":"provider quote + 1% AstraNL fee, capped at 5%","typical_hours_to_match":"4-24","phase_a_max_eur":500,"items":[{"id":"cleaning","name":"Cleaning service","executor":"people","description":"Apartment, office, post-construction cleaning","typical_hours_to_provider_match":4,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["cleaning","schoonmaak","прибирання","putzen"]},{"id":"plumbing","name":"Plumbing","executor":"people","description":"Pipe, drain, leak, faucet, boiler issues","typical_hours_to_provider_match":6,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["plumbing","loodgieter","leak","сантехнік","klempner","drain"]},{"id":"painting","name":"Painting","executor":"people","description":"Interior or exterior painting","typical_hours_to_provider_match":12,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["paint","painting","painter","schilder","фарбува","streichen","verf"]},{"id":"gardening","name":"Gardening / landscaping","executor":"people","description":"Lawn, hedge, trees, garden maintenance","typical_hours_to_provider_match":8,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["gardening","tuin","сад","gärtner","hovenier"]},{"id":"handyman","name":"Handyman / odd jobs","executor":"people","description":"Furniture assembly, hanging, small repairs","typical_hours_to_provider_match":12,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["handyman","klusjesman","assemble","hang","ремонт","reparatur"]},{"id":"moving","name":"Moving / transport","executor":"people","description":"Apartment / office moving, single-item delivery","typical_hours_to_provider_match":6,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["moving","verhuis","переїзд","umzug","delivery"]},{"id":"electrical","name":"Electrical work","executor":"people","description":"Wiring, outlets, fixtures, panel work (licensed)","typical_hours_to_provider_match":8,"commission_pct":1.0,"phase_a_max_eur":500,"requires_license":true,"keywords":["electrical","electrician","elektricien","електрик","wiring","outlet"]},{"id":"photography_event","name":"Event photography / video","executor":"people","description":"On-site photographer/videographer for event","typical_hours_to_provider_match":24,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["photograph","photographer","videographer","video shoot","fotograf","фотограф","event photo","wedding photo","shoot the event"]},{"id":"tutoring_inperson","name":"In-person tutoring / lessons","executor":"people","description":"Music, language, sports, academic tutoring on-site","typical_hours_to_provider_match":24,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["tutor","tutoring","piano lesson","guitar lesson","language lesson","репетитор","bijles","in-person lesson","private lesson"]},{"id":"inspection_visit","name":"On-site inspection / verification","executor":"people","description":"Human visits location and reports state","typical_hours_to_provider_match":12,"commission_pct":1.0,"phase_a_max_eur":500,"keywords":["inspect","check on site","visit and verify","перевірка на місці"]},{"id":"kvk_compliance_filing","name":"KvK / tax filing assistance (NL)","executor":"people","description":"Licensed accountant assists with NL KvK / BTW / iXBRL","typical_hours_to_provider_match":24,"commission_pct":1.0,"phase_a_max_eur":500,"requires_license":true,"keywords":["kvk filing","btw aangifte","belasting","ixbrl","accountant"]}]}},"not_in_scope":[{"category":"medical_treatment","reason":"Medical treatment requires licensed practitioner; not within AstraNL scope."},{"category":"legal_representation","reason":"Legal representation in court / before regulator requires licensed lawyer; not within AstraNL scope."},{"category":"financial_advice_individual","reason":"Personalised financial / investment advice is regulated and requires licensed advisor; not within AstraNL scope."},{"category":"safety_critical_decisions","reason":"Decisions where wrong answer creates physical risk to a person stay outside automated execution."},{"category":"illegal_or_harmful","reason":"Anything illegal in NL/EU or that would harm a person or third party."}],"languages_supported":["en","nl","uk","de","fr","es","it","pl","tr","ar"],"regions_supported":["NL","BE","DE"],"principles":{"transparency":"Principle 1 — every cost is shown","honest_self_knowledge":"Principle 9 — AstraNL only takes work it can deliver well","no_deception":"Principle 10 — robot tier shows awaiting_partner status honestly","energy_liberation":"Mission — return human time as seconds where possible","agent_native":"Principle 14 — typed JSON, no prose required"}}