feat(native): implement Phase 5 AppleScript handlers and remote control
- Implemented specialized PowerPoint/Keynote handlers with auto-focus and slideshow start. - Added native:control-presentation for remote navigation (next/prev/stop). - Added native:list-tools handler for self-documenting the bridge API. - Added a comprehensive project README.md.
This commit is contained in:
@@ -7,22 +7,34 @@ export interface SeedConfig {
|
||||
}
|
||||
|
||||
export interface AetherNativeBridge {
|
||||
getSeedConfig: () => Promise<SeedConfig | null>;
|
||||
getDeviceConfig: () => Promise<any>;
|
||||
getJWT: () => Promise<string | null>;
|
||||
log: (message: string) => void;
|
||||
get_seed_config: () => Promise<SeedConfig | null>;
|
||||
get_device_config: () => Promise<any>;
|
||||
get_jwt: () => Promise<string | null>;
|
||||
get_device_info: () => Promise<any>;
|
||||
|
||||
// Shell Handlers
|
||||
openFolder: (path: string) => Promise<{success: boolean, error?: string}>;
|
||||
runCommand: (cmd: string) => Promise<{success: boolean, stdout: string, stderr: string, error?: string}>;
|
||||
launchFile: (path: string) => Promise<{success: boolean, error?: string}>;
|
||||
open_folder: (path: string) => Promise<{success: boolean, error?: string}>;
|
||||
run_cmd: (args: {cmd: string, timeout?: number}) => Promise<{success: boolean, stdout: string, stderr: string, error?: string}>;
|
||||
run_cmd_sync: (args: {cmd: string}) => Promise<{success: boolean, stdout: string, error?: string, stderr?: string}>;
|
||||
run_osascript: (script: string) => Promise<{success: boolean, stdout: string, stderr: string, error?: string}>;
|
||||
kill_processes: (args: {process_name_li: string[]}) => Promise<{success: boolean, results: any[]}>;
|
||||
open_local_file_v2: (path: string) => Promise<{success: boolean, error?: string}>;
|
||||
|
||||
// File/Cache Handlers
|
||||
checkCache: (args: {cacheRoot: string, hash: string}) => Promise<boolean>;
|
||||
downloadToCache: (args: {url: string, cacheRoot: string, hash: string, apiKey: string}) => Promise<{success: boolean, path?: string, error?: string}>;
|
||||
launchFromCache: (args: {cacheRoot: string, hash: string, tempRoot: string, filename: string}) => Promise<{success: boolean, error?: string}>;
|
||||
check_cache: (args: {cache_root: string, hash: string, hash_prefix_length?: number}) => Promise<boolean>;
|
||||
download_to_cache: (args: {url: string, cache_root: string, hash: string, api_key: string, account_id?: string, hash_prefix_length?: number}) => Promise<{success: boolean, error?: string}>;
|
||||
launch_from_cache: (args: {cache_root: string, hash: string, temp_root: string, filename: string, hash_prefix_length?: number}) => Promise<{success: boolean, error?: string}>;
|
||||
|
||||
// Specialized Presentation Handlers (Phase 5)
|
||||
launch_presentation: (args: {path: string, app?: string}) => Promise<{success: boolean, error?: string, stdout?: string, stderr?: string}>;
|
||||
control_presentation: (args: {app: 'powerpoint' | 'keynote', action: 'next' | 'prev' | 'start' | 'stop'}) => Promise<{success: boolean, error?: string, stdout?: string, stderr?: string}>;
|
||||
|
||||
// Self-Documentation
|
||||
list_tools: () => Promise<Array<{name: string, description: string, params: object}>>;
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
aetherNative: AetherNativeBridge;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user