Update SkillsGrid and transport logic to utilize QuickJS runtime

- Changed the runtime specification in SkillsGrid from 'v8' to 'quickjs'.
- Updated documentation in the SkillRuntime class to reflect the transition to QuickJS.
- Modified transport logic to clarify that reverse RPC handling is now managed by QuickJS bridge globals, ensuring compatibility with the new runtime.
This commit is contained in:
Steven Enamakel
2026-02-06 02:06:45 +05:30
parent 556107b31c
commit 6b7aaa1375
3 changed files with 10 additions and 13 deletions
+1 -1
View File
@@ -190,7 +190,7 @@ function SkillActionButton({
name: skill.name,
version: '0.0.0',
description: skill.description,
runtime: 'v8',
runtime: 'quickjs',
});
// If skill has setup, the manager will set setup_required status
// and the grid will re-render with the "Setup" button
+1 -1
View File
@@ -53,7 +53,7 @@ export class SkillRuntime {
/**
* Send skill/load with manifest + data dir.
* With V8, loading is handled by the Rust engine during start_skill,
* Loading is handled by the Rust engine during start_skill,
* so this sends a no-op skill/load RPC for protocol compatibility.
*/
async load(additionalParams?: Record<string, unknown>): Promise<void> {
+8 -11
View File
@@ -1,13 +1,10 @@
/**
* JSON-RPC 2.0 transport over Tauri IPC commands.
*
* Routes JSON-RPC requests to the Rust V8 runtime engine via
* `invoke('runtime_rpc', ...)`. Replaces the previous stdin/stdout
* subprocess transport while keeping the same public API.
*
* Reverse RPC (state/get, state/set, data/read, data/write) is now
* handled by bridge globals inside the V8 engine, so the transport
* no longer needs to handle reverse RPC from the skill.
* Routes JSON-RPC requests to the Rust QuickJS runtime engine via
* `invoke('runtime_rpc', ...)`. Reverse RPC (state/get, state/set,
* data/read, data/write) is handled by bridge globals inside the
* QuickJS engine.
*/
import { invoke } from '@tauri-apps/api/core';
@@ -23,16 +20,16 @@ export class SkillTransport {
/**
* Set a handler for reverse RPC calls from the skill process.
* With V8, reverse RPC is handled by bridge globals, so this
* With QuickJS, reverse RPC is handled by bridge globals, so this
* is kept for API compatibility but is a no-op.
*/
onReverseRpc(_handler: ReverseRpcHandler): void {
// No-op: V8 bridge globals handle state/data directly
// No-op: QuickJS bridge globals handle state/data directly
}
/**
* Initialize the transport for a skill.
* With V8, the skill process is managed by the Rust runtime engine,
* With QuickJS, the skill process is managed by the Rust runtime engine,
* so this just stores the skill ID for routing RPC calls.
*
* @param skillId - The skill ID to route requests to.
@@ -100,7 +97,7 @@ export class SkillTransport {
}
/**
* Stop the transport. With V8, this is a no-op since the
* Stop the transport. With QuickJS, this is a no-op since the
* Rust engine manages skill lifecycle. Use runtime_stop_skill instead.
*/
async kill(): Promise<void> {