diff --git a/.github/workflows/template-tauri-build-linux-x64-external.yml b/.github/workflows/template-tauri-build-linux-x64-external.yml index d7ac3d85d..f8bdac283 100644 --- a/.github/workflows/template-tauri-build-linux-x64-external.yml +++ b/.github/workflows/template-tauri-build-linux-x64-external.yml @@ -22,7 +22,7 @@ on: description: 'If true, builds both .deb and .appimage but disables auto-updater' jobs: build-linux-x64-external: - runs-on: ubuntu-22.04 + runs-on: ubuntu-22.04 steps: - name: Getting the repo uses: actions/checkout@v3 @@ -116,6 +116,7 @@ jobs: chmod +x .github/scripts/rename-tauri-app.sh .github/scripts/rename-tauri-app.sh ./src-tauri/tauri.conf.json ${{ inputs.channel }} ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" chmod +x .github/scripts/rename-workspace.sh .github/scripts/rename-workspace.sh ./package.json ${{ inputs.channel }} diff --git a/.github/workflows/template-tauri-build-linux-x64-flatpak.yml b/.github/workflows/template-tauri-build-linux-x64-flatpak.yml index cf32f339b..916f3b9a3 100644 --- a/.github/workflows/template-tauri-build-linux-x64-flatpak.yml +++ b/.github/workflows/template-tauri-build-linux-x64-flatpak.yml @@ -143,6 +143,7 @@ jobs: # Update Cargo.toml ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" echo "------------------" cat ./src-tauri/Cargo.toml @@ -193,7 +194,7 @@ jobs: echo "DEB_SIG=$DEB_SIG" >> $GITHUB_OUTPUT echo "DEB_FILE_NAME=$DEB_FILE_NAME" >> $GITHUB_OUTPUT - + - name: upload to aws s3 if public provider is aws if: inputs.public_provider == 'aws-s3' run: | @@ -206,4 +207,4 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ secrets.DELTA_AWS_REGION }} - AWS_EC2_METADATA_DISABLED: 'true' \ No newline at end of file + AWS_EC2_METADATA_DISABLED: 'true' diff --git a/.github/workflows/template-tauri-build-linux-x64.yml b/.github/workflows/template-tauri-build-linux-x64.yml index b539b0d32..c50e4e381 100644 --- a/.github/workflows/template-tauri-build-linux-x64.yml +++ b/.github/workflows/template-tauri-build-linux-x64.yml @@ -164,6 +164,7 @@ jobs: # Update Cargo.toml ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" echo "------------------" cat ./src-tauri/Cargo.toml diff --git a/.github/workflows/template-tauri-build-macos-external.yml b/.github/workflows/template-tauri-build-macos-external.yml index 628b84a4e..0d9a5cc84 100644 --- a/.github/workflows/template-tauri-build-macos-external.yml +++ b/.github/workflows/template-tauri-build-macos-external.yml @@ -91,6 +91,7 @@ jobs: chmod +x .github/scripts/rename-tauri-app.sh .github/scripts/rename-tauri-app.sh ./src-tauri/tauri.conf.json ${{ inputs.channel }} ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" chmod +x .github/scripts/rename-workspace.sh .github/scripts/rename-workspace.sh ./package.json ${{ inputs.channel }} diff --git a/.github/workflows/template-tauri-build-macos.yml b/.github/workflows/template-tauri-build-macos.yml index 088118cbd..b1ec5e3fc 100644 --- a/.github/workflows/template-tauri-build-macos.yml +++ b/.github/workflows/template-tauri-build-macos.yml @@ -152,6 +152,7 @@ jobs: # Update Cargo.toml ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" echo "------------------" cat ./src-tauri/Cargo.toml diff --git a/.github/workflows/template-tauri-build-windows-x64-external.yml b/.github/workflows/template-tauri-build-windows-x64-external.yml index 91aaa95a9..c59f8d9b2 100644 --- a/.github/workflows/template-tauri-build-windows-x64-external.yml +++ b/.github/workflows/template-tauri-build-windows-x64-external.yml @@ -60,7 +60,7 @@ jobs: jq --arg version "${{ inputs.new_version }}" '.version = $version' ./src-tauri/plugins/tauri-plugin-hardware/package.json > /tmp/package.json mv /tmp/package.json ./src-tauri/plugins/tauri-plugin-hardware/package.json - + echo "---------./src-tauri/plugins/tauri-plugin-hardware/package.json---------" cat ./src-tauri/plugins/tauri-plugin-hardware/package.json @@ -73,7 +73,7 @@ jobs: ctoml ./src-tauri/plugins/tauri-plugin-hardware/Cargo.toml package.version "${{ inputs.new_version }}" echo "---------./src-tauri/plugins/tauri-plugin-hardware/Cargo.toml---------" cat ./src-tauri/plugins/tauri-plugin-hardware/Cargo.toml - + ctoml ./src-tauri/plugins/tauri-plugin-llamacpp/Cargo.toml package.version "${{ inputs.new_version }}" echo "---------./src-tauri/plugins/tauri-plugin-llamacpp/Cargo.toml---------" cat ./src-tauri/plugins/tauri-plugin-llamacpp/Cargo.toml @@ -119,7 +119,7 @@ jobs: jq '.plugins.updater.endpoints = ["https://delta.jan.ai/${{ inputs.channel }}/latest.json"]' ./src-tauri/tauri.conf.json > /tmp/tauri.conf.json fi mv /tmp/tauri.conf.json ./src-tauri/tauri.conf.json - + # Update product name jq --arg name "Jan-${{ inputs.channel }}" '.productName = $name' ./src-tauri/tauri.conf.json > /tmp/tauri.conf.json mv /tmp/tauri.conf.json ./src-tauri/tauri.conf.json @@ -132,6 +132,7 @@ jobs: # Update Cargo.toml ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" echo "------------------" cat ./src-tauri/Cargo.toml @@ -165,4 +166,4 @@ jobs: with: name: jan-windows-${{ inputs.new_version }} path: | - ./src-tauri/target/release/bundle/nsis/*.exe \ No newline at end of file + ./src-tauri/target/release/bundle/nsis/*.exe diff --git a/.github/workflows/template-tauri-build-windows-x64.yml b/.github/workflows/template-tauri-build-windows-x64.yml index 93163ef68..3f0fc6193 100644 --- a/.github/workflows/template-tauri-build-windows-x64.yml +++ b/.github/workflows/template-tauri-build-windows-x64.yml @@ -116,7 +116,7 @@ jobs: jq --arg version "${{ inputs.new_version }}" '.version = $version' ./src-tauri/plugins/tauri-plugin-hardware/package.json > /tmp/package.json mv /tmp/package.json ./src-tauri/plugins/tauri-plugin-hardware/package.json - + echo "---------./src-tauri/plugins/tauri-plugin-hardware/package.json---------" cat ./src-tauri/plugins/tauri-plugin-hardware/package.json @@ -129,7 +129,7 @@ jobs: ctoml ./src-tauri/plugins/tauri-plugin-hardware/Cargo.toml package.version "${{ inputs.new_version }}" echo "---------./src-tauri/plugins/tauri-plugin-hardware/Cargo.toml---------" cat ./src-tauri/plugins/tauri-plugin-hardware/Cargo.toml - + ctoml ./src-tauri/plugins/tauri-plugin-llamacpp/Cargo.toml package.version "${{ inputs.new_version }}" echo "---------./src-tauri/plugins/tauri-plugin-llamacpp/Cargo.toml---------" cat ./src-tauri/plugins/tauri-plugin-llamacpp/Cargo.toml @@ -167,7 +167,7 @@ jobs: generate_build_version ${{ inputs.new_version }} sed -i "s/jan_version/$new_base_version/g" ./src-tauri/tauri.bundle.windows.nsis.template sed -i "s/jan_build/$new_build_version/g" ./src-tauri/tauri.bundle.windows.nsis.template - + echo "---------tauri.windows.conf.json---------" cat ./src-tauri/tauri.windows.conf.json @@ -183,7 +183,7 @@ jobs: jq '.plugins.updater.endpoints = ["https://delta.jan.ai/${{ inputs.channel }}/latest.json"]' ./src-tauri/tauri.conf.json > /tmp/tauri.conf.json fi mv /tmp/tauri.conf.json ./src-tauri/tauri.conf.json - + # Update product name jq --arg name "Jan-${{ inputs.channel }}" '.productName = $name' ./src-tauri/tauri.conf.json > /tmp/tauri.conf.json mv /tmp/tauri.conf.json ./src-tauri/tauri.conf.json @@ -196,6 +196,7 @@ jobs: # Update Cargo.toml ctoml ./src-tauri/Cargo.toml package.name "Jan-${{ inputs.channel }}" + ctoml ./src-tauri/Cargo.toml package.default-run "Jan-${{ inputs.channel }}" ctoml ./src-tauri/Cargo.toml dependencies.tauri.features[] "devtools" echo "------------------" cat ./src-tauri/Cargo.toml @@ -256,7 +257,7 @@ jobs: name: jan-windows-msi-${{ inputs.new_version }} path: | ./src-tauri/target/release/bundle/msi/*.msi - + - name: Upload Portable Artifact uses: actions/upload-artifact@v4 with: @@ -278,7 +279,7 @@ jobs: else FILE_NAME=Jan_${{ inputs.new_version }}_x64-setup.exe WIN_SIG=$(cat Jan_${{ inputs.new_version }}_x64-setup.exe.sig) - + MSI_FILE="Jan_${{ inputs.new_version }}_x64_en-US.msi" PORTABLE_FILE_NAME="Jan_${{ inputs.new_version }}_x64-portable.exe" fi @@ -337,4 +338,4 @@ jobs: upload_url: ${{ inputs.upload_url }} asset_path: ./src-tauri/target/release/${{ steps.metadata.outputs.PORTABLE_FILE_NAME }} asset_name: ${{ steps.metadata.outputs.PORTABLE_FILE_NAME }} - asset_content_type: application/octet-stream \ No newline at end of file + asset_content_type: application/octet-stream diff --git a/Makefile b/Makefile index 364040cea..df30f2b6d 100644 --- a/Makefile +++ b/Makefile @@ -169,28 +169,28 @@ endif # Build jan CLI (release, platform-aware) → src-tauri/resources/bin/jan[.exe] build-cli: ifeq ($(shell uname -s),Darwin) - cd src-tauri && cargo build --release --features cli --bin jan --target aarch64-apple-darwin - cd src-tauri && cargo build --release --features cli --bin jan --target x86_64-apple-darwin + cd src-tauri && cargo build --release --features cli --bin jan-cli --target aarch64-apple-darwin + cd src-tauri && cargo build --release --features cli --bin jan-cli --target x86_64-apple-darwin lipo -create \ - src-tauri/target/aarch64-apple-darwin/release/jan \ - src-tauri/target/x86_64-apple-darwin/release/jan \ - -output src-tauri/resources/bin/jan - chmod +x src-tauri/resources/bin/jan + src-tauri/target/aarch64-apple-darwin/release/jan-cli \ + src-tauri/target/x86_64-apple-darwin/release/jan-cli \ + -output src-tauri/resources/bin/jan-cli + chmod +x src-tauri/resources/bin/jan-cli mkdir -p src-tauri/target/universal-apple-darwin/release - cp src-tauri/resources/bin/jan src-tauri/target/universal-apple-darwin/release/jan + cp src-tauri/resources/bin/jan-cli src-tauri/target/universal-apple-darwin/release/jan-cli else ifeq ($(OS),Windows_NT) - cd src-tauri && cargo build --release --features cli --bin jan - cp src-tauri/target/release/jan.exe src-tauri/resources/bin/jan.exe + cd src-tauri && cargo build --release --features cli --bin jan-cli + cp src-tauri/target/release/jan-cli.exe src-tauri/resources/bin/jan-cli.exe else - cd src-tauri && cargo build --release --features cli --bin jan - cp src-tauri/target/release/jan src-tauri/resources/bin/jan + cd src-tauri && cargo build --release --features cli --bin jan-cli + cp src-tauri/target/release/jan-cli src-tauri/resources/bin/jan-cli endif # Debug build for local dev (faster, native arch only) build-cli-dev: mkdir -p src-tauri/resources/bin - cd src-tauri && cargo build --features cli --bin jan - install -m755 src-tauri/target/debug/jan src-tauri/resources/bin/jan + cd src-tauri && cargo build --features cli --bin jan-cli + install -m755 src-tauri/target/debug/jan-cli src-tauri/resources/bin/jan-cli # Build build: install-and-build install-rust-targets diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index c75ef3703..d94cfc5bc 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -8,21 +8,17 @@ repository = "https://github.com/janhq/jan" edition = "2021" rust-version = "1.77.2" resolver = "2" -default-run = "jan-app" +default-run = "Jan" [lib] name = "app_lib" crate-type = ["staticlib", "cdylib", "rlib"] [[bin]] -name = "jan" -path = "src/bin/jan.rs" +name = "jan-cli" +path = "src/bin/jan-cli.rs" required-features = ["cli"] -[[bin]] -name = "jan-app" -path = "src/main.rs" - [features] default = [ "tauri/wry", @@ -60,7 +56,7 @@ test-tauri = [ "tauri/test", "desktop", ] -cli = ["dep:clap", "dep:env_logger", "dep:dialoguer", "dep:indicatif", "dep:console"] +cli = ["dep:env_logger", "dep:dialoguer", "dep:indicatif", "dep:console"] [build-dependencies] tauri-build = { version = "2.0.2", features = [] } @@ -125,12 +121,11 @@ hostname = "0.4" base64 = "0.22" tokio-tungstenite = { version = "0.24", features = ["native-tls"] } glob = "0.3" -clap = { version = "4", features = ["derive"], optional = true } +clap = { version = "4", features = ["derive"] } dialoguer = { version = "0.11", optional = true } env_logger = { version = "0.11", optional = true } indicatif = { version = "0.17", optional = true } console = { version = "0.15", optional = true } -reqwest = { version = "0.12", features = ["json", "stream"], optional = true } bollard = { version = "0.18", optional = true } [dependencies.tauri] diff --git a/src-tauri/src/bin/jan.rs b/src-tauri/src/bin/jan-cli.rs similarity index 100% rename from src-tauri/src/bin/jan.rs rename to src-tauri/src/bin/jan-cli.rs diff --git a/src-tauri/src/core/system/commands.rs b/src-tauri/src/core/system/commands.rs index f3b599506..6f62229da 100644 --- a/src-tauri/src/core/system/commands.rs +++ b/src-tauri/src/core/system/commands.rs @@ -358,7 +358,8 @@ pub fn check_jan_cli_installed() -> CliInstallStatus { /// Install order (Unix): `/usr/local/bin` (writable probe), then `~/.local/bin`. /// Windows: `%LOCALAPPDATA%\Programs\Jan\` pub fn install_jan_cli_sync(app_handle: &AppHandle) -> Result { - let bin_name = if cfg!(windows) { "jan.exe" } else { "jan" }; + let bin_name = if cfg!(windows) { "jan-cli.exe" } else { "jan-cli" }; + let dest_bin_name = if cfg!(windows) { "jan.exe" } else { "jan" }; let bundled = app_handle .path() .resource_dir() @@ -372,7 +373,7 @@ pub fn install_jan_cli_sync(app_handle: &AppHandle) -> Result