termexo 0.3.2 → 0.3.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Termexo npm launcher
2
2
 
3
- This package is the official Windows launcher for
3
+ This package runs the official Windows desktop executable for
4
4
  [Termexo](https://www.termexo.com/), a local-first workspace for AI coding
5
5
  agents, models, and terminals.
6
6
 
@@ -13,25 +13,25 @@ npm install --global termexo
13
13
  termexo
14
14
  ```
15
15
 
16
- The npm package contains the launcher, not the desktop application. Install the
17
- latest Termexo desktop release first:
16
+ The Windows desktop executable is included in the npm package, so no separate
17
+ Termexo installation is required. You can also run it without a global install:
18
18
 
19
19
  ```powershell
20
- termexo download
20
+ npx termexo
21
21
  ```
22
22
 
23
23
  ## Commands
24
24
 
25
25
  ```text
26
- termexo Start Termexo
27
- termexo start Start Termexo
26
+ termexo Start the bundled Termexo desktop app
27
+ termexo start Start the bundled Termexo desktop app
28
28
  termexo download Open the latest release page
29
29
  termexo --version Show the launcher version
30
30
  termexo --help Show command help
31
31
  ```
32
32
 
33
- If Termexo is installed in a custom directory, set `TERMEXO_PATH` to the full
34
- path of `termexo.exe`.
33
+ Set `TERMEXO_PATH` to the full path of another `termexo.exe` to override the
34
+ bundled executable.
35
35
 
36
36
  Project source and desktop releases are available at
37
37
  [github.com/gemron/Termexo](https://github.com/gemron/Termexo).
package/bin/termexo.js CHANGED
@@ -17,8 +17,8 @@ function printHelp() {
17
17
  console.log(`Termexo ${packageJson.version}
18
18
 
19
19
  Usage:
20
- termexo Start the installed Termexo desktop app
21
- termexo start Start the installed Termexo desktop app
20
+ termexo Start the bundled Termexo desktop app
21
+ termexo start Start the bundled Termexo desktop app
22
22
  termexo download Open the latest Termexo release page
23
23
  termexo --version Print the launcher version
24
24
  termexo --help Show this help
@@ -37,9 +37,10 @@ if (command === '--help' || command === '-h' || command === 'help') {
37
37
  } else if (command === 'start') {
38
38
  const executable = findExecutable();
39
39
  if (!executable) {
40
- console.error(`Termexo is not installed in a standard location.
40
+ console.error(`The Termexo executable is missing from this npm package.
41
41
 
42
- Download the Windows installer:
42
+ Reinstall the package or download the Windows installer:
43
+ npm install --global termexo@latest
43
44
  termexo download
44
45
  ${RELEASES_URL}
45
46
 
package/lib/launcher.js CHANGED
@@ -1,10 +1,17 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { win32 } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
4
5
 
5
6
  export const RELEASES_URL = 'https://github.com/gemron/Termexo/releases/latest';
7
+ export const BUNDLED_EXECUTABLE = fileURLToPath(
8
+ new URL('../vendor/win32-x64/termexo.exe', import.meta.url),
9
+ );
6
10
 
7
- export function executableCandidates(environment = process.env) {
11
+ export function executableCandidates(
12
+ environment = process.env,
13
+ bundledExecutable = BUNDLED_EXECUTABLE,
14
+ ) {
8
15
  const candidates = [];
9
16
  const add = (value) => {
10
17
  if (value && !candidates.includes(value)) {
@@ -13,6 +20,7 @@ export function executableCandidates(environment = process.env) {
13
20
  };
14
21
 
15
22
  add(environment.TERMEXO_PATH);
23
+ add(bundledExecutable);
16
24
 
17
25
  if (environment.LOCALAPPDATA) {
18
26
  add(win32.join(environment.LOCALAPPDATA, 'Termexo', 'termexo.exe'));
@@ -30,8 +38,14 @@ export function executableCandidates(environment = process.env) {
30
38
  return candidates;
31
39
  }
32
40
 
33
- export function findExecutable(environment = process.env, fileExists = existsSync) {
34
- return executableCandidates(environment).find((candidate) => fileExists(candidate));
41
+ export function findExecutable(
42
+ environment = process.env,
43
+ fileExists = existsSync,
44
+ bundledExecutable = BUNDLED_EXECUTABLE,
45
+ ) {
46
+ return executableCandidates(environment, bundledExecutable).find((candidate) =>
47
+ fileExists(candidate),
48
+ );
35
49
  }
36
50
 
37
51
  export function launchExecutable(executable, spawnProcess = spawn) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "termexo",
3
- "version": "0.3.2",
4
- "description": "Official Windows launcher for the Termexo AI development workspace",
3
+ "version": "0.3.4",
4
+ "description": "Run the Termexo AI development workspace directly from npm on Windows",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "termexo": "bin/termexo.js"
@@ -9,6 +9,7 @@
9
9
  "files": [
10
10
  "bin/",
11
11
  "lib/",
12
+ "vendor/win32-x64/termexo.exe",
12
13
  "README.md"
13
14
  ],
14
15
  "os": [
@@ -19,6 +20,7 @@
19
20
  },
20
21
  "scripts": {
21
22
  "test": "node --test",
23
+ "prepack": "node scripts/stage-binary.mjs",
22
24
  "prepublishOnly": "npm test"
23
25
  },
24
26
  "keywords": [
Binary file