nova-audio-agent 0.2.0 → 0.2.2

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/README.md CHANGED
@@ -1,58 +1,70 @@
1
1
  # Nova Audio Agent
2
2
 
3
+ ![Nova Audio Agent chalkboard architecture](https://raw.githubusercontent.com/deepnovacore/NovaAudioAgent/main/assets/ideas/v3/nova-audio-agent-runtime-chalkboard.png)
4
+
3
5
  **An always-on voice agent with restrained proactivity and voice-controlled workspaces.**
4
6
 
7
+ [![npm](https://img.shields.io/npm/v/nova-audio-agent.svg)](https://www.npmjs.com/package/nova-audio-agent)
8
+ [![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](https://github.com/deepnovacore/NovaAudioAgent/blob/main/LICENSE)
9
+ [![Node.js](https://img.shields.io/badge/Node.js-22%2B-339933.svg)](https://nodejs.org)
10
+
11
+ [Website](https://deepnovacore.github.io/NovaAudioAgent/en) ·
5
12
  [GitHub](https://github.com/deepnovacore/NovaAudioAgent) ·
6
13
  [简体中文](https://github.com/deepnovacore/NovaAudioAgent/blob/main/README.zh-CN.md) ·
7
- [Watch the demo (Chinese)](https://youtu.be/t1c-2O-QsxE) ·
8
- [Desktop downloads](https://github.com/deepnovacore/NovaAudioAgent/releases)
14
+ [Watch the demo (Chinese)](https://youtu.be/t1c-2O-QsxE)
9
15
 
10
16
  Nova (小诺) keeps a conversation going while longer tasks run in the background.
11
- It is designed to report useful milestones, clarify requests, and let you steer
12
- work through voice without narrating every small step.
17
+ It reports useful milestones, clarifies requests, and lets you steer work through
18
+ voice without narrating every small step.
19
+
20
+ ![Nova in conversation](https://raw.githubusercontent.com/deepnovacore/NovaAudioAgent/v0.2.0/assets/features/conversation.en.png)
13
21
 
14
- This npm package provides the `novaaudio` command to install and launch the
15
- desktop application. You do not need to clone or build the repository to use it.
22
+ This package provides the `novaaudio` command, which installs and launches the
23
+ desktop application. You do not need to clone or build the repository.
16
24
 
17
- ## Get started
25
+ ## Install
18
26
 
19
- Requirements: **Node.js 22.13.0 or newer**, npm, and **macOS on Apple Silicon**
20
- or **Windows x64**. The first launch needs access to GitHub to download the app.
27
+ Requires **Node.js 22.13.0 or newer**, npm, and **macOS on Apple Silicon**,
28
+ **Windows x64**, or **Ubuntu 22.04+ x64** with a desktop session. Intel Macs and
29
+ Linux ARM64 are not covered. Linux requires Chromium user namespaces to be
30
+ permitted by the host or container policy.
31
+ The application is not yet signed, so macOS Gatekeeper and Windows SmartScreen
32
+ will warn on first launch.
21
33
 
22
34
  ```bash
23
35
  npm install --global nova-audio-agent
36
+ ```
37
+
38
+ ## Configure
39
+
40
+ Open the desktop settings, which downloads the app on first run:
41
+
42
+ ```bash
24
43
  novaaudio config
25
44
  ```
26
45
 
27
- In the desktop settings, configure your [DashScope](https://platform.qianwenai.com)
28
- API key for the default Qwen realtime voice service and your
29
- [Tavily](https://docs.tavily.com) API key for web search. For coding tasks, set up
30
- a logged-in Codex executable; see the
31
- [setup guide](https://github.com/deepnovacore/NovaAudioAgent/blob/main/docs/en/getting-started.md).
32
- Allow microphone access when prompted, then launch Nova:
46
+ Then add the keys for the services you want:
47
+
48
+ - **[DashScope](https://platform.qianwenai.com)** — the default Qwen realtime voice service. Required.
49
+ - **[Tavily](https://docs.tavily.com)** — web search. Optional.
50
+ - **Codex** — a logged-in Codex executable, for coding tasks. Optional. See the [setup guide](https://deepnovacore.github.io/NovaAudioAgent/en/docs/getting-started).
51
+
52
+ Allow microphone access when prompted.
53
+
54
+ ## Run
33
55
 
34
56
  ```bash
35
57
  novaaudio
36
58
  ```
37
59
 
38
- Hover over the desktop orb to access its controls. Open settings again with
39
- `novaaudio config`, or inspect your local setup with `novaaudio doctor`.
60
+ Hover over the desktop orb to reach its controls.
40
61
 
41
62
  ## Why Nova?
42
63
 
43
- - **Talk while work continues.** Long-running tasks execute in the background
44
- while Nova stays available for conversation.
45
- - **Progress worth hearing.** Restrained proactivity aims to surface meaningful
46
- updates without reading out every coding event.
47
- - **Manage workspaces by voice.** Create or switch workspaces and sessions
48
- through proposals that you confirm.
49
- - **Steer ongoing work.** The Codex integration uses its native app-server
50
- transport to support real-time steering.
51
-
52
- The repository also documents ongoing development. Features and acceptance
53
- status on development branches may differ from the shipped desktop release;
54
- check the [release notes](https://github.com/deepnovacore/NovaAudioAgent/releases)
55
- for your installed version.
64
+ - **Talk while work continues.** Long-running tasks execute in the background while Nova stays available for conversation.
65
+ - **Progress worth hearing.** Restrained proactivity surfaces meaningful updates instead of reading out every coding event.
66
+ - **Manage workspaces by voice.** Create or switch workspaces and sessions through proposals you confirm.
67
+ - **Steer ongoing work.** The Codex integration uses its native app-server transport, so you can redirect a task while it runs.
56
68
 
57
69
  ## Commands
58
70
 
@@ -64,25 +76,23 @@ for your installed version.
64
76
  | `novaaudio --version` | Print the desktop release version used by the CLI |
65
77
  | `novaaudio --help` | Show command help |
66
78
 
67
- ## Installation details
79
+ ## How it works
68
80
 
69
- The CLI downloads the matching `v0.2.0` desktop release from
70
- [GitHub Releases](https://github.com/deepnovacore/NovaAudioAgent/releases/tag/v0.2.0)
71
- into `~/.nova-audio-agent/cli/releases/` and verifies its published SHA-256 digest
72
- before launching it. It reuses the desktop client's encrypted settings store;
73
- the CLI does not read or print secret values.
81
+ The CLI downloads the matching desktop release from
82
+ [GitHub Releases](https://github.com/deepnovacore/NovaAudioAgent/releases) into
83
+ `~/.nova-audio-agent/cli/releases/` and verifies its published SHA-256 digest
84
+ before launching it. It reuses the desktop client's encrypted settings store and
85
+ never reads or prints secret values.
74
86
 
75
- Documentation-only npm updates may have a newer package version while retaining
76
- the same desktop release. `novaaudio --version` continues to report `0.2.0`.
87
+ Run `novaaudio doctor` to see which release is installed and whether your
88
+ configuration is complete.
77
89
 
78
- This release supports macOS arm64 and Windows x64. Linux and Intel Mac desktop
79
- downloads are not included. The desktop application is currently unsigned, so
80
- macOS Gatekeeper or Windows SmartScreen may display a security warning.
90
+ For headless Ubuntu 22.04+, install `nova-audio-agent-server` and use `novaaudio-server start`; `novaaudio-server pair wss://your-host.ts.net` shows a terminal pairing QR after configuring the service.
81
91
 
82
92
  ## Learn more
83
93
 
84
- - [Getting started and integrations](https://github.com/deepnovacore/NovaAudioAgent/blob/main/docs/en/getting-started.md)
85
- - [Runtime architecture](https://github.com/deepnovacore/NovaAudioAgent/blob/main/docs/en/architecture.md)
94
+ - [Getting started and integrations](https://deepnovacore.github.io/NovaAudioAgent/en/docs/getting-started)
95
+ - [How Nova works](https://deepnovacore.github.io/NovaAudioAgent/en/docs/architecture)
86
96
  - [Design: when should a proactive voice agent speak?](https://github.com/deepnovacore/NovaAudioAgent/blob/main/docs/en/blog/2026-08-proactive-voice-agent-design-space.md)
87
97
  - [Report an issue](https://github.com/deepnovacore/NovaAudioAgent/issues)
88
98
  - [Build from source and contribute](https://github.com/deepnovacore/NovaAudioAgent/blob/main/CONTRIBUTING.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nova-audio-agent",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Install and launch the Nova Audio Agent desktop client from the command line.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,7 +27,7 @@
27
27
  "type": "git",
28
28
  "url": "git+https://github.com/deepnovacore/NovaAudioAgent.git"
29
29
  },
30
- "homepage": "https://github.com/deepnovacore/NovaAudioAgent#readme",
30
+ "homepage": "https://deepnovacore.github.io/NovaAudioAgent/",
31
31
  "bugs": {
32
32
  "url": "https://github.com/deepnovacore/NovaAudioAgent/issues"
33
33
  },
@@ -3,14 +3,19 @@
3
3
  "repository": "deepnovacore/NovaAudioAgent",
4
4
  "targets": {
5
5
  "darwin-arm64": {
6
- "artifact": "nova-audio-agent-0.2.0-macos-arm64-app.zip",
6
+ "artifact": "nova-audio-agent-0.2.2-macos-arm64-app.zip",
7
7
  "executable": "Nova Audio Agent Desktop.app/Contents/MacOS/Nova Audio Agent Desktop",
8
8
  "archive": "zip"
9
9
  },
10
10
  "win32-x64": {
11
- "artifact": "nova-audio-agent-0.2.0-windows-x64-portable.zip",
11
+ "artifact": "nova-audio-agent-0.2.2-windows-x64-portable.zip",
12
12
  "executable": "Nova Audio Agent Desktop.exe",
13
13
  "archive": "zip"
14
+ },
15
+ "linux-x64": {
16
+ "artifact": "nova-audio-agent-0.2.2-linux-x64.AppImage",
17
+ "executable": "nova-audio-agent.AppImage",
18
+ "archive": "file"
14
19
  }
15
20
  }
16
21
  }
package/src/runtime.mjs CHANGED
@@ -160,7 +160,7 @@ async function extractArtifact({artifact, payload, target, platform}) {
160
160
  if (platform === 'darwin') {
161
161
  await run('/usr/bin/ditto', ['-x', '-k', artifact, payload])
162
162
  } else {
163
- await run(platform === 'win32' ? 'tar.exe' : 'tar', ['-xf', artifact, '-C', payload])
163
+ await run(platform === 'win32' ? join(process.env.SystemRoot ?? 'C:\\Windows', 'System32', 'tar.exe') : 'tar', ['-xf', artifact, '-C', payload])
164
164
  }
165
165
  const executable = resolve(payload, target.executable)
166
166
  const executableRelative = relative(resolve(payload), executable)
package/src/target.mjs CHANGED
@@ -1,10 +1,15 @@
1
1
  import { homedir } from 'node:os'
2
2
  import { join } from 'node:path'
3
3
 
4
- export const PRODUCT_VERSION = '0.2.0'
4
+ export const PRODUCT_VERSION = '0.2.2'
5
5
  export const RELEASE_REPOSITORY = 'deepnovacore/NovaAudioAgent'
6
6
 
7
7
  const DEFINITIONS = Object.freeze({
8
+ 'linux-x64': Object.freeze({
9
+ artifact: `nova-audio-agent-${PRODUCT_VERSION}-linux-x64.AppImage`,
10
+ executable: 'nova-audio-agent.AppImage',
11
+ archive: 'file',
12
+ }),
8
13
  'darwin-arm64': Object.freeze({
9
14
  artifact: `nova-audio-agent-${PRODUCT_VERSION}-macos-arm64-app.zip`,
10
15
  executable: 'Nova Audio Agent Desktop.app/Contents/MacOS/Nova Audio Agent Desktop',