oomi-ai 0.2.16 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +238 -203
  2. package/agent_instructions.md +209 -184
  3. package/bin/oomi-ai.js +3989 -3460
  4. package/bin/sessionBridgeState.js +78 -78
  5. package/lib/channelPluginClient.js +119 -0
  6. package/lib/personaApiClient.js +221 -0
  7. package/lib/personaJobExecutor.js +115 -0
  8. package/lib/personaJobPoller.js +112 -0
  9. package/lib/personaRuntimeProcess.js +152 -0
  10. package/lib/scaffold.js +108 -0
  11. package/lib/template.js +45 -0
  12. package/openclaw.extension.js +602 -424
  13. package/openclaw.plugin.json +17 -17
  14. package/package.json +67 -65
  15. package/skills/oomi/SKILL.md +191 -170
  16. package/skills/oomi/agent_instructions.md +80 -78
  17. package/skills/oomi/config.json +2 -2
  18. package/skills/oomi/scripts/get_avatar_capabilities.py +40 -40
  19. package/skills/oomi/scripts/get_data.py +49 -49
  20. package/skills/oomi/scripts/install_agent_instructions.py +78 -78
  21. package/skills/oomi/scripts/send_goal.py +53 -53
  22. package/skills/oomi/scripts/sync.py +46 -46
  23. package/skills/oomi/setup.py +41 -41
  24. package/templates/persona-app/.env.example +8 -0
  25. package/templates/persona-app/README.md +35 -0
  26. package/templates/persona-app/eslint.config.js +28 -0
  27. package/templates/persona-app/index.html +18 -0
  28. package/templates/persona-app/oomi.runtime.json +13 -0
  29. package/templates/persona-app/package.json +42 -0
  30. package/templates/persona-app/persona/brief.md +14 -0
  31. package/templates/persona-app/persona.json +14 -0
  32. package/templates/persona-app/public/manifest.webmanifest +8 -0
  33. package/templates/persona-app/public/oomi.health.json +6 -0
  34. package/templates/persona-app/src/App.css +180 -0
  35. package/templates/persona-app/src/App.tsx +14 -0
  36. package/templates/persona-app/src/index.css +32 -0
  37. package/templates/persona-app/src/main.tsx +10 -0
  38. package/templates/persona-app/src/pages/HomePage.tsx +73 -0
  39. package/templates/persona-app/src/pages/ScenePage.tsx +18 -0
  40. package/templates/persona-app/src/persona/config.ts +6 -0
  41. package/templates/persona-app/src/persona/notes.ts +5 -0
  42. package/templates/persona-app/src/vite-env.d.ts +3 -0
  43. package/templates/persona-app/template.json +13 -0
  44. package/templates/persona-app/tsconfig.app.json +23 -0
  45. package/templates/persona-app/tsconfig.json +7 -0
  46. package/templates/persona-app/tsconfig.node.json +21 -0
  47. package/templates/persona-app/vite.config.ts +18 -0
@@ -0,0 +1,18 @@
1
+ import "../App.css";
2
+ import { personaConfig } from "../persona/config";
3
+
4
+ export function ScenePage() {
5
+ return (
6
+ <main className="scene-shell">
7
+ <section className="persona-panel scene-panel">
8
+ <p className="persona-eyebrow">Scene</p>
9
+ <h1>{personaConfig.name}</h1>
10
+ <p>{personaConfig.description}</p>
11
+ <p>
12
+ This route is intentionally separate so WebSpatial scene launching has a dedicated
13
+ surface. Extend this page with persona-specific spatial UI.
14
+ </p>
15
+ </section>
16
+ </main>
17
+ );
18
+ }
@@ -0,0 +1,6 @@
1
+ export const personaConfig = {
2
+ slug: "__OOMI_PERSONA_SLUG__",
3
+ name: "__OOMI_PERSONA_NAME__",
4
+ description: "__OOMI_PERSONA_DESCRIPTION__",
5
+ templateVersion: "__OOMI_TEMPLATE_VERSION__",
6
+ };
@@ -0,0 +1,5 @@
1
+ export const personaNotes = [
2
+ "Keep persona-specific logic inside src/persona/ unless Oomi explicitly instructs otherwise.",
3
+ "Preserve the WebSpatial router basename and scene-launch flow.",
4
+ "Do not remove public/oomi.runtime.json, public/oomi.health.json, or public/manifest.webmanifest.",
5
+ ];
@@ -0,0 +1,3 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ declare const __XR_ENV_BASE__: string;
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "persona-app",
3
+ "version": "v1",
4
+ "displayName": "Oomi Persona App",
5
+ "appKind": "oomi-persona-app",
6
+ "defaultPort": 4789,
7
+ "healthPath": "/oomi.health.json",
8
+ "startCommand": "npm run dev",
9
+ "editableZones": [
10
+ "src/persona",
11
+ "persona"
12
+ ]
13
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "jsxImportSource": "@webspatial/react-sdk",
4
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
5
+ "target": "ES2020",
6
+ "useDefineForClassFields": true,
7
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
8
+ "module": "ESNext",
9
+ "skipLibCheck": true,
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "isolatedModules": true,
13
+ "moduleDetection": "force",
14
+ "noEmit": true,
15
+ "jsx": "react-jsx",
16
+ "strict": true,
17
+ "noUnusedLocals": true,
18
+ "noUnusedParameters": true,
19
+ "noFallthroughCasesInSwitch": true,
20
+ "noUncheckedSideEffectImports": true
21
+ },
22
+ "include": ["src"]
23
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ { "path": "./tsconfig.app.json" },
5
+ { "path": "./tsconfig.node.json" }
6
+ ]
7
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "jsxImportSource": "@webspatial/react-sdk",
4
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
5
+ "target": "ES2022",
6
+ "lib": ["ES2023"],
7
+ "module": "ESNext",
8
+ "skipLibCheck": true,
9
+ "moduleResolution": "bundler",
10
+ "allowImportingTsExtensions": true,
11
+ "isolatedModules": true,
12
+ "moduleDetection": "force",
13
+ "noEmit": true,
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true
19
+ },
20
+ "include": ["vite.config.ts"]
21
+ }
@@ -0,0 +1,18 @@
1
+ import react from "@vitejs/plugin-react";
2
+ import webSpatial from "@webspatial/vite-plugin";
3
+ import { defineConfig } from "vite";
4
+ import { createHtmlPlugin } from "vite-plugin-html";
5
+
6
+ export default defineConfig({
7
+ plugins: [
8
+ react(),
9
+ webSpatial(),
10
+ createHtmlPlugin({
11
+ inject: {
12
+ data: {
13
+ XR_ENV: process.env.XR_ENV,
14
+ },
15
+ },
16
+ }),
17
+ ],
18
+ });