@proj-airi/server-shared
v0.8.5-beta.3
Published
Server shared types, utilities for AIRI server components and runtimes
Readme
@proj-airi/server-shared
The shared type definitions for all server-side packages of Project AIRI.
Usage
ni @proj-airi/server-shared -D # from @antfu/ni, can be installed via `npm i -g @antfu/ni`
pnpm i @proj-airi/server-shared -D
yarn i @proj-airi/server-shared -D
npm i @proj-airi/server-shared -Dimport type { WebSocketEvents } from '@proj-airi/server-shared'How to use the events in distributed use cases?
Scenarios
Minecraft agent
1. Urgent combat (witch attack)
- Minecraft sends
spark:notify(kind=alarm, urgency=immediate, payload hp/location/gear, destinations=["character"]). - Character
spark:emitworking ("Seen it"). - Character issues
spark:commandwith interrupt=force and options (retreat vs push). - Minecraft
spark:emitworking ("Pillared up; healing") then done/blocked as it executes. - Optional
context:updatefor summary/memory.
2. Prep plan (Ender Dragon)
- Discord/user intent triggers character
spark:commandto Minecraft (intent=plan, interrupt=soft, steps gather beds/pots/gear, fallback). - Optional
context:updatewith tips (lane='game'). - Minecraft streams
spark:emitprogress. - If ambushed, Minecraft raises new
spark:notify(alarm/immediate) to preempt. - Character revises with another
spark:command. - Completion via
spark:emitdone + summary note.
3. Routine nudge
- Minecraft signals low food via
spark:notify(kind=reminder, urgency=soon, destinations=["character"]). - Character defers to next tick and sends
spark:command(interrupt=soft, intent=plan: "gather food nearby"). - Minecraft
spark:emitqueued/working then done.
4. Multi-step command while researching (plan + live control)
[!NOTE] Using
intent=plankeeps the loop alive even with un-finalized ideas—similar to TODO scaffolding in coding agents—while richer guidance is still being researched.
- Character receives a user goal (e.g., fortify base) and issues an initial
spark:commandto Minecraft (interrupt=soft, intent=plan, steps to gather materials) so the agent keeps working. - Character simultaneously performs memory/search/design tasks outside the game loop (wiki lookup, prior notes).
- As insights arrive, character sends
context:update(lane='game', hints/ideas) to enrich the sub-agent without preemption. - If an urgent event occurs during prep, Minecraft raises
spark:notify(alarm) → character responds with a shortspark:emitworking and aspark:command(interrupt=force) to handle it (e.g., retreat, block up). - Once design is ready, character sends a refined
spark:command(intent=proposal(oraction),interrupt=soft) with structured options/steps/fallbacks. - Minecraft streams
spark:emitprogress; when complete, character summarizes viaspark:emitorcontext:updatefor memory.
