@mclean-capital/neura 2.1.2 → 2.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/core/version.txt +1 -1
- package/dist/audio/playback.d.ts.map +1 -1
- package/dist/audio/playback.js +75 -22
- package/dist/audio/playback.js.map +1 -1
- package/dist/service/windows.d.ts +47 -0
- package/dist/service/windows.d.ts.map +1 -1
- package/dist/service/windows.js +112 -12
- package/dist/service/windows.js.map +1 -1
- package/package.json +1 -1
package/core/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.1.
|
|
1
|
+
2.1.4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8FH,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8FH,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAqUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAgDlE"}
|
package/dist/audio/playback.js
CHANGED
|
@@ -257,43 +257,97 @@ function createNodeSpeakerPlayback() {
|
|
|
257
257
|
* Secondary playback: @picovoice/pvspeaker-node
|
|
258
258
|
*
|
|
259
259
|
* Kept as a fallback for platforms where the `speaker` native build is
|
|
260
|
-
* unavailable
|
|
261
|
-
*
|
|
260
|
+
* unavailable (it's the primary backend on Windows — node-speaker's
|
|
261
|
+
* mpg123 underflow warnings can't be silenced there).
|
|
262
|
+
*
|
|
263
|
+
* PvSpeaker's `write()` contract (from
|
|
264
|
+
* `node_modules/@picovoice/pvspeaker-node/test/pv_speaker.test.ts`):
|
|
265
|
+
*
|
|
266
|
+
* - Accepts an `ArrayBuffer` of raw PCM bytes. NOT a `number[]`,
|
|
267
|
+
* NOT a Node `Buffer` without unwrapping, NOT a `Uint8Array` view.
|
|
268
|
+
* Passing anything else crashes with `RUNTIME_ERROR: Unable to
|
|
269
|
+
* get buffer` because the native N-API binding calls
|
|
270
|
+
* `napi_get_arraybuffer_info` on the argument.
|
|
271
|
+
* - Returns the number of **samples** (frames) successfully written,
|
|
272
|
+
* NOT the number of bytes. With 16-bit mono audio, 1 sample = 2
|
|
273
|
+
* bytes, so the byte-level slice for partial writes must multiply
|
|
274
|
+
* the returned sample count by `BYTES_PER_SAMPLE`.
|
|
275
|
+
*
|
|
276
|
+
* An earlier revision of this function missed both constraints — it
|
|
277
|
+
* built a `number[]` queue of samples and treated the sample-count
|
|
278
|
+
* return as bytes. That worked in theory for `createSoxPlayback`'s
|
|
279
|
+
* stdin pipe but not for PvSpeaker. It was also never caught in
|
|
280
|
+
* practice because an unrelated port bug (fixed in core v2.1.1)
|
|
281
|
+
* prevented `neura listen` from ever reaching audio playback, so the
|
|
282
|
+
* crash only surfaced the moment the port fix shipped.
|
|
262
283
|
*/
|
|
263
284
|
async function createPvSpeakerPlayback() {
|
|
264
285
|
const { PvSpeaker } = await import('@picovoice/pvspeaker-node');
|
|
265
286
|
let speaker = null;
|
|
266
|
-
// Pending
|
|
267
|
-
|
|
287
|
+
// Pending PCM chunks, each a Node Buffer of raw 16-bit PCM bytes.
|
|
288
|
+
// Stored as a queue of Buffers (rather than one concatenated Buffer)
|
|
289
|
+
// to avoid O(n) reallocations on every incoming audio chunk.
|
|
290
|
+
let pendingQueue = [];
|
|
268
291
|
let draining = false;
|
|
269
|
-
//
|
|
270
|
-
|
|
292
|
+
// 16-bit mono → 2 bytes per sample/frame.
|
|
293
|
+
const BYTES_PER_SAMPLE = 2;
|
|
294
|
+
// Hard ceiling on consecutive "nothing drained" iterations so a
|
|
295
|
+
// stuck or zombie speaker can't spin the drain loop forever.
|
|
271
296
|
const MAX_STALL_ITERATIONS = 200; // 200 * 10ms = 2s max stuck time
|
|
297
|
+
/**
|
|
298
|
+
* Copy a Node Buffer slice into a fresh standalone ArrayBuffer.
|
|
299
|
+
*
|
|
300
|
+
* Why not `chunk.buffer.slice(...)`: Node Buffers created by
|
|
301
|
+
* `Buffer.from(..., 'base64')` may use a pooled underlying
|
|
302
|
+
* ArrayBuffer containing unrelated bytes, so we can't hand
|
|
303
|
+
* `chunk.buffer` to pvspeaker's native binding directly — we'd
|
|
304
|
+
* leak garbage into the audio stream. `chunk.buffer.slice()`
|
|
305
|
+
* would give us a fresh ArrayBuffer, but Node's `Buffer.buffer`
|
|
306
|
+
* is typed as `ArrayBuffer | SharedArrayBuffer`, and TypeScript
|
|
307
|
+
* can't narrow to ArrayBuffer without an unsafe cast.
|
|
308
|
+
*
|
|
309
|
+
* Allocating a fresh `new ArrayBuffer(length)` and copying via
|
|
310
|
+
* `Uint8Array.set` is type-safe (always ArrayBuffer), has the
|
|
311
|
+
* same runtime cost (one byte-level copy), and is the idiomatic
|
|
312
|
+
* way to hand Buffer bytes to native bindings that require a
|
|
313
|
+
* strict ArrayBuffer.
|
|
314
|
+
*/
|
|
315
|
+
function chunkToArrayBuffer(chunk) {
|
|
316
|
+
const out = new ArrayBuffer(chunk.byteLength);
|
|
317
|
+
new Uint8Array(out).set(chunk);
|
|
318
|
+
return out;
|
|
319
|
+
}
|
|
272
320
|
async function drain() {
|
|
273
321
|
if (draining)
|
|
274
322
|
return;
|
|
275
323
|
draining = true;
|
|
276
324
|
let stallCount = 0;
|
|
277
325
|
try {
|
|
278
|
-
while (speaker &&
|
|
279
|
-
const chunk =
|
|
280
|
-
|
|
281
|
-
const
|
|
282
|
-
if (
|
|
283
|
-
//
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
326
|
+
while (speaker && pendingQueue.length > 0) {
|
|
327
|
+
const chunk = pendingQueue.shift();
|
|
328
|
+
const samplesWritten = speaker.write(chunkToArrayBuffer(chunk));
|
|
329
|
+
const bytesWritten = samplesWritten * BYTES_PER_SAMPLE;
|
|
330
|
+
if (bytesWritten < chunk.byteLength) {
|
|
331
|
+
// Partial write — pvspeaker's ring buffer didn't have room
|
|
332
|
+
// for the whole chunk. Requeue the tail at the FRONT of the
|
|
333
|
+
// queue so the next iteration continues in order. Using
|
|
334
|
+
// `subarray` here keeps the same underlying memory rather
|
|
335
|
+
// than copying.
|
|
336
|
+
const tail = chunk.subarray(bytesWritten);
|
|
337
|
+
pendingQueue.unshift(tail);
|
|
338
|
+
if (samplesWritten === 0) {
|
|
287
339
|
stallCount++;
|
|
288
340
|
if (stallCount >= MAX_STALL_ITERATIONS) {
|
|
289
|
-
|
|
290
|
-
|
|
341
|
+
const droppedBytes = pendingQueue.reduce((n, b) => n + b.byteLength, 0);
|
|
342
|
+
console.error(`[playback] pvspeaker stalled after ${MAX_STALL_ITERATIONS} iterations, dropping ${droppedBytes} bytes`);
|
|
343
|
+
pendingQueue = [];
|
|
291
344
|
return;
|
|
292
345
|
}
|
|
293
346
|
}
|
|
294
347
|
else {
|
|
295
348
|
stallCount = 0; // Made progress
|
|
296
349
|
}
|
|
350
|
+
// Yield so the speaker can consume what it already has
|
|
297
351
|
await new Promise((r) => setTimeout(r, 10));
|
|
298
352
|
}
|
|
299
353
|
else {
|
|
@@ -313,7 +367,7 @@ async function createPvSpeakerPlayback() {
|
|
|
313
367
|
speaker.start();
|
|
314
368
|
},
|
|
315
369
|
stop() {
|
|
316
|
-
|
|
370
|
+
pendingQueue = [];
|
|
317
371
|
if (speaker) {
|
|
318
372
|
try {
|
|
319
373
|
speaker.flush();
|
|
@@ -330,10 +384,9 @@ async function createPvSpeakerPlayback() {
|
|
|
330
384
|
if (!speaker)
|
|
331
385
|
return;
|
|
332
386
|
const buffer = Buffer.from(base64Pcm, 'base64');
|
|
333
|
-
|
|
334
|
-
//
|
|
335
|
-
|
|
336
|
-
pending.push(sample);
|
|
387
|
+
// Queue the raw PCM Buffer — drain() converts to ArrayBuffer
|
|
388
|
+
// only at the point it hands bytes to the native speaker.
|
|
389
|
+
pendingQueue.push(buffer);
|
|
337
390
|
void drain();
|
|
338
391
|
},
|
|
339
392
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.js","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"playback.js","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,12 @@ interface ShimContext {
|
|
|
42
42
|
errLogFile: string;
|
|
43
43
|
pidFile: string;
|
|
44
44
|
cmdPath: string;
|
|
45
|
+
/**
|
|
46
|
+
* VBScript launcher path. Used by `spawnDetachedCore` via `wscript.exe`
|
|
47
|
+
* to kick off the `.cmd` shim without allocating a visible console
|
|
48
|
+
* window. See `renderVbsLauncher` and `spawnDetachedCore` for details.
|
|
49
|
+
*/
|
|
50
|
+
vbsPath: string;
|
|
45
51
|
}
|
|
46
52
|
declare function getShimContext(): ShimContext;
|
|
47
53
|
declare function getStartupShimPath(): string;
|
|
@@ -82,6 +88,45 @@ declare function escapeCmd(str: string): string;
|
|
|
82
88
|
* `stop()` key off of.
|
|
83
89
|
*/
|
|
84
90
|
declare function renderCmdShim(ctx: ShimContext): string;
|
|
91
|
+
/**
|
|
92
|
+
* Escape a string for safe embedding in a VBScript string literal.
|
|
93
|
+
*
|
|
94
|
+
* VBScript strings use `""` as the escape for a literal double-quote.
|
|
95
|
+
* No other escapes needed for our use case (we only interpolate
|
|
96
|
+
* filesystem paths, which on Windows can't contain newlines and
|
|
97
|
+
* effectively never contain `"`).
|
|
98
|
+
*/
|
|
99
|
+
declare function escapeVbs(str: string): string;
|
|
100
|
+
/**
|
|
101
|
+
* Render the VBScript launcher that `spawnDetachedCore` invokes via
|
|
102
|
+
* `wscript.exe` to kick off the `.cmd` shim without a visible window.
|
|
103
|
+
*
|
|
104
|
+
* Why this indirection exists at all:
|
|
105
|
+
*
|
|
106
|
+
* On Windows, spawning the shim directly via
|
|
107
|
+
* `spawn('cmd.exe', [shim], { detached: true, windowsHide: true })`
|
|
108
|
+
* pops up a terminal window in recent Windows Terminal installs
|
|
109
|
+
* where "Default terminal" is set to Windows Terminal. Node's docs
|
|
110
|
+
* explicitly state that on Windows, `detached: true` "will have
|
|
111
|
+
* its own console window" — that console allocation is intercepted
|
|
112
|
+
* by Windows Terminal and shown as a visible tab, `windowsHide`
|
|
113
|
+
* notwithstanding.
|
|
114
|
+
*
|
|
115
|
+
* Removing `detached: true` fixes the popup but also kills the
|
|
116
|
+
* child when the Neura CLI process exits (the core needs to
|
|
117
|
+
* survive long past the 100ms `neura start` invocation).
|
|
118
|
+
*
|
|
119
|
+
* The fix: spawn `wscript.exe` instead of `cmd.exe`. WScript is a
|
|
120
|
+
* GUI app, not a console app — it has no console to attach to, so
|
|
121
|
+
* `detached: true` doesn't create a new console window. WScript
|
|
122
|
+
* runs this `.vbs` file, which calls `WshShell.Run` with window
|
|
123
|
+
* style `0` (hidden), which internally uses `ShellExecuteEx` to
|
|
124
|
+
* launch the `.cmd` shim fully detached with no visible window.
|
|
125
|
+
* WScript exits immediately after dispatching the Run call, and
|
|
126
|
+
* the shim's cmd.exe + node.exe subtree continues running,
|
|
127
|
+
* invisible and independent.
|
|
128
|
+
*/
|
|
129
|
+
declare function renderVbsLauncher(ctx: ShimContext): string;
|
|
85
130
|
export declare function isInstalled(): boolean;
|
|
86
131
|
/**
|
|
87
132
|
* Check if the core process is currently alive.
|
|
@@ -131,6 +176,8 @@ export declare const __test__: {
|
|
|
131
176
|
getShimContext: typeof getShimContext;
|
|
132
177
|
getStartupShimPath: typeof getStartupShimPath;
|
|
133
178
|
renderCmdShim: typeof renderCmdShim;
|
|
179
|
+
renderVbsLauncher: typeof renderVbsLauncher;
|
|
134
180
|
escapeCmd: typeof escapeCmd;
|
|
181
|
+
escapeVbs: typeof escapeVbs;
|
|
135
182
|
};
|
|
136
183
|
//# sourceMappingURL=windows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../../src/service/windows.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iBAAS,cAAc,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../../src/service/windows.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iBAAS,cAAc,IAAI,WAAW,CAcrC;AAED,iBAAS,kBAAkB,IAAI,MAAM,CAYpC;AAED;;;;;;;;GAQG;AACH,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAS,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAc/C;AAYD;;;;;;;GAOG;AACH,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAUnD;AAuID,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,IAAI,OAAO,CA0BnC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAI5D,wEAAwE;AACxE,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,IAAI,IAAI,CA+C9B;AAED,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAED,wBAAgB,IAAI,IAAI,IAAI,CA6B3B;AAED,wBAAgB,OAAO,IAAI,IAAI,CAG9B;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;;;;;;;;;;;AAED,wBASW;AAGX,eAAO,MAAM,QAAQ;;;;;;;;CAQpB,CAAC"}
|
package/dist/service/windows.js
CHANGED
|
@@ -17,6 +17,7 @@ function getShimContext() {
|
|
|
17
17
|
errLogFile: join(logDir, 'core.error.log'),
|
|
18
18
|
pidFile: join(home, 'neura-core.pid'),
|
|
19
19
|
cmdPath: join(home, 'neura-core.cmd'),
|
|
20
|
+
vbsPath: join(home, 'neura-core-launcher.vbs'),
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
23
|
function getStartupShimPath() {
|
|
@@ -89,6 +90,60 @@ function writeCmdShim(ctx) {
|
|
|
89
90
|
mkdirSync(ctx.logDir, { recursive: true });
|
|
90
91
|
writeFileSync(ctx.cmdPath, renderCmdShim(ctx), 'utf-8');
|
|
91
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Escape a string for safe embedding in a VBScript string literal.
|
|
95
|
+
*
|
|
96
|
+
* VBScript strings use `""` as the escape for a literal double-quote.
|
|
97
|
+
* No other escapes needed for our use case (we only interpolate
|
|
98
|
+
* filesystem paths, which on Windows can't contain newlines and
|
|
99
|
+
* effectively never contain `"`).
|
|
100
|
+
*/
|
|
101
|
+
function escapeVbs(str) {
|
|
102
|
+
return str.replace(/"/g, '""');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Render the VBScript launcher that `spawnDetachedCore` invokes via
|
|
106
|
+
* `wscript.exe` to kick off the `.cmd` shim without a visible window.
|
|
107
|
+
*
|
|
108
|
+
* Why this indirection exists at all:
|
|
109
|
+
*
|
|
110
|
+
* On Windows, spawning the shim directly via
|
|
111
|
+
* `spawn('cmd.exe', [shim], { detached: true, windowsHide: true })`
|
|
112
|
+
* pops up a terminal window in recent Windows Terminal installs
|
|
113
|
+
* where "Default terminal" is set to Windows Terminal. Node's docs
|
|
114
|
+
* explicitly state that on Windows, `detached: true` "will have
|
|
115
|
+
* its own console window" — that console allocation is intercepted
|
|
116
|
+
* by Windows Terminal and shown as a visible tab, `windowsHide`
|
|
117
|
+
* notwithstanding.
|
|
118
|
+
*
|
|
119
|
+
* Removing `detached: true` fixes the popup but also kills the
|
|
120
|
+
* child when the Neura CLI process exits (the core needs to
|
|
121
|
+
* survive long past the 100ms `neura start` invocation).
|
|
122
|
+
*
|
|
123
|
+
* The fix: spawn `wscript.exe` instead of `cmd.exe`. WScript is a
|
|
124
|
+
* GUI app, not a console app — it has no console to attach to, so
|
|
125
|
+
* `detached: true` doesn't create a new console window. WScript
|
|
126
|
+
* runs this `.vbs` file, which calls `WshShell.Run` with window
|
|
127
|
+
* style `0` (hidden), which internally uses `ShellExecuteEx` to
|
|
128
|
+
* launch the `.cmd` shim fully detached with no visible window.
|
|
129
|
+
* WScript exits immediately after dispatching the Run call, and
|
|
130
|
+
* the shim's cmd.exe + node.exe subtree continues running,
|
|
131
|
+
* invisible and independent.
|
|
132
|
+
*/
|
|
133
|
+
function renderVbsLauncher(ctx) {
|
|
134
|
+
// WshShell.Run(command, windowStyle, bWaitOnReturn):
|
|
135
|
+
// command = fully-quoted path to the .cmd shim
|
|
136
|
+
// windowStyle = 0 → hidden
|
|
137
|
+
// bWaitOnReturn = False → fire-and-forget
|
|
138
|
+
return `' Neura core hidden launcher. Generated by \`neura install\`.\r
|
|
139
|
+
' Do not edit; re-run \`neura install\` to regenerate.\r
|
|
140
|
+
Set shell = CreateObject("WScript.Shell")\r
|
|
141
|
+
shell.Run Chr(34) & "${escapeVbs(ctx.cmdPath)}" & Chr(34), 0, False\r
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
function writeVbsLauncher(ctx) {
|
|
145
|
+
writeFileSync(ctx.vbsPath, renderVbsLauncher(ctx), 'utf-8');
|
|
146
|
+
}
|
|
92
147
|
/**
|
|
93
148
|
* Register the Scheduled Task via `schtasks /Create`.
|
|
94
149
|
*
|
|
@@ -157,15 +212,49 @@ function removeStartupShim() {
|
|
|
157
212
|
unlinkSync(shimPath);
|
|
158
213
|
}
|
|
159
214
|
/**
|
|
160
|
-
* Spawn the launcher `.cmd`
|
|
161
|
-
*
|
|
215
|
+
* Spawn the launcher `.cmd` so the core starts immediately after
|
|
216
|
+
* `neura install` / `neura start` (instead of waiting for the next
|
|
217
|
+
* logon to trigger the Scheduled Task / Startup shim).
|
|
218
|
+
*
|
|
219
|
+
* The spawn chain:
|
|
220
|
+
*
|
|
221
|
+
* Node CLI
|
|
222
|
+
* → wscript.exe (detached, hidden, no console to show)
|
|
223
|
+
* → neura-core-launcher.vbs
|
|
224
|
+
* → WshShell.Run("neura-core.cmd", windowStyle=0, wait=False)
|
|
225
|
+
* → cmd.exe (hidden, detached via ShellExecuteEx)
|
|
226
|
+
* → node.exe running the core bundle
|
|
162
227
|
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
228
|
+
* Why this convoluted chain? We tried the obvious thing —
|
|
229
|
+
* `spawn('cmd.exe', [shim], { detached: true, windowsHide: true })` —
|
|
230
|
+
* and it pops up a visible Windows Terminal tab in any install where
|
|
231
|
+
* "Default terminal" is set to Windows Terminal. Node's docs say
|
|
232
|
+
* `detached: true` "will have its own console window" on Windows, and
|
|
233
|
+
* that console allocation is intercepted by Windows Terminal's
|
|
234
|
+
* default-terminal shim regardless of the `windowsHide` flag.
|
|
235
|
+
*
|
|
236
|
+
* Removing `detached: true` fixes the popup but breaks survival: the
|
|
237
|
+
* child gets killed when the parent Node CLI exits (~100ms later).
|
|
238
|
+
*
|
|
239
|
+
* The workaround is to launch via `wscript.exe`, a GUI application
|
|
240
|
+
* that has no console. With `detached: true`, Windows still creates a
|
|
241
|
+
* fresh process-group leader, but there is no console allocation at
|
|
242
|
+
* all — no popup. `wscript.exe` runs a tiny `.vbs` file that invokes
|
|
243
|
+
* `WshShell.Run` with window style `0` and `bWaitOnReturn=False`.
|
|
244
|
+
* That's a thin wrapper over `ShellExecuteEx`, which launches the
|
|
245
|
+
* `.cmd` shim with `SW_HIDE` and returns immediately. The shim runs
|
|
246
|
+
* `cmd.exe` → `node.exe` invisibly, and those processes survive long
|
|
247
|
+
* after both `wscript` and the Neura CLI have exited because
|
|
248
|
+
* ShellExecuteEx properly orphans them.
|
|
249
|
+
*
|
|
250
|
+
* Verified end-to-end on a real Windows machine where the previous
|
|
251
|
+
* `cmd.exe` approach reliably popped up a terminal tab — this chain
|
|
252
|
+
* produces zero visible windows and the core runs on the correct
|
|
253
|
+
* port, surviving the parent `neura start` process exiting ~100ms
|
|
254
|
+
* after spawn.
|
|
166
255
|
*/
|
|
167
256
|
function spawnDetachedCore(ctx) {
|
|
168
|
-
const child = spawn('
|
|
257
|
+
const child = spawn('wscript.exe', [ctx.vbsPath], {
|
|
169
258
|
detached: true,
|
|
170
259
|
stdio: 'ignore',
|
|
171
260
|
windowsHide: true,
|
|
@@ -238,10 +327,18 @@ export function getLastInstallMode() {
|
|
|
238
327
|
}
|
|
239
328
|
export function install() {
|
|
240
329
|
const ctx = getShimContext();
|
|
241
|
-
// Always regenerate
|
|
242
|
-
//
|
|
243
|
-
//
|
|
330
|
+
// Always regenerate both launchers so they pick up any new paths or
|
|
331
|
+
// config changes since the last install. Idempotent: overwriting
|
|
332
|
+
// both files is safe whether or not the task is already registered.
|
|
333
|
+
//
|
|
334
|
+
// - `neura-core.cmd` → invoked by the Scheduled Task or
|
|
335
|
+
// Startup-folder shim at logon
|
|
336
|
+
// - `neura-core-launcher.vbs` → invoked by `spawnDetachedCore`
|
|
337
|
+
// via `wscript.exe` to start the
|
|
338
|
+
// core from `install()`/`start()`
|
|
339
|
+
// without a visible popup window
|
|
244
340
|
writeCmdShim(ctx);
|
|
341
|
+
writeVbsLauncher(ctx);
|
|
245
342
|
// Prefer the Scheduled Task path — it survives reboots cleanly and
|
|
246
343
|
// shows up in Task Scheduler so the user can manage it from the GUI.
|
|
247
344
|
// If it fails (GPO, corp lockdown, schtasks.exe missing from PATH,
|
|
@@ -278,9 +375,10 @@ export function uninstall() {
|
|
|
278
375
|
stop();
|
|
279
376
|
deleteScheduledTask();
|
|
280
377
|
removeStartupShim();
|
|
281
|
-
// Leave NEURA_HOME/neura-core.cmd
|
|
282
|
-
//
|
|
283
|
-
// that's the user's
|
|
378
|
+
// Leave NEURA_HOME/neura-core.cmd and neura-core-launcher.vbs in
|
|
379
|
+
// place — they're harmless and get re-written on next
|
|
380
|
+
// `neura install`. Don't delete NEURA_HOME itself; that's the user's
|
|
381
|
+
// config + memory store.
|
|
284
382
|
}
|
|
285
383
|
export function start() {
|
|
286
384
|
if (isRunning())
|
|
@@ -341,6 +439,8 @@ export const __test__ = {
|
|
|
341
439
|
getShimContext,
|
|
342
440
|
getStartupShimPath,
|
|
343
441
|
renderCmdShim,
|
|
442
|
+
renderVbsLauncher,
|
|
344
443
|
escapeCmd,
|
|
444
|
+
escapeVbs,
|
|
345
445
|
};
|
|
346
446
|
//# sourceMappingURL=windows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../src/service/windows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,SAAS,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../src/service/windows.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED