From 4673494e730708a972047f765705d7c2c7f5b749 Mon Sep 17 00:00:00 2001 From: RainbowBird Date: Fri, 27 Mar 2026 22:51:08 +0800 Subject: [PATCH] chore: cleanup --- apps/server/vitest.config.ts | 7 --- packages/plugin-sdk/package.json | 1 + packages/server-sdk/package.json | 1 - packages/server-sdk/src/events/chat.ts | 1 - packages/server-sdk/src/index.ts | 1 - packages/server-sdk/tsconfig.json | 14 ------ packages/server-shared/README.md | 45 ++++++++++++++++++- packages/stage-pages/package.json | 1 - .../components/context-flow-actions.vue | 2 +- .../use-context-flow-formatters.ts | 2 +- .../context-flow/context-flow-types.ts | 2 +- .../src/pages/devtools/context-flow/index.vue | 4 +- packages/stage-ui/package.json | 1 - packages/stage-ui/src/libs/auth.ts | 1 + .../event-handler-spark-notify/index.ts | 2 +- .../character/orchestrator/index.test.ts | 2 +- .../stores/character/orchestrator/store.ts | 2 +- packages/stage-ui/src/stores/chat.ts | 2 +- .../stores/chat/context-providers/datetime.ts | 2 +- .../stage-ui/src/stores/chat/context-store.ts | 2 +- .../stores/devtools/websocket-inspector.ts | 2 +- .../src/stores/mods/api/channel-server.ts | 5 +-- .../src/stores/modules/vision/orchestrator.ts | 2 +- packages/stage-ui/src/types/chat.ts | 2 +- packages/stage-ui/src/utils/event-source.ts | 2 +- pnpm-lock.yaml | 12 ++--- 26 files changed, 65 insertions(+), 55 deletions(-) delete mode 100644 packages/server-sdk/src/events/chat.ts diff --git a/apps/server/vitest.config.ts b/apps/server/vitest.config.ts index 58857b62d..9e551b734 100644 --- a/apps/server/vitest.config.ts +++ b/apps/server/vitest.config.ts @@ -1,13 +1,6 @@ -import { resolve } from 'node:path' - import { defineConfig } from 'vitest/config' export default defineConfig({ - resolve: { - alias: { - '@proj-airi/server-sdk-shared': resolve(import.meta.dirname, '..', '..', 'packages', 'server-sdk-shared', 'src', 'index.ts'), - }, - }, test: { environment: 'node', globals: true, diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json index cdda13872..494333b10 100644 --- a/packages/plugin-sdk/package.json +++ b/packages/plugin-sdk/package.json @@ -42,6 +42,7 @@ "dependencies": { "@moeru/eventa": "catalog:", "@proj-airi/plugin-protocol": "workspace:*", + "@proj-airi/server-shared": "workspace:*", "nanoid": "catalog:", "valibot": "^1.3.1", "xstate": "^5.28.0" diff --git a/packages/server-sdk/package.json b/packages/server-sdk/package.json index 66ca6aed6..f16d656f1 100644 --- a/packages/server-sdk/package.json +++ b/packages/server-sdk/package.json @@ -38,7 +38,6 @@ }, "dependencies": { "@moeru/std": "catalog:", - "@proj-airi/server-sdk-shared": "workspace:^", "@proj-airi/server-shared": "workspace:^", "crossws": "^0.4.4", "superjson": "catalog:" diff --git a/packages/server-sdk/src/events/chat.ts b/packages/server-sdk/src/events/chat.ts deleted file mode 100644 index 268d1ead7..000000000 --- a/packages/server-sdk/src/events/chat.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@proj-airi/server-sdk-shared' diff --git a/packages/server-sdk/src/index.ts b/packages/server-sdk/src/index.ts index 8b471545a..78508edf6 100644 --- a/packages/server-sdk/src/index.ts +++ b/packages/server-sdk/src/index.ts @@ -1,4 +1,3 @@ export * from './client' -export * from './events/chat' export type * from '@proj-airi/server-shared/types' export { ContextUpdateStrategy, WebSocketEventSource } from '@proj-airi/server-shared/types' diff --git a/packages/server-sdk/tsconfig.json b/packages/server-sdk/tsconfig.json index 93f9f81ce..00dcfd807 100644 --- a/packages/server-sdk/tsconfig.json +++ b/packages/server-sdk/tsconfig.json @@ -4,20 +4,8 @@ "lib": [ "ESNext" ], - "baseUrl": ".", "module": "ESNext", "moduleResolution": "bundler", - "paths": { - "@proj-airi/server-shared": [ - "../server-shared/src/index.ts" - ], - "@proj-airi/server-shared/*": [ - "../server-shared/src/*" - ], - "@proj-airi/server-sdk-shared": [ - "../server-sdk-shared/src/index.ts" - ] - }, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, @@ -25,8 +13,6 @@ "skipLibCheck": true }, "include": [ - "../server-shared/src/**/*.ts", - "../server-sdk-shared/src/**/*.ts", "src/**/*.ts" ] } diff --git a/packages/server-shared/README.md b/packages/server-shared/README.md index bcefc30b6..b84ee5c5d 100644 --- a/packages/server-shared/README.md +++ b/packages/server-shared/README.md @@ -1,6 +1,6 @@ # @proj-airi/server-shared -Server-side shared utilities for AIRI runtimes. +The shared type definitions for all server-side packages of Project AIRI. ## Usage @@ -12,9 +12,50 @@ npm i @proj-airi/server-shared -D ``` ```typescript -import { parseServerErrorMessage } from '@proj-airi/server-shared' +import 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:emit` working ("Seen it"). +- Character issues `spark:command` with interrupt=force and options (retreat vs push). +- Minecraft `spark:emit` working ("Pillared up; healing") then done/blocked as it executes. +- Optional `context:update` for summary/memory. + +##### 2. Prep plan (Ender Dragon) + +- Discord/user intent triggers character `spark:command` to Minecraft (intent=plan, interrupt=soft, steps gather beds/pots/gear, fallback). +- Optional `context:update` with tips (lane='game'). +- Minecraft streams `spark:emit` progress. +- If ambushed, Minecraft raises new `spark:notify` (alarm/immediate) to preempt. +- Character revises with another `spark:command`. +- Completion via `spark:emit` done + 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:emit` queued/working then done. + +##### 4. Multi-step command while researching (plan + live control) + +> [!NOTE] +> Using `intent=plan` keeps 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:command` to 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 short `spark:emit` working and a `spark:command` (interrupt=force) to handle it (e.g., retreat, block up). +- Once design is ready, character sends a refined `spark:command` (`intent=proposal` (or `action`), `interrupt=soft`) with structured options/steps/fallbacks. +- Minecraft streams `spark:emit` progress; when complete, character summarizes via `spark:emit` or `context:update` for memory. + ## License [MIT](../../LICENSE) diff --git a/packages/stage-pages/package.json b/packages/stage-pages/package.json index 68c121482..efd865941 100644 --- a/packages/stage-pages/package.json +++ b/packages/stage-pages/package.json @@ -27,7 +27,6 @@ "@proj-airi/ccc": "workspace:*", "@proj-airi/i18n": "workspace:*", "@proj-airi/server-sdk": "workspace:*", - "@proj-airi/server-shared": "workspace:*", "@proj-airi/stage-ui": "workspace:*", "@proj-airi/stage-ui-live2d": "workspace:*", "@proj-airi/stage-ui-three": "workspace:*", diff --git a/packages/stage-pages/src/pages/devtools/context-flow/components/context-flow-actions.vue b/packages/stage-pages/src/pages/devtools/context-flow/components/context-flow-actions.vue index 587e3b063..8ac547684 100644 --- a/packages/stage-pages/src/pages/devtools/context-flow/components/context-flow-actions.vue +++ b/packages/stage-pages/src/pages/devtools/context-flow/components/context-flow-actions.vue @@ -1,5 +1,5 @@