← ClaudeAtlas

aevatar-service-publisherlisted

Publish an Aevatar member, team, or workflow as an invocable service and (host permitting) register it with NyxID, then verify, invoke, or wire external HTTP triggers such as Lark Base automation — all over the REST API. Use when a user wants to "publish/bind a service", "expose my workflow/team as a service", "register it with NyxID", "make it callable", "get the service slug/URL", "invoke my service", "let Lark Base call my workflow", "trigger this workflow from an external webhook", or "version/deploy/roll out a service". It covers the simple scope binding, reading back a member's published service, the full account-level service lifecycle (revision → publish → deploy → rollout), how to confirm the NyxID registration (slug + status), how to invoke an endpoint, and how to distinguish direct NyxID proxy triggering from host-gated externalExposure. Build the team/member first with the team-builder skill.
ChronoAIProject/NyxID · ★ 36 · AI & Automation · score 78
Install: claude install-skill ChronoAIProject/NyxID
# Publish an Aevatar artifact as a (NyxID) service You turn a member / team / workflow into an **invocable service** and verify whether it is **registered with NyxID** as a brokered connector. Build the artifact first (`aevatar-team-builder`). Then pick the path that matches what you have. ## Bootstrap ```bash # Drive aevatar THROUGH the NyxID broker: it injects your scope_id claim AND auto-refreshes your # token. A raw curl to the aevatar backend with ~/.nyxid/access_token resolves NO scope # (scopeResolved:false) and the stored token expires — it is not a usable path. # Prerequisite once: the `aevatar` service must be connected — `nyxid service add aevatar`. # NOTE: the aevatar backend requires `Content-Type: application/json` on writes (POST/PUT) — # omit it and every write returns HTTP 415 Unsupported Media Type. The helper sets it on # every call (harmless on bodyless GETs), so the POST/PUT examples below work as written. aev() { nyxid proxy request aevatar "$@" -H 'Content-Type: application/json'; } # aev "<path>" [-m POST|PUT|DELETE] [-d '<json>'] [--stream] scopeId=$(aev "api/studio/context" | jq -r .scopeId) ``` > **`jq` is only for convenience** — any JSON reader works (replace `| jq -r .scopeId` with > `| python3 -c 'import sys,json;print(json.load(sys.stdin)["scopeId"])'`). All calls go through the > NyxID broker (`nyxid proxy request aevatar`), which injects your scope_id claim and auto-refreshes > the token, so you never touch the aevatar backend or a stor