andromeda-messages
Andromeda Messages
Full CRUD API for the Andromeda galaxy app plus galaxy lock/unlock control.
Base URL
Use the deployed app base URL for the current environment.
- Current production:
https://andromeda.laniameda.space - Legacy redirect source:
https://www.mishabuloichyk.com - Local standalone repo example:
http://localhost:3331
Auth
Authorization: Bearer <ADMIN_TOKEN>
Use the repo's configured ADMIN_TOKEN.
Galaxy Name Aliases
The galaxy field accepts any of these:
| Send this | Resolves to |
|---|---|
"Your Dreams" / "dreams" / "мечты" |
sagittarius |
"Your Soulmate" / "soulmate" / "partner" / "laniakea" / "партнёр" |
wormhole |
"Your Family" / "family" / "семья" |
carina |
"Your Life" / "life" / "жизнь" |
andromeda |
"Your Antidreams" / "antidreams" / "антимечты" |
kepler |
Raw IDs (sagittarius, wormhole, etc.) |
also work |
Always confirm with the canonical display name, not the internal ID.
Production Safety Rules
These rules are mandatory. The Andromeda backend is live production data.
- Never write with raw galaxy IDs (
kepler,andromeda, etc.) unless Michael explicitly asks for raw-ID debugging. Use canonical display names in API requests. - Always resolve and state the target before mutating:
Your Life → andromeda,Your Antidreams → kepler, etc. - Before any create, update, delete, lock, unlock, import, or cleanup, run a read check for the target galaxy and note its current node count.
- After any mutation, re-read the target galaxy and confirm the new count or changed node.
- For high-risk operations, also check
Your Antidreamsafter the mutation. It should stay empty unless the user explicitly requested an antidream entry. - Never use
spaceGraph:seedGalaxy, bulk imports,clearGalaxy, direct Convex mutations, or scripts against production unless Michael explicitly approves the exact galaxy and action in the current conversation. - Any bulk operation must first create a timestamped backup of affected nodes and edges.
Antidreams Hard Guard
Your Antidreams is kepler. Treat it as protected.
- Do not infer
Your Antidreamsfrom vague phrasing. - Do not use
keplerfor life, dreams, family, partner/soulmate, or positive aspiration content. - Only write to
Your Antidreamswhen the user explicitly saysYour Antidreams,antidreams, orантимечты. - If the content reads like a dream, relationship goal, family goal, life goal, or positive aspiration, stop and ask before writing to
Your Antidreams. - If nodes appear in
Your Antidreamsunexpectedly, immediately stop, back upkeplernodes and edges, report counts, and ask before moving or deleting unless Michael directly asks to clear them.
Node Routes (/api/andromeda)
POST — Create a node
curl -s -X POST "$BASE_URL/api/andromeda" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"galaxy":"Your Life","title":"Short title","content":"Full message text","nodeType":"STATION"}'
GET — List nodes in a galaxy
curl -s "$BASE_URL/api/andromeda?galaxy=Your+Life" \
-H "Authorization: Bearer $ADMIN_TOKEN"
PATCH — Update a node
curl -s -X PATCH "$BASE_URL/api/andromeda" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"nodeId":"<id>","title":"New title","content":"New content"}'
DELETE — Delete a node
curl -s -X DELETE "$BASE_URL/api/andromeda?nodeId=<id>" \
-H "Authorization: Bearer $ADMIN_TOKEN"
Galaxy Lock Routes (/api/andromeda/galaxy)
GET — List all galaxy lock states
curl -s "$BASE_URL/api/andromeda/galaxy" \
-H "Authorization: Bearer $ADMIN_TOKEN"
POST — Lock or unlock a galaxy
curl -s -X POST "$BASE_URL/api/andromeda/galaxy" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"galaxy":"Your Life","locked":false}'
Set locked: false to unlock, locked: true to lock.
nodeType Options
STATION— main message nodeRELAY— connecting or transition nodeSENSOR— observation or detail node
Workflow Examples
Add to Your Dreams: title "Morning Light", content "..."
Use POST /api/andromeda, then confirm the canonical galaxy name.
Unlock Your Life
Use POST /api/andromeda/galaxy with {"galaxy":"Your Life","locked":false}.
List all nodes in Your Family
Use GET /api/andromeda?galaxy=Your+Family.
Delete the node with id X
Use DELETE /api/andromeda?nodeId=X.
Update title of node X to "..."
Use PATCH /api/andromeda with { nodeId, title }.
Notes
- Changes are live immediately through Convex
- Galaxy lock state lives in the
galaxySettingstable - Admin UI route:
/admin/andromeda
More from michailbul/laniameda-skills
notion-sync
>
14instagram-extract
Extract text, links, and key takeaways from Instagram/Threads posts (especially carousels) and LinkedIn posts using an already-logged-in Brave/Chrome tab via OpenClaw Browser Relay. Use when the user pastes an Instagram/Threads/LinkedIn URL (or forwards screenshots) and asks something generic like “save it”, “capture this”, “summarize and store”, or “put this in the vault” — you should decide what’s worth saving, classify it into the right pillar, save it to the local KB and/or ingest prompts via the laniameda-kb skill, and also emit a compact JSON payload into a media-agent inbox file for downstream reuse.
12carousel-designer
>
11deepgram-transcribe
>
10supadata
>
10carousel-orchestrator
>
9