create-spatius-app 0.1.3-beta.2 → 0.1.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-spatius-app",
3
- "version": "0.1.3-beta.2",
3
+ "version": "0.1.4",
4
4
  "description": "Create a Spatius voice-avatar app with LiveKit or Agora Conversational AI on Cloudflare Workers.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -34,7 +34,7 @@
34
34
  "engines": {
35
35
  "node": ">=22"
36
36
  },
37
- "packageManager": "pnpm@12.3.4",
37
+ "packageManager": "pnpm@12.5.1",
38
38
  "publishConfig": {
39
39
  "access": "public",
40
40
  "provenance": true
@@ -74,6 +74,6 @@
74
74
  "typescript": "^6.0.2",
75
75
  "typescript-eslint": "^8.69.0",
76
76
  "vitest": "^5.0.0",
77
- "yaml": "2.9.0"
77
+ "yaml": "2.9.1"
78
78
  }
79
79
  }
@@ -54,6 +54,16 @@ This starts the Python agent first, then starts the frontend and Cloudflare
54
54
  Worker once the agent has registered with LiveKit. If registration takes more
55
55
  than 60 seconds, startup stops with an error.
56
56
 
57
+ Press Ctrl+C once to stop both services. If shutdown logs cover the shell prompt
58
+ and it looks as though another Ctrl+C is required, use pnpm 12.4.1 or later for
59
+ both the executable on your PATH and the `packageManager` pin in `package.json`.
60
+ An older launcher or project pin can return to the shell before the services
61
+ finish shutting down; [pnpm 12.4.1 fixes signal forwarding and waiting](https://github.com/pnpm/pnpm/releases/tag/v12.4.1).
62
+ For a Homebrew installation, run `brew update` followed by `brew upgrade pnpm`.
63
+ Set `packageManager` to `pnpm@12.4.1`, then run `pnpm install` to refresh the
64
+ package-manager lock entry. Changing only the project pin leaves an older
65
+ launcher in use; upgrading only the launcher leaves an older project pin active.
66
+
57
67
  ## Validate without credentials
58
68
 
59
69
  After installing both dependency sets, you can run these checks before account
@@ -21,6 +21,11 @@ ENV PATH="/app/.venv/bin:$PATH" \
21
21
  PYTHONDONTWRITEBYTECODE=1 \
22
22
  PYTHONUNBUFFERED=1
23
23
 
24
+ # Spatius encodes outgoing avatar audio with the native Opus library.
25
+ RUN apt-get update \
26
+ && apt-get install -y --no-install-recommends libopus0 \
27
+ && rm -rf /var/lib/apt/lists/*
28
+
24
29
  RUN useradd --create-home --uid 10001 appuser
25
30
  WORKDIR /app
26
31
 
@@ -28,4 +33,7 @@ COPY --from=builder --chown=appuser:appuser /app /app
28
33
 
29
34
  USER appuser
30
35
 
36
+ # Fail the build if the runtime cannot load the native audio encoder.
37
+ RUN python -c "import opuslib_next"
38
+
31
39
  CMD ["python", "-m", "src.agent", "start"]
@@ -19,6 +19,11 @@ FROM python:${PYTHON_VERSION}-slim-bookworm
19
19
  ENV PATH="/app/.venv/bin:$PATH" \
20
20
  PYTHONUNBUFFERED=1
21
21
 
22
+ # Spatius encodes outgoing avatar audio with the native Opus library.
23
+ RUN apt-get update \
24
+ && apt-get install -y --no-install-recommends libopus0 \
25
+ && rm -rf /var/lib/apt/lists/*
26
+
22
27
  RUN useradd --create-home --uid 10001 appuser
23
28
  WORKDIR /app
24
29
 
@@ -26,4 +31,7 @@ COPY --from=builder --chown=appuser:appuser /app /app
26
31
 
27
32
  USER appuser
28
33
 
34
+ # Fail the build if the runtime cannot load the native audio encoder.
35
+ RUN python -c "import opuslib_next"
36
+
29
37
  CMD ["python", "-m", "src.agent", "start"]
@@ -90,4 +90,6 @@ Use `lk agent deploy` for later releases. Keep `livekit.toml` local until you
90
90
  have reviewed the project-specific values it contains.
91
91
 
92
92
  The Docker image runs as a non-root user and downloads model support files at
93
- build time so startup does not need to fetch them.
93
+ build time so startup does not need to fetch them. It also installs the native
94
+ Opus library required for Spatius audio forwarding and checks that the Python
95
+ binding can load it during the build.