@mclean-capital/neura 1.10.0
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/LICENSE +21 -0
- package/README.md +90 -0
- package/dist/audio/capture.d.ts +19 -0
- package/dist/audio/capture.d.ts.map +1 -0
- package/dist/audio/capture.js +52 -0
- package/dist/audio/capture.js.map +1 -0
- package/dist/audio/install-hints.d.ts +12 -0
- package/dist/audio/install-hints.d.ts.map +1 -0
- package/dist/audio/install-hints.js +29 -0
- package/dist/audio/install-hints.js.map +1 -0
- package/dist/audio/playback.d.ts +33 -0
- package/dist/audio/playback.d.ts.map +1 -0
- package/dist/audio/playback.js +408 -0
- package/dist/audio/playback.js.map +1 -0
- package/dist/commands/backup.d.ts +5 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +72 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/chat.d.ts +4 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +183 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +36 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/install.d.ts +2 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +158 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/listen.d.ts +5 -0
- package/dist/commands/listen.d.ts.map +1 -0
- package/dist/commands/listen.js +321 -0
- package/dist/commands/listen.js.map +1 -0
- package/dist/commands/logs.d.ts +5 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +40 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/open.d.ts +2 -0
- package/dist/commands/open.d.ts.map +1 -0
- package/dist/commands/open.js +43 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/restart.d.ts +2 -0
- package/dist/commands/restart.d.ts.map +1 -0
- package/dist/commands/restart.js +22 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/start.d.ts +2 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +28 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +36 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +2 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +17 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/uninstall.d.ts +4 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +52 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/update.d.ts +2 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +25 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/version.d.ts +2 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +25 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +107 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +3 -0
- package/dist/constants.js.map +1 -0
- package/dist/download.d.ts +28 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +125 -0
- package/dist/download.js.map +1 -0
- package/dist/format/tools.d.ts +13 -0
- package/dist/format/tools.d.ts.map +1 -0
- package/dist/format/tools.js +48 -0
- package/dist/format/tools.js.map +1 -0
- package/dist/health.d.ts +15 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +30 -0
- package/dist/health.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/port.d.ts +10 -0
- package/dist/port.d.ts.map +1 -0
- package/dist/port.js +39 -0
- package/dist/port.js.map +1 -0
- package/dist/service/detect.d.ts +10 -0
- package/dist/service/detect.d.ts.map +1 -0
- package/dist/service/detect.js +38 -0
- package/dist/service/detect.js.map +1 -0
- package/dist/service/linux.d.ts +20 -0
- package/dist/service/linux.d.ts.map +1 -0
- package/dist/service/linux.js +91 -0
- package/dist/service/linux.js.map +1 -0
- package/dist/service/macos.d.ts +20 -0
- package/dist/service/macos.d.ts.map +1 -0
- package/dist/service/macos.js +118 -0
- package/dist/service/macos.js.map +1 -0
- package/dist/service/manager.d.ts +16 -0
- package/dist/service/manager.d.ts.map +1 -0
- package/dist/service/manager.js +16 -0
- package/dist/service/manager.js.map +1 -0
- package/dist/service/windows.d.ts +20 -0
- package/dist/service/windows.d.ts.map +1 -0
- package/dist/service/windows.js +103 -0
- package/dist/service/windows.js.map +1 -0
- package/dist/update-check.d.ts +7 -0
- package/dist/update-check.d.ts.map +1 -0
- package/dist/update-check.js +71 -0
- package/dist/update-check.js.map +1 -0
- package/dist/version.d.ts +12 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +15 -0
- package/dist/version.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Print an update notice if the cache shows a newer version.
|
|
3
|
+
* If the cache is stale or missing, spawn a detached background process to refresh it.
|
|
4
|
+
* Main process never makes network calls — exits immediately.
|
|
5
|
+
*/
|
|
6
|
+
export declare function checkForUpdateInBackground(): void;
|
|
7
|
+
//# sourceMappingURL=update-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAkDjD"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { getInstalledCoreVersion } from './download.js';
|
|
6
|
+
import { loadConfig, getNeuraHome } from './config.js';
|
|
7
|
+
const CACHE_FILE = 'update-check.json';
|
|
8
|
+
const CHECK_TTL_MS = 6 * 60 * 60 * 1000; // 6 hours
|
|
9
|
+
function getCachePath() {
|
|
10
|
+
return join(getNeuraHome(), CACHE_FILE);
|
|
11
|
+
}
|
|
12
|
+
function readCache() {
|
|
13
|
+
const path = getCachePath();
|
|
14
|
+
if (!existsSync(path))
|
|
15
|
+
return null;
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Print an update notice if the cache shows a newer version.
|
|
25
|
+
* If the cache is stale or missing, spawn a detached background process to refresh it.
|
|
26
|
+
* Main process never makes network calls — exits immediately.
|
|
27
|
+
*/
|
|
28
|
+
export function checkForUpdateInBackground() {
|
|
29
|
+
const config = loadConfig();
|
|
30
|
+
if (config.autoUpdate === false)
|
|
31
|
+
return;
|
|
32
|
+
const installed = getInstalledCoreVersion();
|
|
33
|
+
if (!installed)
|
|
34
|
+
return;
|
|
35
|
+
const cache = readCache();
|
|
36
|
+
// Print notice from cache if available
|
|
37
|
+
if (cache) {
|
|
38
|
+
const latestClean = cache.latestVersion.replace(/^v/, '');
|
|
39
|
+
const installedClean = installed.replace(/^v/, '');
|
|
40
|
+
if (latestClean !== installedClean) {
|
|
41
|
+
console.log(chalk.dim(` Update available: ${installedClean} → ${latestClean} (run: neura update)`));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Spawn background refresh if cache is stale or missing
|
|
45
|
+
const isStale = !cache || Date.now() - cache.lastCheckedAt > CHECK_TTL_MS;
|
|
46
|
+
if (isStale) {
|
|
47
|
+
// Spawn a detached child that runs the refresh script
|
|
48
|
+
const child = spawn(process.execPath, [
|
|
49
|
+
'--input-type=module',
|
|
50
|
+
'-e',
|
|
51
|
+
`
|
|
52
|
+
import { writeFileSync } from 'fs';
|
|
53
|
+
try {
|
|
54
|
+
const res = await fetch('https://api.github.com/repos/mclean-capital/neura/releases/latest', {
|
|
55
|
+
headers: { Accept: 'application/vnd.github.v3+json' },
|
|
56
|
+
signal: AbortSignal.timeout(5000),
|
|
57
|
+
});
|
|
58
|
+
if (res.ok) {
|
|
59
|
+
const data = await res.json();
|
|
60
|
+
writeFileSync(${JSON.stringify(getCachePath())}, JSON.stringify({
|
|
61
|
+
lastCheckedAt: Date.now(),
|
|
62
|
+
latestVersion: data.tag_name,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
} catch {}
|
|
66
|
+
`,
|
|
67
|
+
], { detached: true, stdio: 'ignore' });
|
|
68
|
+
child.unref();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=update-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,UAAU;AAOnD,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAgB,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK;QAAE,OAAO;IAExC,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAE1B,uCAAuC;IACvC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,uBAAuB,cAAc,MAAM,WAAW,uBAAuB,CAAC,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IAC1E,IAAI,OAAO,EAAE,CAAC;QACZ,sDAAsD;QACtD,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAChB;YACE,qBAAqB;YACrB,IAAI;YACJ;;;;;;;;;oBASY,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;;;;;;CAMjD;SACM,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpC,CAAC;QACF,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the CLI version.
|
|
3
|
+
*
|
|
4
|
+
* Reads from the adjacent package.json via createRequire so both dev mode
|
|
5
|
+
* (tsx src/version.ts) and published builds (dist/version.js) resolve the
|
|
6
|
+
* same file: packages/cli/package.json.
|
|
7
|
+
*
|
|
8
|
+
* Before publish, the CI workflow syncs this file's version from the root
|
|
9
|
+
* monorepo version. See tools/sync-cli-version.mjs.
|
|
10
|
+
*/
|
|
11
|
+
export declare const CLI_VERSION: string;
|
|
12
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,eAAO,MAAM,WAAW,QAAc,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the CLI version.
|
|
3
|
+
*
|
|
4
|
+
* Reads from the adjacent package.json via createRequire so both dev mode
|
|
5
|
+
* (tsx src/version.ts) and published builds (dist/version.js) resolve the
|
|
6
|
+
* same file: packages/cli/package.json.
|
|
7
|
+
*
|
|
8
|
+
* Before publish, the CI workflow syncs this file's version from the root
|
|
9
|
+
* monorepo version. See tools/sync-cli-version.mjs.
|
|
10
|
+
*/
|
|
11
|
+
import { createRequire } from 'module';
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
const pkg = require('../package.json');
|
|
14
|
+
export const CLI_VERSION = pkg.version;
|
|
15
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mclean-capital/neura",
|
|
3
|
+
"version": "1.10.0",
|
|
4
|
+
"description": "Neura — CLI for installing and managing the Neura AI assistant core service. Includes text chat and voice listen clients.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"neura",
|
|
7
|
+
"ai",
|
|
8
|
+
"voice-assistant",
|
|
9
|
+
"cli",
|
|
10
|
+
"grok",
|
|
11
|
+
"gemini",
|
|
12
|
+
"llm",
|
|
13
|
+
"voice",
|
|
14
|
+
"speech",
|
|
15
|
+
"mclean-capital"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/mclean-capital/neura#readme",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/mclean-capital/neura/issues"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/mclean-capital/neura.git",
|
|
24
|
+
"directory": "packages/cli"
|
|
25
|
+
},
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"author": "McLean Capital",
|
|
28
|
+
"type": "module",
|
|
29
|
+
"bin": {
|
|
30
|
+
"neura": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"README.md",
|
|
35
|
+
"LICENSE"
|
|
36
|
+
],
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=22"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"dev": "tsx src/index.ts",
|
|
42
|
+
"build": "tsc -p tsconfig.build.json",
|
|
43
|
+
"typecheck": "tsc --noEmit",
|
|
44
|
+
"lint": "eslint src/",
|
|
45
|
+
"lint:fix": "eslint src/ --fix",
|
|
46
|
+
"test": "vitest run --config vitest.config.ts"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@inquirer/prompts": "^7",
|
|
50
|
+
"chalk": "^5",
|
|
51
|
+
"commander": "^13",
|
|
52
|
+
"ws": "^8.20.0"
|
|
53
|
+
},
|
|
54
|
+
"optionalDependencies": {
|
|
55
|
+
"@picovoice/pvspeaker-node": "^1.0.3",
|
|
56
|
+
"decibri": "^1.0.0",
|
|
57
|
+
"speaker": "^0.5.5"
|
|
58
|
+
}
|
|
59
|
+
}
|