103 Commits

Author SHA1 Message Date
Huakun
70f7d4131e
[feat] Improve list view with fuse search and virtual list (#215)
* chore: comment out auto install for on boarding, its behavior and speed is unpredictable

* fix: clear action when ui template exits

* fix: update extension command search store references

* feat(ui): implement virtual list with advanced search and section handling

- Add @tanstack/svelte-virtual for efficient list rendering
- Integrate Fuse.js for advanced search across list items and sections
- Create dynamic virtual list with support for section headers
- Enhance list view with flexible search and filtering capabilities
- Add new types and components for virtual list management

* chore(desktop): bump package version to 0.1.29
2025-02-28 07:47:09 -05:00
Huakun
97cd20906f
Feature: add extension api (hide and paste) (#210)
* feat: add paste API to extension API

* feat(desktop): enhance clipboard and hotkey utilities

- Add `hideAndPaste` utility function to simplify window hiding and clipboard pasting
- Adjust key press and sleep timings for more reliable input simulation
- Implement window focus listener in clipboard extension
- Bind input element reference for automatic focus management

* feat(permissions): enhance clipboard permission handling

- Update clipboard permission schema to include paste permission
- Modify clipboard API to check for paste permission before executing
- Refactor permission map and schema for more flexible permission management

* feat(desktop): refactor extension command search and rendering

- Add `svelte-inspect-value` for debugging
- Implement new `ExtCmds` component to replace `ExtCmdsGroup`
- Enhance extension command search with separate Fuse.js instances for installed and dev extensions
- Simplify extension command filtering and rendering logic
- Add derived stores for extension commands with improved type safety

* feat(desktop): improve extension command search filtering

* bump @kksh/api version

* feat(permissions): add clipboard paste permission description
2025-02-26 04:47:43 -05:00
Huakun
a92c266d32
Feature: fine grain kill API for extension (#201)
* upgrade tauri-plugin-shellx

* feat(shell): add killPid method to shell API with new permission

* fix: extension new window

* feat(shell): enhance process management and logging in extensions

- Add debug logging for extension process events
- Implement process tracking in UI worker
- Update shell API to support custom process recording
- Modify extension template to demonstrate process spawning
- Refactor shell command handling with improved error handling

* Add killPid extension API to @kksh/api

* chore(deps): update tauri-plugin-shellx-api to version 2.0.15

* pnpm lock

* chore(deps): update dependencies and lock file

- Upgrade ESLint to version 9.21.0
- Update @types/bun to version 1.2.3
- Bump various development dependencies
- Reorganize package.json dependencies in ui package

* chore(deps): update SvelteKit template dependencies

- Add @eslint/js version 9.21.0
- Update package.json dependency order
- Sync pnpm-lock.yaml with package.json changes

* chore: add eslint to desktop

* chore(deps): remove local tauri-plugin-shellx and use published version 2.0.15

* bump desktop to 0.1.28
2025-02-26 02:06:06 -05:00
Huakun
66135624b9
feat(desktop) Improve search (#202)
* feat: add lockHideOnBlur to prevent app hiding during dialogs

* feat: add Fuse.js for advanced search filtering across app sections

* chore: update .prettierignore and clean up imports in AddDevExtForm
2025-02-25 10:21:20 -05:00
Luca Giannini
8940d25245
fix: only show apps with name (#194)
* only show apps with name

* format

* update pnpm lock

---------

Co-authored-by: Huakun Shen <huakun.shen@huakunshen.com>
2025-02-22 09:54:06 -05:00
Huakun
441abbcdae
Fix: clipboard paste timing (#191)
* fix(desktop): improve hotkey and paste functionality with refined key press timing

* fix(clipboard): streamline clipboard handling for macOS and add TODO for Windows/Linux support

* removed a comment
2025-02-22 07:21:15 -05:00
Huakun
330678cb45
Fix: linux app launch (#190)
* fix(desktop): update version to 0.1.26 and enhance app execution handling for Linux

* fix(desktop): remove redundant app path display in AppsCmds component
2025-02-22 05:36:53 -05:00
Huakun
52919b8d2f
fix(desktop): set macOS accessory activation policy to Accessory (#189) 2025-02-22 05:14:04 -05:00
Huakun
ed20f9a142
Fix: linux extension loading (#188)
* fix: change escape key behavior to navigate home instead of back

* feat: load custom ui extension with http server on Linux

Linux now uses the same loading approach as Windows due to a bug https://github.com/tauri-apps/tauri/issues/12767

* feat: add tauri-plugin-system-info-api dependency to deno.lock
2025-02-22 04:36:44 -05:00
Luca Giannini
872b601338
crosslink issue on linux, and cleanup entire dir (#177)
* crosslink issue on linux, and cleanup entire dir

* moved copy_dir_all to rust

* using dircpy instead of diy due to complications

* refactor: move copy_dir_all to jarvis plugin

All commands are in jarvis plugin, this is more organized.
And this API will be exposed to extensions.

---------

Co-authored-by: Huakun Shen <huakun.shen@huakunshen.com>
2025-02-22 02:58:41 -05:00
Huakun
a0bd2d8573
Feature: enable clipboard paste for windows and linux (#185)
* feat(shell): add hidden window style to PowerShell script execution

Modify PowerShell script execution to run with hidden window style in both TypeScript API and Rust plugin to prevent visible command windows

* feat(desktop): implement cross-platform paste functionality in clipboard extension

* feat(desktop): enhance hotkey functionality with registration and update methods

* fix(desktop): remove unnecessary border from command root styling

* feat(desktop): add cross-platform paste support for clipboard extension

- Import Tauri OS plugin to detect platform
- Implement platform-specific paste methods for macOS, Windows, and Linux
- Add error handling for unsupported platforms
- Center windows in Tauri configuration

* feat(desktop): extend global key handler to support Linux control key for settings navigation
2025-02-22 00:41:35 -05:00
Luca Giannini
ec951bfc80
add toggle cli command to show/hide kunkun (#176)
* add toggle cli command

* cleaner

* keep unused imports
2025-02-21 06:28:08 -05:00
Huakun
4d90e2cf29
Feature: watch manifest and reload for dev extension (#181)
* feat(desktop): add file system watch support for extensions

- Enable file system watching for package.json and test files
- Update Cargo.toml to include file system watch feature
- Add console logging for file system events

* feat(desktop): add extension auto reload mechanism for dev extensions

- Implement `reloadExtension` method in extensions store
- Add Tauri event for reloading a single extension
- Update UI worker to watch package.json and trigger extension reload
- Add Linux dependencies for building from source in CONTRIBUTING.md
2025-02-21 05:59:25 -05:00
Huakun
8a9f6bcb09
UI Update (#179)
* feat: add publisher link to extension detail

* fix: improve IconMultiplexer and StoreExtDetail component rendering

* feat: add published date to extension details view

* chore: add moment.js and clean up imports in StoreExtDetail

* fix: support cloudflare worker

Otherwise cloudflare worker gets html instead of json

* refactor: move AppsCmds component to desktop app

* bump: version to 0.1.1

* fix: package.json fetching cors error

* fix: improve files field validation in verify command

* feat: make dropdown width in main search input dynamic

* feat(ui): add install button for web extension store

* update submodules

* format

* feat(desktop): disable clipboard auto paste for windows and linux

They are not implemented yet, current code only works for mac
2025-02-21 05:59:09 -05:00
Huakun
07c62e236c
feat(desktop): enhance clipboard extension with auto-paste functionality (#171)
- Add writeToClipboard utility function to handle different clipboard content types
- Implement paste() method to simulate keyboard paste action
- Update onItemSelected to hide app and auto-paste selected clipboard item
- Add core:app:allow-app-hide capability to support app hiding
2025-02-20 04:02:50 -05:00
Huakun Shen
ac6e2c3f78
chore(desktop): bump version to 0.1.24 2025-02-19 09:00:19 -05:00
Huakun Shen
b986121708
feat(desktop): improve app config loading,
Merge loaded config with default config
2025-02-19 08:58:29 -05:00
Huakun
369a9719fd
feat(desktop): implement quick install hotkey for store (#164) 2025-02-19 08:47:43 -05:00
Huakun
ba36b6226a
feat(desktop): expand file system access permissions to all paths, to be able to read from other drives (#138) 2025-02-18 03:56:48 -05:00
Huakun
eeeeaf1822
feat(desktop): add localized drag and drop strike separator text (#139)
* feat(desktop): add localized drag and drop strike separator text

* chore(desktop): format code and remove trailing whitespaces
2025-02-18 03:17:19 -05:00
Huakun Shen
71b88e0a22
feat(desktop): add autostart (#137)
* feat(desktop): add Tauri autostart plugin and update launch at login settings

* chore(ci): update beta build workflow defaults and matrix generation
2025-02-17 21:51:44 -05:00
Huakun Shen
513cf16d72
Improve CI (enable beta build for all PR) (#134)
* chore(desktop): configure publish workflow and update Tauri configuration

* chore(ci): enable beta build on develop pull requests

* chore(ci): add develop branch to CI workflow triggers

* chore(ci): enable default platform builds for beta workflow
2025-02-17 19:10:09 -05:00
Huakun Shen
bbee92fa9f
chore(desktop): set minimum macOS system version to 10.15 (#125) 2025-02-16 04:18:51 -05:00
Nhan. Le Cong
162a8dd685
feat(i18n ): add vietnamese (#124) 2025-02-16 02:44:27 -05:00
Huakun Shen
03450e8a12 feat: add Português to settings 2025-02-14 00:28:38 -05:00
Nicolas Vyčas Nery
e36237facd
Feature: i18n - Added Portuguese translations (#108) 2025-02-14 00:20:38 -05:00
Huakun Shen
4221b574c9
fix(desktop): global hot key register during init must be after appConfig.init (#113) 2025-02-13 23:13:35 -05:00
Huakun Shen
474b0f59b3
revert: PR #103
@kksh/svelte5@0.1.16 seems to cause errors
2025-02-13 03:18:34 -05:00
Huakun Shen
6bd7d71df6
Fix: svelte template (#103)
* chore: bump @kksh/svelte5 to 0.1.16 and update dependencies

* chore: bump create-kunkun package version to 0.1.46

* chore: update pnpm lock
2025-02-12 09:26:11 -05:00
Huakun Shen
bdf99ee196
perf(splashscreen): make splashscreen prerenderred, slightly faster (#98) 2025-02-11 08:29:47 -05:00
Huakun Shen
183af3fb84
fix(desktop): update deeplink route for extension store (#100)
* fix(desktop): update deeplink route for extension store

* chore(desktop): bump package version to 0.1.21
2025-02-11 08:29:36 -05:00
Huakun Shen
839bad6751
Feature: fix extension delete (#96)
* chore: improve database and extension handling

- Remove debug console log in extension uninstall
- Add ON DELETE CASCADE to extension-related foreign keys
- Enable foreign key constraints in database connection
- Update database file extensions from .db to .sqlite
- Modify command value generation for better identification

* fix: add small delay to onboarding page navigation

Without delay the page switch won't be triggered when window first loads
2025-02-07 04:43:24 -05:00
Huakun Shen
7b6c0934ab
Feature: add helper api (#95)
* feat: add helper API for installation guides and update UI components

- Implement helperAPI with methods to navigate to installation guides for Deno, FFmpeg, and Homebrew
- Update extension and help page components to use new helper API
- Modify command filtering in builtin commands
- Adjust page navigation in help pages to use goHome instead of goBack
- Remove unused imports and clean up components

* chore: bump @kksh/api to 0.1.2 and update dependent packages
2025-02-07 02:41:50 -05:00
Huakun Shen
490368428e
UI (#94)
* feat: add publisher link to extension detail

* fix: improve IconMultiplexer and StoreExtDetail component rendering

* feat: add published date to extension details view

* chore: add moment.js and clean up imports in StoreExtDetail

* fix: support cloudflare worker

Otherwise cloudflare worker gets html instead of json

* refactor: move AppsCmds component to desktop app

* bump: version to 0.1.1

* fix: package.json fetching cors error

* fix: improve files field validation in verify command
2025-02-07 01:26:56 -05:00
Huakun Shen
f37605f9a2
Refactor: rename api subpackage (#93)
* refactor(api): rename ui subpackage name

* refactor(api): update import paths for template UI schemas

* chore: update dependencies and bump package versions

* chore(api): bump package version to 0.1.1

* refactor(api): rename IUiIframe to IUiCustom and related types

* format
2025-02-06 21:54:35 -05:00
Huakun Shen
872bcfdfd1
Feature: app launcher (#92)
* feat: implement app loader (has performance problem)

* feat: enhance command filtering and search functionality

- Implement command score filtering for various command types
- Add filtered stores for quick links, system commands, and extensions
- Update command components to use new filtering mechanism
- Improve search experience by dynamically filtering results
- Refactor command value handling to use direct name matching
2025-02-06 20:29:56 -05:00
Huakun Shen
46d6872614
refactor: Command class rename (#90)
* refactor: rename WorkerExtension to TemplateUiCommand, HeadlessWorkerExtension to HeadlessCommand

* ci: update npm publish workflow to include refactor branch

* ci: add push trigger for JSR publish workflow and bump API package version

* ci: add pnpm setup to npm publish workflow

* chore: add repository field to package.json for @kksh/api
2025-02-05 12:16:33 -05:00
Huakun Shen
798cc773e5
Feature: upgrade kkrpc (#84)
* feat: upgrade kkrpc and tauri-api-adapter

* feat: update package.json exports for @kksh/api

* chore: bump @kksh/api package version to 0.0.56

* chore: bump @kksh/api version to 0.0.56
2025-01-31 05:07:04 -05:00
Huakun Shen
33e4451be2
Fix: action panel (#83)
* fix: change action trigger hotkey on win and linux from control + k to alt + k

* chore: Update macOS build matrix to use macos-13 instead of macos-12

* feat: improve action panel, disable actions vimBindings
2025-01-29 18:56:16 -05:00
Huakun Shen
0bb59e4f66
Fix: ext window loading (#82)
* fix: extension new window loading with localStorage

* fix: extension loading in new window

* upgrade: @kksh/svelte5

* refactor: update SideBar import to Sidebar across desktop app

* fix: safely remove test directories with existsSync check

* feat: add open preference command with platform-specific shortcut

* chore: clean up vite config trailing comma

* fix: iframe custom ext loading

* fix: fix template extension loading

* feat: add progress bar to extension form and list views

* feat: add optional description to form view template
2025-01-28 09:44:46 -05:00
Huakun Shen
c93ebd895e
Fix: ext window loading (#81)
* fix: extension new window loading with localStorage

* fix: extension loading in new window

* upgrade: @kksh/svelte5

* refactor: update SideBar import to Sidebar across desktop app

* fix: safely remove test directories with existsSync check

* feat: add open preference command with platform-specific shortcut

* chore: clean up vite config trailing comma
2025-01-28 04:58:54 -05:00
Huakun Shen
b7b81013ba
chore: bump desktop app version to 0.1.19 2025-01-27 17:34:55 -05:00
Huakun Shen
e719176b9c
Fix: form submit (#76)
* fix: worker template extension form submit

* bump @kksh/api

* update api package version
2025-01-24 02:37:36 -05:00
Huakun Shen
0cc744592f
Feature: add author, size, readme display for extension store page (#74)
* fix: update email field in KunkunExtManifest to be optional and nullable

* refactor: update Supabase type generation command and enhance database types structure

- Changed the Supabase type generation command to include a specific project reference and output path.
- Refactored the database types in `database.types.ts` for improved readability and added new fields, including `extension_state` and `package_json` in the `ext_publish` table.
- Ensured consistent formatting across type definitions for better maintainability.

* feat: add optional README path to ExtPackageJson and enhance tests for README retrieval

* feat: add optional readmeContent to ExtensionPublishValidationData and retrieve README in validateJsrPackageAsKunkunExtension

* feat: add optional readme field to database types for improved package metadata

* feat: enhance StoreExtDetail to display package metadata including author and contributors

- Added packageJson prop to StoreExtDetail for improved extension metadata display.
- Implemented rendering of author and contributors from packageJson.
- Integrated README content display in StoreExtDetail if available.
- Updated +page.svelte to parse and provide packageJson data using valibot for validation.

* feat: enhance TauriLink component to support conditional rendering based on Tauri environment

- Added detection for Tauri environment using the browser variable.
- Updated the TauriLink component to render a button when in Tauri, and an anchor tag for external links otherwise.
- Improved user experience by ensuring appropriate link behavior based on the application context.

* feat: add unpacked size to npm registry

* feat: replace size in ext_publish table to tarball_size, add unpacked_size (only applicable to npm)

* feat: add pretty-bytes dependency and update debug package version

- Added `pretty-bytes` package with version 6.1.1 to `package.json`.
- Updated `debug` package to use `supports-color@9.4.0` in `pnpm-lock.yaml` for improved compatibility.

* feat: add tarball_size field to database types for improved package metadata

* feat: add readme fetching for npm registry, readme from github

* fix: remove console.log from NPM API test to clean up output

* style: update extension store details

* style: update README section in StoreExtDetail component for improved styling

* fix: update command input placeholder text in English, Russian, and Chinese translations for clarity

* chore: bump version to 0.1.18 in package.json

* fix: lint
2025-01-23 07:07:29 -05:00
Asqar Arslanov
f05ffdfcfd feat: update russian locale 2025-01-20 08:17:51 -05:00
Huakun Shen
5250a25283
Fix: Publish CI (#71)
* fix: try to fix desktop app publish

* chore: update beta-build workflow for Ubuntu by removing redundant protobuf installation and adding libxdo-dev

* fix: ensure data directory creation is conditional to avoid errors

- Updated setup.ts to check for the existence of the "./src/data" directory before attempting to create it, preventing potential errors during execution.

* fix: lint error
2025-01-20 05:48:09 -05:00
Huakun Shen
b115e0a574
Feature: i18n (#70)
* chore: add @inlang/paraglide-sveltekit to @kksh/ui

* feat: add i18n to desktop

* fix: add shrink-0 class to mode-toggle button for consistent styling

* feat: add i18n to settings, not working yet

* feat: i18 working

* feat: add i18n for about

* feat: migrate all goto to use i18n.resolveRoute

* feat: finish translating settings to chinese

* feat: add Chinese i18n for troubleshooters

* feat: add russian translation (by AI)

* format: run prettier

* format

* chore: update .prettierignore to exclude src/lib/paraglide/**
2025-01-19 23:22:15 -05:00
Huakun Shen
402208e95a
Feature: license check (#67)
* feat: add required license field to manifest

* chore: add license MIT to all templates

* feat: add license check to jsr and npm validation

* fix: supabase export

split every item into its own subexport for better debugability

* fix: supabase imports

* feat: hide app when escape is pressed

* fix: update package version in api test from 0.0.6 to 0.0.20

* fix: update test for kunkun extension with new version and commit details

* fix: update kunkun extension test to use version 0.0.4

* fix: update kunkun extension test to reflect new version 0.0.20 and updated commit details

* feat: display downloads in extension details

* feat: add downloads display to store
2025-01-18 22:55:43 -05:00
Huakun Shen
7a3b6f3983
fix: listview action menu (#64)
* refactor: add a valibot schema for package registry validation

* fix: list view action menu

* chore: bump version to 0.1.16 in package.json

* refactor: extract supabase package from api

* ci: remove NODE_OPTIONS from build step and improve error handling in getLatestNpmPkgVersion function
2025-01-18 02:26:23 -05:00
Huakun Shen
e4d1441d73
Feature: support npm extension publish (#62)
* feat: npm package registry API

* refactor: move package registry files

* refactor: move jsr and npm api to a new package

* ci: add verify-package-export

* test: implement tests for npm package validation as kunkun extension

* chore: add missing dep for package-registry pkg

* feat: make provenance an optional input for npm validation function

* ci: add verify-package-export as dev dep to 2 packages that uses it

* feat: add rekor log API, and return commit from jsr & npm package in validation function

* feat: return github repo info from validation function of jsr and npm

* feat: extend ExtPublishMetadata to include optional GitHub repository details

* fix: eslint for ui package

* refactor: format desktop

* fix: eslint errors in desktop

* format: all code

* ci: add lint to CI

* feat: add more info to validation function returned from package-registry npm jsr

* pnpm lock

* feat: add 2 more variables to supabase extension metadata model

* format

* feat: add provenance card

* feat: add workflow path to ExtPublishMetadata and jsr/npm validation

* update provenance

* feat: make store extension and provenance more responsive

* chore: add globals to ui package

* fix: remove unnecessary any to fix eslint

* fix: svg sanitize

* chore: add @typescript-eslint/eslint-plugin to ui package to fix eslint

* fix: update eslint dep to fix error

* fix: try fixing eslint

* fix: update eslint configuration for improved compatibility

* chore: add globals package and update README for Discord invite

* fix: update eslint rules and upgrade typescript-eslint dependency

- Disabled additional eslint rules to resolve errors:
  - @typescript-eslint/no-unused-expressions
  - svelte/no-inner-declarations
- Upgraded typescript-eslint from version 8.19.1 to 8.20.0 for improved compatibility.

* update pnpm lock

---------

Co-authored-by: Huakun Shen <huaukun.shen@huakunshen.com>
2025-01-16 06:00:07 -05:00