@practicalkit/plugin-sdk 0.0.2
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 +5 -0
- package/dist/src/PracticalKitSdk.d.ts +184 -0
- package/dist/src/PracticalKitSdk.d.ts.map +1 -0
- package/dist/src/PracticalKitSdk.js +230 -0
- package/dist/src/PracticalKitSdk.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/keyboard/KeyboardShortcutForwarder.d.ts +18 -0
- package/dist/src/keyboard/KeyboardShortcutForwarder.d.ts.map +1 -0
- package/dist/src/keyboard/KeyboardShortcutForwarder.js +36 -0
- package/dist/src/keyboard/KeyboardShortcutForwarder.js.map +1 -0
- package/dist/src/keyboard/index.d.ts +2 -0
- package/dist/src/keyboard/index.d.ts.map +1 -0
- package/dist/src/keyboard/index.js +2 -0
- package/dist/src/keyboard/index.js.map +1 -0
- package/dist/src/llm/ToolRegistry.d.ts +49 -0
- package/dist/src/llm/ToolRegistry.d.ts.map +1 -0
- package/dist/src/llm/ToolRegistry.js +126 -0
- package/dist/src/llm/ToolRegistry.js.map +1 -0
- package/dist/src/logs/channel/IFrameLogChannelAdapter.d.ts +8 -0
- package/dist/src/logs/channel/IFrameLogChannelAdapter.d.ts.map +1 -0
- package/dist/src/logs/channel/IFrameLogChannelAdapter.js +34 -0
- package/dist/src/logs/channel/IFrameLogChannelAdapter.js.map +1 -0
- package/dist/src/logs/channel/ILogChannelAdapter.d.ts +5 -0
- package/dist/src/logs/channel/ILogChannelAdapter.d.ts.map +1 -0
- package/dist/src/logs/channel/ILogChannelAdapter.js +2 -0
- package/dist/src/logs/channel/ILogChannelAdapter.js.map +1 -0
- package/dist/src/logs/channel/LogChannel.d.ts +21 -0
- package/dist/src/logs/channel/LogChannel.d.ts.map +1 -0
- package/dist/src/logs/channel/LogChannel.js +41 -0
- package/dist/src/logs/channel/LogChannel.js.map +1 -0
- package/dist/src/logs/outputs/types.d.ts +18 -0
- package/dist/src/logs/outputs/types.d.ts.map +1 -0
- package/dist/src/logs/outputs/types.js +2 -0
- package/dist/src/logs/outputs/types.js.map +1 -0
- package/dist/src/messages/IFrameClient.d.ts +33 -0
- package/dist/src/messages/IFrameClient.d.ts.map +1 -0
- package/dist/src/messages/IFrameClient.js +88 -0
- package/dist/src/messages/IFrameClient.js.map +1 -0
- package/dist/src/messages/IFrameMessageBus.d.ts +10 -0
- package/dist/src/messages/IFrameMessageBus.d.ts.map +1 -0
- package/dist/src/messages/IFrameMessageBus.js +24 -0
- package/dist/src/messages/IFrameMessageBus.js.map +1 -0
- package/dist/src/messages/base/index.d.ts +8 -0
- package/dist/src/messages/base/index.d.ts.map +1 -0
- package/dist/src/messages/base/index.js +9 -0
- package/dist/src/messages/base/index.js.map +1 -0
- package/dist/src/messages/document/index.d.ts +5 -0
- package/dist/src/messages/document/index.d.ts.map +1 -0
- package/dist/src/messages/document/index.js +5 -0
- package/dist/src/messages/document/index.js.map +1 -0
- package/dist/src/messages/document/requestContent/message.schemas.d.ts +34 -0
- package/dist/src/messages/document/requestContent/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/document/requestContent/message.schemas.js +21 -0
- package/dist/src/messages/document/requestContent/message.schemas.js.map +1 -0
- package/dist/src/messages/document/save/index.d.ts +2 -0
- package/dist/src/messages/document/save/index.d.ts.map +1 -0
- package/dist/src/messages/document/save/index.js +2 -0
- package/dist/src/messages/document/save/index.js.map +1 -0
- package/dist/src/messages/document/save/message.schemas.d.ts +34 -0
- package/dist/src/messages/document/save/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/document/save/message.schemas.js +21 -0
- package/dist/src/messages/document/save/message.schemas.js.map +1 -0
- package/dist/src/messages/document/saveRequested/message.schemas.d.ts +41 -0
- package/dist/src/messages/document/saveRequested/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/document/saveRequested/message.schemas.js +28 -0
- package/dist/src/messages/document/saveRequested/message.schemas.js.map +1 -0
- package/dist/src/messages/document/saved/message.schemas.d.ts +39 -0
- package/dist/src/messages/document/saved/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/document/saved/message.schemas.js +26 -0
- package/dist/src/messages/document/saved/message.schemas.js.map +1 -0
- package/dist/src/messages/editor/index.d.ts +2 -0
- package/dist/src/messages/editor/index.d.ts.map +1 -0
- package/dist/src/messages/editor/index.js +2 -0
- package/dist/src/messages/editor/index.js.map +1 -0
- package/dist/src/messages/editor/openFile/message.schemas.d.ts +30 -0
- package/dist/src/messages/editor/openFile/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/editor/openFile/message.schemas.js +17 -0
- package/dist/src/messages/editor/openFile/message.schemas.js.map +1 -0
- package/dist/src/messages/fs/fileChanged/message.schemas.d.ts +10 -0
- package/dist/src/messages/fs/fileChanged/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/fs/fileChanged/message.schemas.js +10 -0
- package/dist/src/messages/fs/fileChanged/message.schemas.js.map +1 -0
- package/dist/src/messages/fs/index.d.ts +3 -0
- package/dist/src/messages/fs/index.d.ts.map +1 -0
- package/dist/src/messages/fs/index.js +3 -0
- package/dist/src/messages/fs/index.js.map +1 -0
- package/dist/src/messages/fs/subscribe/message.schemas.d.ts +54 -0
- package/dist/src/messages/fs/subscribe/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/fs/subscribe/message.schemas.js +27 -0
- package/dist/src/messages/fs/subscribe/message.schemas.js.map +1 -0
- package/dist/src/messages/index.d.ts +15 -0
- package/dist/src/messages/index.d.ts.map +1 -0
- package/dist/src/messages/index.js +29 -0
- package/dist/src/messages/index.js.map +1 -0
- package/dist/src/messages/llm/index.d.ts +148 -0
- package/dist/src/messages/llm/index.d.ts.map +1 -0
- package/dist/src/messages/llm/index.js +124 -0
- package/dist/src/messages/llm/index.js.map +1 -0
- package/dist/src/messages/logs/index.d.ts +26 -0
- package/dist/src/messages/logs/index.d.ts.map +1 -0
- package/dist/src/messages/logs/index.js +24 -0
- package/dist/src/messages/logs/index.js.map +1 -0
- package/dist/src/messages/native/call/message.schemas.d.ts +34 -0
- package/dist/src/messages/native/call/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/native/call/message.schemas.js +22 -0
- package/dist/src/messages/native/call/message.schemas.js.map +1 -0
- package/dist/src/messages/native/index.d.ts +2 -0
- package/dist/src/messages/native/index.d.ts.map +1 -0
- package/dist/src/messages/native/index.js +2 -0
- package/dist/src/messages/native/index.js.map +1 -0
- package/dist/src/messages/plugin/index.d.ts +78 -0
- package/dist/src/messages/plugin/index.d.ts.map +1 -0
- package/dist/src/messages/plugin/index.js +72 -0
- package/dist/src/messages/plugin/index.js.map +1 -0
- package/dist/src/messages/storage/index.d.ts +126 -0
- package/dist/src/messages/storage/index.d.ts.map +1 -0
- package/dist/src/messages/storage/index.js +109 -0
- package/dist/src/messages/storage/index.js.map +1 -0
- package/dist/src/messages/ui/UiChannel.d.ts +68 -0
- package/dist/src/messages/ui/UiChannel.d.ts.map +1 -0
- package/dist/src/messages/ui/UiChannel.js +81 -0
- package/dist/src/messages/ui/UiChannel.js.map +1 -0
- package/dist/src/messages/ui/confirm/index.d.ts +2 -0
- package/dist/src/messages/ui/confirm/index.d.ts.map +1 -0
- package/dist/src/messages/ui/confirm/index.js +2 -0
- package/dist/src/messages/ui/confirm/index.js.map +1 -0
- package/dist/src/messages/ui/confirm/message.schemas.d.ts +39 -0
- package/dist/src/messages/ui/confirm/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/ui/confirm/message.schemas.js +25 -0
- package/dist/src/messages/ui/confirm/message.schemas.js.map +1 -0
- package/dist/src/messages/ui/getState/message.schemas.d.ts +38 -0
- package/dist/src/messages/ui/getState/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/ui/getState/message.schemas.js +21 -0
- package/dist/src/messages/ui/getState/message.schemas.js.map +1 -0
- package/dist/src/messages/ui/index.d.ts +8 -0
- package/dist/src/messages/ui/index.d.ts.map +1 -0
- package/dist/src/messages/ui/index.js +8 -0
- package/dist/src/messages/ui/index.js.map +1 -0
- package/dist/src/messages/ui/setCollapseState/message.schemas.d.ts +33 -0
- package/dist/src/messages/ui/setCollapseState/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/ui/setCollapseState/message.schemas.js +19 -0
- package/dist/src/messages/ui/setCollapseState/message.schemas.js.map +1 -0
- package/dist/src/messages/ui/showContextMenu/message.schemas.d.ts +61 -0
- package/dist/src/messages/ui/showContextMenu/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/ui/showContextMenu/message.schemas.js +37 -0
- package/dist/src/messages/ui/showContextMenu/message.schemas.js.map +1 -0
- package/dist/src/messages/ui/showNotification/message.schemas.d.ts +38 -0
- package/dist/src/messages/ui/showNotification/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/ui/showNotification/message.schemas.js +29 -0
- package/dist/src/messages/ui/showNotification/message.schemas.js.map +1 -0
- package/dist/src/messages/ui/tabsChanged/message.schemas.d.ts +24 -0
- package/dist/src/messages/ui/tabsChanged/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/ui/tabsChanged/message.schemas.js +15 -0
- package/dist/src/messages/ui/tabsChanged/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/createDir/message.schemas.d.ts +30 -0
- package/dist/src/messages/vfs/createDir/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/createDir/message.schemas.js +17 -0
- package/dist/src/messages/vfs/createDir/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/delete/message.schemas.d.ts +30 -0
- package/dist/src/messages/vfs/delete/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/delete/message.schemas.js +17 -0
- package/dist/src/messages/vfs/delete/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/exists/message.schemas.d.ts +34 -0
- package/dist/src/messages/vfs/exists/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/exists/message.schemas.js +21 -0
- package/dist/src/messages/vfs/exists/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/getAbsolutePath/message.schemas.d.ts +33 -0
- package/dist/src/messages/vfs/getAbsolutePath/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/getAbsolutePath/message.schemas.js +20 -0
- package/dist/src/messages/vfs/getAbsolutePath/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/index.d.ts +9 -0
- package/dist/src/messages/vfs/index.d.ts.map +1 -0
- package/dist/src/messages/vfs/index.js +9 -0
- package/dist/src/messages/vfs/index.js.map +1 -0
- package/dist/src/messages/vfs/readDir/message.schemas.d.ts +41 -0
- package/dist/src/messages/vfs/readDir/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/readDir/message.schemas.js +23 -0
- package/dist/src/messages/vfs/readDir/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/readFile/message.schemas.d.ts +31 -0
- package/dist/src/messages/vfs/readFile/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/readFile/message.schemas.js +18 -0
- package/dist/src/messages/vfs/readFile/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/rename/message.schemas.d.ts +31 -0
- package/dist/src/messages/vfs/rename/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/rename/message.schemas.js +18 -0
- package/dist/src/messages/vfs/rename/message.schemas.js.map +1 -0
- package/dist/src/messages/vfs/writeFile/message.schemas.d.ts +31 -0
- package/dist/src/messages/vfs/writeFile/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/vfs/writeFile/message.schemas.js +18 -0
- package/dist/src/messages/vfs/writeFile/message.schemas.js.map +1 -0
- package/dist/src/messages/workspace/changed/message.schemas.d.ts +9 -0
- package/dist/src/messages/workspace/changed/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/workspace/changed/message.schemas.js +9 -0
- package/dist/src/messages/workspace/changed/message.schemas.js.map +1 -0
- package/dist/src/messages/workspace/getDetails/message.schemas.d.ts +39 -0
- package/dist/src/messages/workspace/getDetails/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/workspace/getDetails/message.schemas.js +22 -0
- package/dist/src/messages/workspace/getDetails/message.schemas.js.map +1 -0
- package/dist/src/messages/workspace/index.d.ts +4 -0
- package/dist/src/messages/workspace/index.d.ts.map +1 -0
- package/dist/src/messages/workspace/index.js +4 -0
- package/dist/src/messages/workspace/index.js.map +1 -0
- package/dist/src/messages/workspace/open/message.schemas.d.ts +29 -0
- package/dist/src/messages/workspace/open/message.schemas.d.ts.map +1 -0
- package/dist/src/messages/workspace/open/message.schemas.js +16 -0
- package/dist/src/messages/workspace/open/message.schemas.js.map +1 -0
- package/dist/src/namespaces/DocumentNamespace.d.ts +56 -0
- package/dist/src/namespaces/DocumentNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/DocumentNamespace.js +129 -0
- package/dist/src/namespaces/DocumentNamespace.js.map +1 -0
- package/dist/src/namespaces/EditorNamespace.d.ts +11 -0
- package/dist/src/namespaces/EditorNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/EditorNamespace.js +18 -0
- package/dist/src/namespaces/EditorNamespace.js.map +1 -0
- package/dist/src/namespaces/FsNamespace.d.ts +27 -0
- package/dist/src/namespaces/FsNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/FsNamespace.js +52 -0
- package/dist/src/namespaces/FsNamespace.js.map +1 -0
- package/dist/src/namespaces/NativeNamespace.d.ts +11 -0
- package/dist/src/namespaces/NativeNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/NativeNamespace.js +19 -0
- package/dist/src/namespaces/NativeNamespace.js.map +1 -0
- package/dist/src/namespaces/PluginNamespace.d.ts +56 -0
- package/dist/src/namespaces/PluginNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/PluginNamespace.js +116 -0
- package/dist/src/namespaces/PluginNamespace.js.map +1 -0
- package/dist/src/namespaces/StorageNamespace.d.ts +56 -0
- package/dist/src/namespaces/StorageNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/StorageNamespace.js +127 -0
- package/dist/src/namespaces/StorageNamespace.js.map +1 -0
- package/dist/src/namespaces/VfsNamespace.d.ts +25 -0
- package/dist/src/namespaces/VfsNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/VfsNamespace.js +64 -0
- package/dist/src/namespaces/VfsNamespace.js.map +1 -0
- package/dist/src/namespaces/WorkspaceNamespace.d.ts +18 -0
- package/dist/src/namespaces/WorkspaceNamespace.d.ts.map +1 -0
- package/dist/src/namespaces/WorkspaceNamespace.js +48 -0
- package/dist/src/namespaces/WorkspaceNamespace.js.map +1 -0
- package/dist/src/namespaces/index.d.ts +9 -0
- package/dist/src/namespaces/index.d.ts.map +1 -0
- package/dist/src/namespaces/index.js +9 -0
- package/dist/src/namespaces/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/eslint.config.js +25 -0
- package/package.json +28 -0
- package/src/PracticalKitSdk.ts +325 -0
- package/src/index.ts +10 -0
- package/src/keyboard/KeyboardShortcutForwarder.ts +35 -0
- package/src/keyboard/index.ts +1 -0
- package/src/llm/ToolRegistry.ts +186 -0
- package/src/logs/channel/IFrameLogChannelAdapter.ts +44 -0
- package/src/logs/channel/ILogChannelAdapter.ts +5 -0
- package/src/logs/channel/LogChannel.ts +49 -0
- package/src/logs/outputs/types.ts +21 -0
- package/src/messages/IFrameClient.ts +113 -0
- package/src/messages/IFrameMessageBus.ts +28 -0
- package/src/messages/base/index.ts +16 -0
- package/src/messages/document/index.ts +4 -0
- package/src/messages/document/requestContent/message.schemas.ts +28 -0
- package/src/messages/document/save/index.ts +1 -0
- package/src/messages/document/save/message.schemas.ts +24 -0
- package/src/messages/document/saveRequested/message.schemas.ts +35 -0
- package/src/messages/document/saved/message.schemas.ts +29 -0
- package/src/messages/editor/index.ts +1 -0
- package/src/messages/editor/openFile/message.schemas.ts +22 -0
- package/src/messages/fs/fileChanged/message.schemas.ts +12 -0
- package/src/messages/fs/index.ts +2 -0
- package/src/messages/fs/subscribe/message.schemas.ts +33 -0
- package/src/messages/index.ts +41 -0
- package/src/messages/llm/index.ts +158 -0
- package/src/messages/logs/index.ts +39 -0
- package/src/messages/native/call/message.schemas.ts +25 -0
- package/src/messages/native/index.ts +1 -0
- package/src/messages/plugin/index.ts +95 -0
- package/src/messages/storage/index.ts +140 -0
- package/src/messages/ui/UiChannel.ts +156 -0
- package/src/messages/ui/confirm/index.ts +1 -0
- package/src/messages/ui/confirm/message.schemas.ts +36 -0
- package/src/messages/ui/getState/message.schemas.ts +33 -0
- package/src/messages/ui/index.ts +7 -0
- package/src/messages/ui/setCollapseState/message.schemas.ts +34 -0
- package/src/messages/ui/showContextMenu/message.schemas.ts +64 -0
- package/src/messages/ui/showNotification/message.schemas.ts +41 -0
- package/src/messages/ui/tabsChanged/message.schemas.ts +25 -0
- package/src/messages/vfs/createDir/message.schemas.ts +20 -0
- package/src/messages/vfs/delete/message.schemas.ts +20 -0
- package/src/messages/vfs/exists/message.schemas.ts +32 -0
- package/src/messages/vfs/getAbsolutePath/message.schemas.ts +27 -0
- package/src/messages/vfs/index.ts +8 -0
- package/src/messages/vfs/readDir/message.schemas.ts +36 -0
- package/src/messages/vfs/readFile/message.schemas.ts +21 -0
- package/src/messages/vfs/rename/message.schemas.ts +21 -0
- package/src/messages/vfs/writeFile/message.schemas.ts +21 -0
- package/src/messages/workspace/changed/message.schemas.ts +18 -0
- package/src/messages/workspace/getDetails/message.schemas.ts +39 -0
- package/src/messages/workspace/index.ts +3 -0
- package/src/messages/workspace/open/message.schemas.ts +27 -0
- package/src/namespaces/DocumentNamespace.ts +164 -0
- package/src/namespaces/EditorNamespace.ts +27 -0
- package/src/namespaces/FsNamespace.ts +77 -0
- package/src/namespaces/NativeNamespace.ts +34 -0
- package/src/namespaces/PluginNamespace.ts +156 -0
- package/src/namespaces/StorageNamespace.ts +186 -0
- package/src/namespaces/VfsNamespace.ts +135 -0
- package/src/namespaces/WorkspaceNamespace.ts +80 -0
- package/src/namespaces/index.ts +8 -0
- package/tsconfig.json +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { type LlmToolDefinitionType, type FsFileChanged, type WorkspaceChanged, type DocumentSaveRequestedRequest, type DocumentSavedRequest, type PluginMessage, type PluginBroadcast, type DirectoryEntry, type WorkspaceDetails } from "./messages/index.js";
|
|
2
|
+
import { LogChannel } from "./logs/channel/LogChannel.js";
|
|
3
|
+
import { UiChannel } from "./messages/ui/UiChannel.js";
|
|
4
|
+
import { type LlmToolHandler, type LlmToolRegistration } from "./llm/ToolRegistry.js";
|
|
5
|
+
export type { LlmToolHandler, LlmToolRegistration };
|
|
6
|
+
export declare class PracticalKitSdk {
|
|
7
|
+
private client;
|
|
8
|
+
private primaryLogChannel;
|
|
9
|
+
private readonly logAdapters;
|
|
10
|
+
private readonly toolRegistry;
|
|
11
|
+
private readonly vfsNamespace;
|
|
12
|
+
private readonly workspaceNamespace;
|
|
13
|
+
private readonly editorNamespace;
|
|
14
|
+
private readonly nativeNamespace;
|
|
15
|
+
private readonly fsNamespace;
|
|
16
|
+
private readonly documentNamespace;
|
|
17
|
+
private readonly pluginNamespace;
|
|
18
|
+
private readonly storageNamespace;
|
|
19
|
+
private readonly keyboardShortcutForwarder;
|
|
20
|
+
readonly ui: UiChannel;
|
|
21
|
+
constructor();
|
|
22
|
+
init(): void;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
onMessage(callback: (evt: MessageEvent) => void): () => void;
|
|
25
|
+
vfs: {
|
|
26
|
+
exists: (path: string) => Promise<{
|
|
27
|
+
exists: boolean;
|
|
28
|
+
entryType: string | null;
|
|
29
|
+
}>;
|
|
30
|
+
readDir: (path: string) => Promise<DirectoryEntry[]>;
|
|
31
|
+
readFile: (path: string) => Promise<string>;
|
|
32
|
+
writeFile: (path: string, content: string) => Promise<void>;
|
|
33
|
+
getAbsolutePath: (path: string) => Promise<string>;
|
|
34
|
+
rename: (oldPath: string, newPath: string) => Promise<void>;
|
|
35
|
+
delete: (path: string) => Promise<void>;
|
|
36
|
+
createDir: (path: string) => Promise<void>;
|
|
37
|
+
};
|
|
38
|
+
workspace: {
|
|
39
|
+
getDetails: () => Promise<WorkspaceDetails>;
|
|
40
|
+
onChanged: (callback: (payload: WorkspaceChanged) => void) => (() => void);
|
|
41
|
+
/**
|
|
42
|
+
* Open a folder picker dialog to select a workspace.
|
|
43
|
+
* @returns The selected workspace path, or null if cancelled
|
|
44
|
+
*/
|
|
45
|
+
open: () => Promise<string | null>;
|
|
46
|
+
};
|
|
47
|
+
editor: {
|
|
48
|
+
openFile: (path: string) => Promise<void>;
|
|
49
|
+
};
|
|
50
|
+
native: {
|
|
51
|
+
call: (pluginId: string, moduleId: string, command: string, args: unknown) => Promise<unknown>;
|
|
52
|
+
};
|
|
53
|
+
fs: {
|
|
54
|
+
/**
|
|
55
|
+
* Subscribe to file system change events.
|
|
56
|
+
* Requires the "fs.watch" permission in the plugin manifest.
|
|
57
|
+
*/
|
|
58
|
+
subscribe: () => Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Unsubscribe from file system change events.
|
|
61
|
+
*/
|
|
62
|
+
unsubscribe: () => Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Listen for file change events.
|
|
65
|
+
* Must call fs.subscribe() first.
|
|
66
|
+
* @param callback Function called when a file changes
|
|
67
|
+
* @returns Unsubscribe function
|
|
68
|
+
*/
|
|
69
|
+
onFileChanged: (callback: (event: FsFileChanged) => void) => (() => void);
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Document lifecycle API for editor plugins.
|
|
73
|
+
*
|
|
74
|
+
* Editor plugins should:
|
|
75
|
+
* 1. Call requestContent() to get initial content when ready
|
|
76
|
+
* 2. Listen for onSaveRequested and respond with current content
|
|
77
|
+
* 3. Listen for onSaved to know when save completed
|
|
78
|
+
* 4. Call requestSave() when user presses Ctrl+S
|
|
79
|
+
*/
|
|
80
|
+
document: {
|
|
81
|
+
requestContent: () => Promise<{
|
|
82
|
+
content: string;
|
|
83
|
+
hash: string;
|
|
84
|
+
}>;
|
|
85
|
+
requestSave: () => Promise<string>;
|
|
86
|
+
onSaveRequested: (callback: (payload: DocumentSaveRequestedRequest["payload"]) => Promise<string>) => (() => void);
|
|
87
|
+
onSaved: (callback: (payload: DocumentSavedRequest["payload"]) => void) => (() => void);
|
|
88
|
+
respondToSaved: (requestId: string, success: boolean, error?: string) => void;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Intra-plugin messaging API.
|
|
92
|
+
*
|
|
93
|
+
* Allows modules within the same plugin to communicate with each other.
|
|
94
|
+
* Messages are routed through the host - modules cannot communicate directly.
|
|
95
|
+
*/
|
|
96
|
+
plugin: {
|
|
97
|
+
sendMessage: <T = unknown>(targetModuleId: string, message: unknown) => Promise<T>;
|
|
98
|
+
onMessage: (handler: (payload: PluginMessage.HandlerPayload) => unknown | Promise<unknown>) => (() => void);
|
|
99
|
+
sendBroadcast: (message: unknown) => Promise<void>;
|
|
100
|
+
onBroadcast: (handler: (payload: PluginBroadcast.EventType["payload"]) => void) => (() => void);
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Storage API for plugin secrets and data.
|
|
104
|
+
*
|
|
105
|
+
* Provides two storage types:
|
|
106
|
+
* - `get`/`set`/`delete`: Non-secret storage for any binary data
|
|
107
|
+
* - `getSecret`/`setSecret`/`deleteSecret`: Encrypted storage for sensitive data
|
|
108
|
+
*
|
|
109
|
+
* All values are Uint8Array to support any binary data.
|
|
110
|
+
* Data is isolated per plugin.
|
|
111
|
+
*/
|
|
112
|
+
storage: {
|
|
113
|
+
get: (key: string) => Promise<Uint8Array | null>;
|
|
114
|
+
set: (key: string, value: Uint8Array) => Promise<void>;
|
|
115
|
+
delete: (key: string) => Promise<void>;
|
|
116
|
+
getSecret: (key: string) => Promise<Uint8Array | null>;
|
|
117
|
+
setSecret: (key: string, value: Uint8Array) => Promise<void>;
|
|
118
|
+
deleteSecret: (key: string) => Promise<void>;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Logging API with default channel and ability to create named channels.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* // Use default channel
|
|
125
|
+
* sdk.logs.info("Starting...");
|
|
126
|
+
*
|
|
127
|
+
* // Create named channels
|
|
128
|
+
* const apiLogger = sdk.logs.createChannel("api");
|
|
129
|
+
* apiLogger.info("Fetching data...");
|
|
130
|
+
*/
|
|
131
|
+
logs: {
|
|
132
|
+
/** Create a named log channel */
|
|
133
|
+
createChannel: (channelName: string) => LogChannel;
|
|
134
|
+
/** Log at debug level to the default channel */
|
|
135
|
+
debug: (message: string) => void;
|
|
136
|
+
/** Log at info level to the default channel */
|
|
137
|
+
info: (message: string) => void;
|
|
138
|
+
/** Log at warn level to the default channel */
|
|
139
|
+
warn: (message: string) => void;
|
|
140
|
+
/** Log at error level to the default channel */
|
|
141
|
+
error: (message: string) => void;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* LLM Tool Registry API for accessing and executing tools.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* // Register a tool with handler
|
|
148
|
+
* await sdk.llm.registerTool({
|
|
149
|
+
* name: 'echo',
|
|
150
|
+
* description: 'Echoes back the message',
|
|
151
|
+
* parameters: { type: 'object', properties: { message: { type: 'string' } } },
|
|
152
|
+
* handler: async (args) => ({ echoed: (args as { message: string }).message })
|
|
153
|
+
* });
|
|
154
|
+
*
|
|
155
|
+
* // Get all registered tools
|
|
156
|
+
* const tools = await sdk.llm.listTools();
|
|
157
|
+
*
|
|
158
|
+
* // Execute a tool (from another plugin)
|
|
159
|
+
* const result = await sdk.llm.executeTool("native-demo.echo", { message: "hello" });
|
|
160
|
+
*
|
|
161
|
+
* // Unregister when done
|
|
162
|
+
* await sdk.llm.unregisterTool('echo');
|
|
163
|
+
*/
|
|
164
|
+
llm: {
|
|
165
|
+
/**
|
|
166
|
+
* List all registered LLM tools from all plugins
|
|
167
|
+
*/
|
|
168
|
+
listTools: () => Promise<LlmToolDefinitionType[]>;
|
|
169
|
+
/**
|
|
170
|
+
* Execute an LLM tool by ID
|
|
171
|
+
*/
|
|
172
|
+
executeTool: (toolId: string, args: unknown) => Promise<unknown>;
|
|
173
|
+
/**
|
|
174
|
+
* Register a tool that can be called by the LLM.
|
|
175
|
+
* The handler is stored locally and invoked when the host routes a tool call here.
|
|
176
|
+
*/
|
|
177
|
+
registerTool: (registration: LlmToolRegistration) => Promise<string>;
|
|
178
|
+
/**
|
|
179
|
+
* Unregister a previously registered tool
|
|
180
|
+
*/
|
|
181
|
+
unregisterTool: (name: string) => Promise<void>;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=PracticalKitSdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PracticalKitSdk.d.ts","sourceRoot":"","sources":["../../src/PracticalKitSdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { IFrameClient } from "./messages/IFrameClient.js";
|
|
2
|
+
import { KeyboardShortcutForwarder } from "./keyboard/index.js";
|
|
3
|
+
import {} from "./messages/index.js";
|
|
4
|
+
import { LogChannel } from "./logs/channel/LogChannel.js";
|
|
5
|
+
import { IFrameLogChannelAdapter } from "./logs/channel/IFrameLogChannelAdapter.js";
|
|
6
|
+
import { UiChannel } from "./messages/ui/UiChannel.js";
|
|
7
|
+
import { ToolRegistry, } from "./llm/ToolRegistry.js";
|
|
8
|
+
import { VfsNamespace, WorkspaceNamespace, EditorNamespace, NativeNamespace, FsNamespace, DocumentNamespace, PluginNamespace, StorageNamespace, } from "./namespaces/index.js";
|
|
9
|
+
export class PracticalKitSdk {
|
|
10
|
+
client;
|
|
11
|
+
primaryLogChannel;
|
|
12
|
+
// IMPORTANT: This array is mutable! Do not replace it, just push new adapters!
|
|
13
|
+
logAdapters;
|
|
14
|
+
// Internal tool registry for LLM tool management
|
|
15
|
+
toolRegistry;
|
|
16
|
+
// Internal namespace instances
|
|
17
|
+
vfsNamespace;
|
|
18
|
+
workspaceNamespace;
|
|
19
|
+
editorNamespace;
|
|
20
|
+
nativeNamespace;
|
|
21
|
+
fsNamespace;
|
|
22
|
+
documentNamespace;
|
|
23
|
+
pluginNamespace;
|
|
24
|
+
storageNamespace;
|
|
25
|
+
// Keyboard shortcut forwarder (forwards to parent via IFrameClient)
|
|
26
|
+
keyboardShortcutForwarder;
|
|
27
|
+
// UI channel
|
|
28
|
+
ui;
|
|
29
|
+
constructor() {
|
|
30
|
+
this.client = new IFrameClient();
|
|
31
|
+
const iFrameAdapter = new IFrameLogChannelAdapter(this.client);
|
|
32
|
+
this.logAdapters = [iFrameAdapter];
|
|
33
|
+
/** Default log channel for top-level logs */
|
|
34
|
+
this.primaryLogChannel = new LogChannel("default", this.logAdapters);
|
|
35
|
+
/** Initialize UI channel after client */
|
|
36
|
+
this.ui = new UiChannel(this.client);
|
|
37
|
+
/** Initialize tool registry */
|
|
38
|
+
this.toolRegistry = new ToolRegistry(this.client);
|
|
39
|
+
/** Initialize namespaces */
|
|
40
|
+
this.vfsNamespace = new VfsNamespace(this.client);
|
|
41
|
+
this.workspaceNamespace = new WorkspaceNamespace(this.client);
|
|
42
|
+
this.editorNamespace = new EditorNamespace(this.client);
|
|
43
|
+
this.nativeNamespace = new NativeNamespace(this.client);
|
|
44
|
+
this.fsNamespace = new FsNamespace(this.client);
|
|
45
|
+
this.documentNamespace = new DocumentNamespace(this.client);
|
|
46
|
+
this.pluginNamespace = new PluginNamespace(this.client);
|
|
47
|
+
this.storageNamespace = new StorageNamespace(this.client);
|
|
48
|
+
this.keyboardShortcutForwarder = new KeyboardShortcutForwarder(this.client);
|
|
49
|
+
}
|
|
50
|
+
init() {
|
|
51
|
+
this.client.init();
|
|
52
|
+
this.keyboardShortcutForwarder.init();
|
|
53
|
+
}
|
|
54
|
+
destroy() {
|
|
55
|
+
this.keyboardShortcutForwarder.destroy();
|
|
56
|
+
this.client.destroy();
|
|
57
|
+
}
|
|
58
|
+
onMessage(callback) {
|
|
59
|
+
return this.client.subscribe(callback);
|
|
60
|
+
}
|
|
61
|
+
vfs = {
|
|
62
|
+
exists: (path) => this.vfsNamespace.exists(path),
|
|
63
|
+
readDir: (path) => this.vfsNamespace.readDir(path),
|
|
64
|
+
readFile: (path) => this.vfsNamespace.readFile(path),
|
|
65
|
+
writeFile: (path, content) => this.vfsNamespace.writeFile(path, content),
|
|
66
|
+
getAbsolutePath: (path) => this.vfsNamespace.getAbsolutePath(path),
|
|
67
|
+
rename: (oldPath, newPath) => this.vfsNamespace.rename(oldPath, newPath),
|
|
68
|
+
delete: (path) => this.vfsNamespace.delete(path),
|
|
69
|
+
createDir: (path) => this.vfsNamespace.createDir(path),
|
|
70
|
+
};
|
|
71
|
+
workspace = {
|
|
72
|
+
getDetails: () => this.workspaceNamespace.getDetails(),
|
|
73
|
+
onChanged: (callback) => this.workspaceNamespace.onChanged(callback),
|
|
74
|
+
/**
|
|
75
|
+
* Open a folder picker dialog to select a workspace.
|
|
76
|
+
* @returns The selected workspace path, or null if cancelled
|
|
77
|
+
*/
|
|
78
|
+
open: () => this.workspaceNamespace.open(),
|
|
79
|
+
};
|
|
80
|
+
editor = {
|
|
81
|
+
openFile: (path) => this.editorNamespace.openFile(path),
|
|
82
|
+
};
|
|
83
|
+
native = {
|
|
84
|
+
call: (pluginId, moduleId, command, args) => this.nativeNamespace.call(pluginId, moduleId, command, args),
|
|
85
|
+
};
|
|
86
|
+
fs = {
|
|
87
|
+
/**
|
|
88
|
+
* Subscribe to file system change events.
|
|
89
|
+
* Requires the "fs.watch" permission in the plugin manifest.
|
|
90
|
+
*/
|
|
91
|
+
subscribe: () => this.fsNamespace.subscribe(),
|
|
92
|
+
/**
|
|
93
|
+
* Unsubscribe from file system change events.
|
|
94
|
+
*/
|
|
95
|
+
unsubscribe: () => this.fsNamespace.unsubscribe(),
|
|
96
|
+
/**
|
|
97
|
+
* Listen for file change events.
|
|
98
|
+
* Must call fs.subscribe() first.
|
|
99
|
+
* @param callback Function called when a file changes
|
|
100
|
+
* @returns Unsubscribe function
|
|
101
|
+
*/
|
|
102
|
+
onFileChanged: (callback) => this.fsNamespace.onFileChanged(callback),
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Document lifecycle API for editor plugins.
|
|
106
|
+
*
|
|
107
|
+
* Editor plugins should:
|
|
108
|
+
* 1. Call requestContent() to get initial content when ready
|
|
109
|
+
* 2. Listen for onSaveRequested and respond with current content
|
|
110
|
+
* 3. Listen for onSaved to know when save completed
|
|
111
|
+
* 4. Call requestSave() when user presses Ctrl+S
|
|
112
|
+
*/
|
|
113
|
+
document = {
|
|
114
|
+
requestContent: () => this.documentNamespace.requestContent(),
|
|
115
|
+
requestSave: () => this.documentNamespace.requestSave(),
|
|
116
|
+
onSaveRequested: (callback) => this.documentNamespace.onSaveRequested(callback),
|
|
117
|
+
onSaved: (callback) => this.documentNamespace.onSaved(callback),
|
|
118
|
+
respondToSaved: (requestId, success, error) => this.documentNamespace.respondToSaved(requestId, success, error),
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Intra-plugin messaging API.
|
|
122
|
+
*
|
|
123
|
+
* Allows modules within the same plugin to communicate with each other.
|
|
124
|
+
* Messages are routed through the host - modules cannot communicate directly.
|
|
125
|
+
*/
|
|
126
|
+
plugin = {
|
|
127
|
+
sendMessage: (targetModuleId, message) => this.pluginNamespace.sendMessage(targetModuleId, message),
|
|
128
|
+
onMessage: (handler) => this.pluginNamespace.onMessage(handler),
|
|
129
|
+
sendBroadcast: (message) => this.pluginNamespace.sendBroadcast(message),
|
|
130
|
+
onBroadcast: (handler) => this.pluginNamespace.onBroadcast(handler),
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Storage API for plugin secrets and data.
|
|
134
|
+
*
|
|
135
|
+
* Provides two storage types:
|
|
136
|
+
* - `get`/`set`/`delete`: Non-secret storage for any binary data
|
|
137
|
+
* - `getSecret`/`setSecret`/`deleteSecret`: Encrypted storage for sensitive data
|
|
138
|
+
*
|
|
139
|
+
* All values are Uint8Array to support any binary data.
|
|
140
|
+
* Data is isolated per plugin.
|
|
141
|
+
*/
|
|
142
|
+
storage = {
|
|
143
|
+
// Non-secret storage
|
|
144
|
+
get: (key) => this.storageNamespace.get(key),
|
|
145
|
+
set: (key, value) => this.storageNamespace.set(key, value),
|
|
146
|
+
delete: (key) => this.storageNamespace.delete(key),
|
|
147
|
+
// Secret storage (encrypted)
|
|
148
|
+
getSecret: (key) => this.storageNamespace.getSecret(key),
|
|
149
|
+
setSecret: (key, value) => this.storageNamespace.setSecret(key, value),
|
|
150
|
+
deleteSecret: (key) => this.storageNamespace.deleteSecret(key),
|
|
151
|
+
};
|
|
152
|
+
// ==========================================================================
|
|
153
|
+
// Logging API
|
|
154
|
+
// ==========================================================================
|
|
155
|
+
/**
|
|
156
|
+
* Logging API with default channel and ability to create named channels.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* // Use default channel
|
|
160
|
+
* sdk.logs.info("Starting...");
|
|
161
|
+
*
|
|
162
|
+
* // Create named channels
|
|
163
|
+
* const apiLogger = sdk.logs.createChannel("api");
|
|
164
|
+
* apiLogger.info("Fetching data...");
|
|
165
|
+
*/
|
|
166
|
+
logs = {
|
|
167
|
+
/** Create a named log channel */
|
|
168
|
+
createChannel: (channelName) => new LogChannel(channelName, this.logAdapters),
|
|
169
|
+
/** Log at debug level to the default channel */
|
|
170
|
+
debug: (message) => this.primaryLogChannel.debug(message),
|
|
171
|
+
/** Log at info level to the default channel */
|
|
172
|
+
info: (message) => this.primaryLogChannel.info(message),
|
|
173
|
+
/** Log at warn level to the default channel */
|
|
174
|
+
warn: (message) => this.primaryLogChannel.warn(message),
|
|
175
|
+
/** Log at error level to the default channel */
|
|
176
|
+
error: (message) => this.primaryLogChannel.error(message),
|
|
177
|
+
};
|
|
178
|
+
// ==========================================================================
|
|
179
|
+
// LLM Tool Registry API
|
|
180
|
+
// ==========================================================================
|
|
181
|
+
/**
|
|
182
|
+
* LLM Tool Registry API for accessing and executing tools.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* // Register a tool with handler
|
|
186
|
+
* await sdk.llm.registerTool({
|
|
187
|
+
* name: 'echo',
|
|
188
|
+
* description: 'Echoes back the message',
|
|
189
|
+
* parameters: { type: 'object', properties: { message: { type: 'string' } } },
|
|
190
|
+
* handler: async (args) => ({ echoed: (args as { message: string }).message })
|
|
191
|
+
* });
|
|
192
|
+
*
|
|
193
|
+
* // Get all registered tools
|
|
194
|
+
* const tools = await sdk.llm.listTools();
|
|
195
|
+
*
|
|
196
|
+
* // Execute a tool (from another plugin)
|
|
197
|
+
* const result = await sdk.llm.executeTool("native-demo.echo", { message: "hello" });
|
|
198
|
+
*
|
|
199
|
+
* // Unregister when done
|
|
200
|
+
* await sdk.llm.unregisterTool('echo');
|
|
201
|
+
*/
|
|
202
|
+
llm = {
|
|
203
|
+
/**
|
|
204
|
+
* List all registered LLM tools from all plugins
|
|
205
|
+
*/
|
|
206
|
+
listTools: () => {
|
|
207
|
+
return this.toolRegistry.listTools();
|
|
208
|
+
},
|
|
209
|
+
/**
|
|
210
|
+
* Execute an LLM tool by ID
|
|
211
|
+
*/
|
|
212
|
+
executeTool: (toolId, args) => {
|
|
213
|
+
return this.toolRegistry.executeTool(toolId, args);
|
|
214
|
+
},
|
|
215
|
+
/**
|
|
216
|
+
* Register a tool that can be called by the LLM.
|
|
217
|
+
* The handler is stored locally and invoked when the host routes a tool call here.
|
|
218
|
+
*/
|
|
219
|
+
registerTool: (registration) => {
|
|
220
|
+
return this.toolRegistry.registerTool(registration);
|
|
221
|
+
},
|
|
222
|
+
/**
|
|
223
|
+
* Unregister a previously registered tool
|
|
224
|
+
*/
|
|
225
|
+
unregisterTool: (name) => {
|
|
226
|
+
return this.toolRegistry.unregisterTool(name);
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=PracticalKitSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PracticalKitSdk.js","sourceRoot":"","sources":["../../src/PracticalKitSdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { LogChannel } from "./logs/channel/LogChannel.js";
|
|
2
|
+
export { PracticalKitSdk, type LlmToolHandler, type LlmToolRegistration, } from "./PracticalKitSdk.js";
|
|
3
|
+
export * from "./messages/index.js";
|
|
4
|
+
export { safeParse, type GenericSchema, type InferOutput } from "valibot";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAwC,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IFrameClient } from "../messages/IFrameClient.js";
|
|
2
|
+
/**
|
|
3
|
+
* Forwards keyboard shortcut events from plugin iframes to the main app.
|
|
4
|
+
*
|
|
5
|
+
* This is a workaround for the Windows WebView2 bug where menu accelerators
|
|
6
|
+
* don't work because WebView2 intercepts keyboard events before they reach
|
|
7
|
+
* the Windows message loop.
|
|
8
|
+
*
|
|
9
|
+
* See: https://github.com/tauri-apps/wry/issues/451
|
|
10
|
+
*/
|
|
11
|
+
export declare class KeyboardShortcutForwarder {
|
|
12
|
+
private readonly client;
|
|
13
|
+
private keydownHandler;
|
|
14
|
+
constructor(client: IFrameClient);
|
|
15
|
+
init(): void;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=KeyboardShortcutForwarder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyboardShortcutForwarder.d.ts","sourceRoot":"","sources":["../../../src/keyboard/KeyboardShortcutForwarder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;;;;;;GAQG;AACH,qBAAa,yBAAyB;IAGxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,cAAc,CAAiD;gBAE1C,MAAM,EAAE,YAAY;IAEjD,IAAI,IAAI,IAAI;IASZ,OAAO,IAAI,IAAI;CAQhB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createShortcutPayload } from "@practicalkit/commons";
|
|
2
|
+
import { IFrameClient } from "../messages/IFrameClient.js";
|
|
3
|
+
/**
|
|
4
|
+
* Forwards keyboard shortcut events from plugin iframes to the main app.
|
|
5
|
+
*
|
|
6
|
+
* This is a workaround for the Windows WebView2 bug where menu accelerators
|
|
7
|
+
* don't work because WebView2 intercepts keyboard events before they reach
|
|
8
|
+
* the Windows message loop.
|
|
9
|
+
*
|
|
10
|
+
* See: https://github.com/tauri-apps/wry/issues/451
|
|
11
|
+
*/
|
|
12
|
+
export class KeyboardShortcutForwarder {
|
|
13
|
+
client;
|
|
14
|
+
keydownHandler = null;
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
init() {
|
|
19
|
+
this.keydownHandler = (event) => {
|
|
20
|
+
if (!event.ctrlKey && !event.metaKey)
|
|
21
|
+
return;
|
|
22
|
+
const payload = createShortcutPayload(event);
|
|
23
|
+
this.client.send(payload);
|
|
24
|
+
};
|
|
25
|
+
window.addEventListener("keydown", this.keydownHandler, { capture: true });
|
|
26
|
+
}
|
|
27
|
+
destroy() {
|
|
28
|
+
if (this.keydownHandler) {
|
|
29
|
+
window.removeEventListener("keydown", this.keydownHandler, {
|
|
30
|
+
capture: true,
|
|
31
|
+
});
|
|
32
|
+
this.keydownHandler = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=KeyboardShortcutForwarder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyboardShortcutForwarder.js","sourceRoot":"","sources":["../../../src/keyboard/KeyboardShortcutForwarder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAAyB;IAGP;IAFrB,cAAc,GAA4C,IAAI,CAAC;IAEvE,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD,IAAI;QACF,IAAI,CAAC,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC7C,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;gBACzD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keyboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keyboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { IFrameClient } from "../messages/IFrameClient.js";
|
|
2
|
+
import { type LlmToolDefinitionType } from "../messages/index.js";
|
|
3
|
+
/** Handler function for a registered tool */
|
|
4
|
+
export type LlmToolHandler = (args: unknown) => unknown | Promise<unknown>;
|
|
5
|
+
/** Options for registering an LLM tool */
|
|
6
|
+
export interface LlmToolRegistration {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
parameters: {
|
|
10
|
+
type: "object";
|
|
11
|
+
properties: Record<string, unknown>;
|
|
12
|
+
required?: string[];
|
|
13
|
+
};
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
handler: LlmToolHandler;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Internal tool registry that manages LLM tool registration and execution.
|
|
19
|
+
* This class is not part of the public SDK API.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ToolRegistry {
|
|
22
|
+
private readonly client;
|
|
23
|
+
private readonly toolHandlers;
|
|
24
|
+
private toolCallUnsubscribe;
|
|
25
|
+
constructor(client: IFrameClient);
|
|
26
|
+
/**
|
|
27
|
+
* List all registered LLM tools from all plugins
|
|
28
|
+
*/
|
|
29
|
+
listTools(): Promise<LlmToolDefinitionType[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Execute an LLM tool by ID
|
|
32
|
+
*/
|
|
33
|
+
executeTool(toolId: string, args: unknown): Promise<unknown>;
|
|
34
|
+
/**
|
|
35
|
+
* Register a tool that can be called by the LLM.
|
|
36
|
+
* The handler is stored locally and invoked when the host routes a tool call here.
|
|
37
|
+
*/
|
|
38
|
+
registerTool(registration: LlmToolRegistration): Promise<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Unregister a previously registered tool
|
|
41
|
+
*/
|
|
42
|
+
unregisterTool(name: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Ensure we have a listener for incoming tool call requests from the host.
|
|
45
|
+
* This is called automatically when registering a tool.
|
|
46
|
+
*/
|
|
47
|
+
private ensureToolCallListener;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=ToolRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../../src/llm/ToolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAML,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAC;AAE9B,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE3E,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IAEvE,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,MAAM,EAAE,YAAY;IAIhC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAenD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAelE;;;OAGG;IACG,YAAY,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BtE;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAsD/B"}
|