{"name":"kulono","description":"Dual-layer artifact hub for ticalcode tenants: GitHub-class git, HF-class models, and data pipeline. Identity SSOT is ticalcode (invite-only). kulono never stores passwords and never opens public registration.","url":"https://kulono.com","version":"0.4.0-home-contract","protocolVersion":"0.2","provider":{"organization":"ticalcode × kulono","url":"https://ticalcode.com"},"binding_id":"kulono-20260723","dual_layer":{"layer_01_control_plane":{"product":"ticalcode","url":"https://ticalcode.com","role":"identity · agents · invites · MCP · task graph"},"layer_02_artifact_hub":{"product":"kulono","url":"https://kulono.com","role":"git · models · data · credentials mint"}},"capabilities":{"streaming":false,"pushNotifications":false,"publicRegistration":false,"inviteOnly":true,"gitHosting":true,"modelHub":true,"dataPipeline":true,"agentLoopGuardDemos":true,"sessionHandoffFromTicalcode":true,"getHandoff":false,"homeContract":true,"provenanceReceipts":true},"authentication":{"schemes":[{"scheme":"ticalcode-handoff","method":"POST","url":"https://kulono.com/auth/ticalcode","description":"One-time handoff code in JSON/form body (never query string). Minted by authenticated ticalcode user. Sets httponly Secure cookie."},{"scheme":"ticalcode-password-bind","method":"POST","url":"https://kulono.com/auth/login","description":"Bind existing ticalcode username/password → kulono session. No independent kulono password store."},{"scheme":"sessionCookie","name":"kulono_session","in":"cookie","description":"HttpOnly Secure SameSite=Lax JWT after handoff/login"},{"scheme":"modelsApiKey","in":"header","name":"Authorization","description":"Bearer kl_… minted at POST /api/me/models-key (session required). Tenant-bound to tc_id."}],"forbidden":["GET /auth/ticalcode?code=… (retired — log/Referer leak)","query-string API keys","independent Gitea/kulono signup","admin elevation via handoff"]},"defaultInputModes":["text","application/json"],"defaultOutputModes":["text","application/json"],"endpoints":{"agentCard":"https://kulono.com/.well-known/agent.json","manifesto":"https://kulono.com/api/manifesto","entry":"https://kulono.com/api/agent/entry","llms":"https://kulono.com/llms.txt","production":"https://kulono.com/api/hub/production","status":"https://kulono.com/api/hub/status","homeContract":"https://kulono.com/api/home-contract","provenance":"https://kulono.com/api/provenance","compareOrigin":"https://kulono.com/compare/origin","me":"https://kulono.com/api/me","credentials":"https://kulono.com/api/me/credentials","mintGitToken":"https://kulono.com/api/me/gitea-token","mintModelsKey":"https://kulono.com/api/me/models-key","controlPlane":"https://ticalcode.com","controlPlaneAgentCard":"https://ticalcode.com/.well-known/agent.json","git":"https://git.kulono.com","models":"https://models.kulono.com","data":"https://data.kulono.com"},"skills":[{"id":"artifact-home","name":"Agent Artifact Home","description":"Principal-bound default write plane with optional Resident provenance receipts","tags":["home","provenance","tc_id","sovereignty"]},{"id":"git-host","name":"Git hosting","description":"HTTPS clone/push, LFS, Actions CI, package registry on git.kulono.com","tags":["git","ci","lfs","packages"]},{"id":"model-hub","name":"Model hub","description":"Upload/download versioned models with sha256, public/private, tc_id isolation","tags":["models","artifacts"]},{"id":"data-pipeline","name":"Data pipeline","description":"Collect → distill → train event pipeline bound to tenant keys","tags":["data","training"]},{"id":"agent-loop-guard","name":"Agent loop guard demos","description":"Interactive doom-loop / consensus / crash / truth demos on the hub home","tags":["safety","demo"]}],"security":{"invite_only":true,"open_registration":false,"password_store_on_kulono":false,"handoff_admin_elevation":false,"tenant_isolation":"tc_id","session_cookie":"httponly+secure+samesite=lax","rate_limits":true,"ssrf_guard_internal_identity":true,"csp":true}}