@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.
Files changed (310) hide show
  1. package/README.md +5 -0
  2. package/dist/src/PracticalKitSdk.d.ts +184 -0
  3. package/dist/src/PracticalKitSdk.d.ts.map +1 -0
  4. package/dist/src/PracticalKitSdk.js +230 -0
  5. package/dist/src/PracticalKitSdk.js.map +1 -0
  6. package/dist/src/index.d.ts +5 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js +6 -0
  9. package/dist/src/index.js.map +1 -0
  10. package/dist/src/keyboard/KeyboardShortcutForwarder.d.ts +18 -0
  11. package/dist/src/keyboard/KeyboardShortcutForwarder.d.ts.map +1 -0
  12. package/dist/src/keyboard/KeyboardShortcutForwarder.js +36 -0
  13. package/dist/src/keyboard/KeyboardShortcutForwarder.js.map +1 -0
  14. package/dist/src/keyboard/index.d.ts +2 -0
  15. package/dist/src/keyboard/index.d.ts.map +1 -0
  16. package/dist/src/keyboard/index.js +2 -0
  17. package/dist/src/keyboard/index.js.map +1 -0
  18. package/dist/src/llm/ToolRegistry.d.ts +49 -0
  19. package/dist/src/llm/ToolRegistry.d.ts.map +1 -0
  20. package/dist/src/llm/ToolRegistry.js +126 -0
  21. package/dist/src/llm/ToolRegistry.js.map +1 -0
  22. package/dist/src/logs/channel/IFrameLogChannelAdapter.d.ts +8 -0
  23. package/dist/src/logs/channel/IFrameLogChannelAdapter.d.ts.map +1 -0
  24. package/dist/src/logs/channel/IFrameLogChannelAdapter.js +34 -0
  25. package/dist/src/logs/channel/IFrameLogChannelAdapter.js.map +1 -0
  26. package/dist/src/logs/channel/ILogChannelAdapter.d.ts +5 -0
  27. package/dist/src/logs/channel/ILogChannelAdapter.d.ts.map +1 -0
  28. package/dist/src/logs/channel/ILogChannelAdapter.js +2 -0
  29. package/dist/src/logs/channel/ILogChannelAdapter.js.map +1 -0
  30. package/dist/src/logs/channel/LogChannel.d.ts +21 -0
  31. package/dist/src/logs/channel/LogChannel.d.ts.map +1 -0
  32. package/dist/src/logs/channel/LogChannel.js +41 -0
  33. package/dist/src/logs/channel/LogChannel.js.map +1 -0
  34. package/dist/src/logs/outputs/types.d.ts +18 -0
  35. package/dist/src/logs/outputs/types.d.ts.map +1 -0
  36. package/dist/src/logs/outputs/types.js +2 -0
  37. package/dist/src/logs/outputs/types.js.map +1 -0
  38. package/dist/src/messages/IFrameClient.d.ts +33 -0
  39. package/dist/src/messages/IFrameClient.d.ts.map +1 -0
  40. package/dist/src/messages/IFrameClient.js +88 -0
  41. package/dist/src/messages/IFrameClient.js.map +1 -0
  42. package/dist/src/messages/IFrameMessageBus.d.ts +10 -0
  43. package/dist/src/messages/IFrameMessageBus.d.ts.map +1 -0
  44. package/dist/src/messages/IFrameMessageBus.js +24 -0
  45. package/dist/src/messages/IFrameMessageBus.js.map +1 -0
  46. package/dist/src/messages/base/index.d.ts +8 -0
  47. package/dist/src/messages/base/index.d.ts.map +1 -0
  48. package/dist/src/messages/base/index.js +9 -0
  49. package/dist/src/messages/base/index.js.map +1 -0
  50. package/dist/src/messages/document/index.d.ts +5 -0
  51. package/dist/src/messages/document/index.d.ts.map +1 -0
  52. package/dist/src/messages/document/index.js +5 -0
  53. package/dist/src/messages/document/index.js.map +1 -0
  54. package/dist/src/messages/document/requestContent/message.schemas.d.ts +34 -0
  55. package/dist/src/messages/document/requestContent/message.schemas.d.ts.map +1 -0
  56. package/dist/src/messages/document/requestContent/message.schemas.js +21 -0
  57. package/dist/src/messages/document/requestContent/message.schemas.js.map +1 -0
  58. package/dist/src/messages/document/save/index.d.ts +2 -0
  59. package/dist/src/messages/document/save/index.d.ts.map +1 -0
  60. package/dist/src/messages/document/save/index.js +2 -0
  61. package/dist/src/messages/document/save/index.js.map +1 -0
  62. package/dist/src/messages/document/save/message.schemas.d.ts +34 -0
  63. package/dist/src/messages/document/save/message.schemas.d.ts.map +1 -0
  64. package/dist/src/messages/document/save/message.schemas.js +21 -0
  65. package/dist/src/messages/document/save/message.schemas.js.map +1 -0
  66. package/dist/src/messages/document/saveRequested/message.schemas.d.ts +41 -0
  67. package/dist/src/messages/document/saveRequested/message.schemas.d.ts.map +1 -0
  68. package/dist/src/messages/document/saveRequested/message.schemas.js +28 -0
  69. package/dist/src/messages/document/saveRequested/message.schemas.js.map +1 -0
  70. package/dist/src/messages/document/saved/message.schemas.d.ts +39 -0
  71. package/dist/src/messages/document/saved/message.schemas.d.ts.map +1 -0
  72. package/dist/src/messages/document/saved/message.schemas.js +26 -0
  73. package/dist/src/messages/document/saved/message.schemas.js.map +1 -0
  74. package/dist/src/messages/editor/index.d.ts +2 -0
  75. package/dist/src/messages/editor/index.d.ts.map +1 -0
  76. package/dist/src/messages/editor/index.js +2 -0
  77. package/dist/src/messages/editor/index.js.map +1 -0
  78. package/dist/src/messages/editor/openFile/message.schemas.d.ts +30 -0
  79. package/dist/src/messages/editor/openFile/message.schemas.d.ts.map +1 -0
  80. package/dist/src/messages/editor/openFile/message.schemas.js +17 -0
  81. package/dist/src/messages/editor/openFile/message.schemas.js.map +1 -0
  82. package/dist/src/messages/fs/fileChanged/message.schemas.d.ts +10 -0
  83. package/dist/src/messages/fs/fileChanged/message.schemas.d.ts.map +1 -0
  84. package/dist/src/messages/fs/fileChanged/message.schemas.js +10 -0
  85. package/dist/src/messages/fs/fileChanged/message.schemas.js.map +1 -0
  86. package/dist/src/messages/fs/index.d.ts +3 -0
  87. package/dist/src/messages/fs/index.d.ts.map +1 -0
  88. package/dist/src/messages/fs/index.js +3 -0
  89. package/dist/src/messages/fs/index.js.map +1 -0
  90. package/dist/src/messages/fs/subscribe/message.schemas.d.ts +54 -0
  91. package/dist/src/messages/fs/subscribe/message.schemas.d.ts.map +1 -0
  92. package/dist/src/messages/fs/subscribe/message.schemas.js +27 -0
  93. package/dist/src/messages/fs/subscribe/message.schemas.js.map +1 -0
  94. package/dist/src/messages/index.d.ts +15 -0
  95. package/dist/src/messages/index.d.ts.map +1 -0
  96. package/dist/src/messages/index.js +29 -0
  97. package/dist/src/messages/index.js.map +1 -0
  98. package/dist/src/messages/llm/index.d.ts +148 -0
  99. package/dist/src/messages/llm/index.d.ts.map +1 -0
  100. package/dist/src/messages/llm/index.js +124 -0
  101. package/dist/src/messages/llm/index.js.map +1 -0
  102. package/dist/src/messages/logs/index.d.ts +26 -0
  103. package/dist/src/messages/logs/index.d.ts.map +1 -0
  104. package/dist/src/messages/logs/index.js +24 -0
  105. package/dist/src/messages/logs/index.js.map +1 -0
  106. package/dist/src/messages/native/call/message.schemas.d.ts +34 -0
  107. package/dist/src/messages/native/call/message.schemas.d.ts.map +1 -0
  108. package/dist/src/messages/native/call/message.schemas.js +22 -0
  109. package/dist/src/messages/native/call/message.schemas.js.map +1 -0
  110. package/dist/src/messages/native/index.d.ts +2 -0
  111. package/dist/src/messages/native/index.d.ts.map +1 -0
  112. package/dist/src/messages/native/index.js +2 -0
  113. package/dist/src/messages/native/index.js.map +1 -0
  114. package/dist/src/messages/plugin/index.d.ts +78 -0
  115. package/dist/src/messages/plugin/index.d.ts.map +1 -0
  116. package/dist/src/messages/plugin/index.js +72 -0
  117. package/dist/src/messages/plugin/index.js.map +1 -0
  118. package/dist/src/messages/storage/index.d.ts +126 -0
  119. package/dist/src/messages/storage/index.d.ts.map +1 -0
  120. package/dist/src/messages/storage/index.js +109 -0
  121. package/dist/src/messages/storage/index.js.map +1 -0
  122. package/dist/src/messages/ui/UiChannel.d.ts +68 -0
  123. package/dist/src/messages/ui/UiChannel.d.ts.map +1 -0
  124. package/dist/src/messages/ui/UiChannel.js +81 -0
  125. package/dist/src/messages/ui/UiChannel.js.map +1 -0
  126. package/dist/src/messages/ui/confirm/index.d.ts +2 -0
  127. package/dist/src/messages/ui/confirm/index.d.ts.map +1 -0
  128. package/dist/src/messages/ui/confirm/index.js +2 -0
  129. package/dist/src/messages/ui/confirm/index.js.map +1 -0
  130. package/dist/src/messages/ui/confirm/message.schemas.d.ts +39 -0
  131. package/dist/src/messages/ui/confirm/message.schemas.d.ts.map +1 -0
  132. package/dist/src/messages/ui/confirm/message.schemas.js +25 -0
  133. package/dist/src/messages/ui/confirm/message.schemas.js.map +1 -0
  134. package/dist/src/messages/ui/getState/message.schemas.d.ts +38 -0
  135. package/dist/src/messages/ui/getState/message.schemas.d.ts.map +1 -0
  136. package/dist/src/messages/ui/getState/message.schemas.js +21 -0
  137. package/dist/src/messages/ui/getState/message.schemas.js.map +1 -0
  138. package/dist/src/messages/ui/index.d.ts +8 -0
  139. package/dist/src/messages/ui/index.d.ts.map +1 -0
  140. package/dist/src/messages/ui/index.js +8 -0
  141. package/dist/src/messages/ui/index.js.map +1 -0
  142. package/dist/src/messages/ui/setCollapseState/message.schemas.d.ts +33 -0
  143. package/dist/src/messages/ui/setCollapseState/message.schemas.d.ts.map +1 -0
  144. package/dist/src/messages/ui/setCollapseState/message.schemas.js +19 -0
  145. package/dist/src/messages/ui/setCollapseState/message.schemas.js.map +1 -0
  146. package/dist/src/messages/ui/showContextMenu/message.schemas.d.ts +61 -0
  147. package/dist/src/messages/ui/showContextMenu/message.schemas.d.ts.map +1 -0
  148. package/dist/src/messages/ui/showContextMenu/message.schemas.js +37 -0
  149. package/dist/src/messages/ui/showContextMenu/message.schemas.js.map +1 -0
  150. package/dist/src/messages/ui/showNotification/message.schemas.d.ts +38 -0
  151. package/dist/src/messages/ui/showNotification/message.schemas.d.ts.map +1 -0
  152. package/dist/src/messages/ui/showNotification/message.schemas.js +29 -0
  153. package/dist/src/messages/ui/showNotification/message.schemas.js.map +1 -0
  154. package/dist/src/messages/ui/tabsChanged/message.schemas.d.ts +24 -0
  155. package/dist/src/messages/ui/tabsChanged/message.schemas.d.ts.map +1 -0
  156. package/dist/src/messages/ui/tabsChanged/message.schemas.js +15 -0
  157. package/dist/src/messages/ui/tabsChanged/message.schemas.js.map +1 -0
  158. package/dist/src/messages/vfs/createDir/message.schemas.d.ts +30 -0
  159. package/dist/src/messages/vfs/createDir/message.schemas.d.ts.map +1 -0
  160. package/dist/src/messages/vfs/createDir/message.schemas.js +17 -0
  161. package/dist/src/messages/vfs/createDir/message.schemas.js.map +1 -0
  162. package/dist/src/messages/vfs/delete/message.schemas.d.ts +30 -0
  163. package/dist/src/messages/vfs/delete/message.schemas.d.ts.map +1 -0
  164. package/dist/src/messages/vfs/delete/message.schemas.js +17 -0
  165. package/dist/src/messages/vfs/delete/message.schemas.js.map +1 -0
  166. package/dist/src/messages/vfs/exists/message.schemas.d.ts +34 -0
  167. package/dist/src/messages/vfs/exists/message.schemas.d.ts.map +1 -0
  168. package/dist/src/messages/vfs/exists/message.schemas.js +21 -0
  169. package/dist/src/messages/vfs/exists/message.schemas.js.map +1 -0
  170. package/dist/src/messages/vfs/getAbsolutePath/message.schemas.d.ts +33 -0
  171. package/dist/src/messages/vfs/getAbsolutePath/message.schemas.d.ts.map +1 -0
  172. package/dist/src/messages/vfs/getAbsolutePath/message.schemas.js +20 -0
  173. package/dist/src/messages/vfs/getAbsolutePath/message.schemas.js.map +1 -0
  174. package/dist/src/messages/vfs/index.d.ts +9 -0
  175. package/dist/src/messages/vfs/index.d.ts.map +1 -0
  176. package/dist/src/messages/vfs/index.js +9 -0
  177. package/dist/src/messages/vfs/index.js.map +1 -0
  178. package/dist/src/messages/vfs/readDir/message.schemas.d.ts +41 -0
  179. package/dist/src/messages/vfs/readDir/message.schemas.d.ts.map +1 -0
  180. package/dist/src/messages/vfs/readDir/message.schemas.js +23 -0
  181. package/dist/src/messages/vfs/readDir/message.schemas.js.map +1 -0
  182. package/dist/src/messages/vfs/readFile/message.schemas.d.ts +31 -0
  183. package/dist/src/messages/vfs/readFile/message.schemas.d.ts.map +1 -0
  184. package/dist/src/messages/vfs/readFile/message.schemas.js +18 -0
  185. package/dist/src/messages/vfs/readFile/message.schemas.js.map +1 -0
  186. package/dist/src/messages/vfs/rename/message.schemas.d.ts +31 -0
  187. package/dist/src/messages/vfs/rename/message.schemas.d.ts.map +1 -0
  188. package/dist/src/messages/vfs/rename/message.schemas.js +18 -0
  189. package/dist/src/messages/vfs/rename/message.schemas.js.map +1 -0
  190. package/dist/src/messages/vfs/writeFile/message.schemas.d.ts +31 -0
  191. package/dist/src/messages/vfs/writeFile/message.schemas.d.ts.map +1 -0
  192. package/dist/src/messages/vfs/writeFile/message.schemas.js +18 -0
  193. package/dist/src/messages/vfs/writeFile/message.schemas.js.map +1 -0
  194. package/dist/src/messages/workspace/changed/message.schemas.d.ts +9 -0
  195. package/dist/src/messages/workspace/changed/message.schemas.d.ts.map +1 -0
  196. package/dist/src/messages/workspace/changed/message.schemas.js +9 -0
  197. package/dist/src/messages/workspace/changed/message.schemas.js.map +1 -0
  198. package/dist/src/messages/workspace/getDetails/message.schemas.d.ts +39 -0
  199. package/dist/src/messages/workspace/getDetails/message.schemas.d.ts.map +1 -0
  200. package/dist/src/messages/workspace/getDetails/message.schemas.js +22 -0
  201. package/dist/src/messages/workspace/getDetails/message.schemas.js.map +1 -0
  202. package/dist/src/messages/workspace/index.d.ts +4 -0
  203. package/dist/src/messages/workspace/index.d.ts.map +1 -0
  204. package/dist/src/messages/workspace/index.js +4 -0
  205. package/dist/src/messages/workspace/index.js.map +1 -0
  206. package/dist/src/messages/workspace/open/message.schemas.d.ts +29 -0
  207. package/dist/src/messages/workspace/open/message.schemas.d.ts.map +1 -0
  208. package/dist/src/messages/workspace/open/message.schemas.js +16 -0
  209. package/dist/src/messages/workspace/open/message.schemas.js.map +1 -0
  210. package/dist/src/namespaces/DocumentNamespace.d.ts +56 -0
  211. package/dist/src/namespaces/DocumentNamespace.d.ts.map +1 -0
  212. package/dist/src/namespaces/DocumentNamespace.js +129 -0
  213. package/dist/src/namespaces/DocumentNamespace.js.map +1 -0
  214. package/dist/src/namespaces/EditorNamespace.d.ts +11 -0
  215. package/dist/src/namespaces/EditorNamespace.d.ts.map +1 -0
  216. package/dist/src/namespaces/EditorNamespace.js +18 -0
  217. package/dist/src/namespaces/EditorNamespace.js.map +1 -0
  218. package/dist/src/namespaces/FsNamespace.d.ts +27 -0
  219. package/dist/src/namespaces/FsNamespace.d.ts.map +1 -0
  220. package/dist/src/namespaces/FsNamespace.js +52 -0
  221. package/dist/src/namespaces/FsNamespace.js.map +1 -0
  222. package/dist/src/namespaces/NativeNamespace.d.ts +11 -0
  223. package/dist/src/namespaces/NativeNamespace.d.ts.map +1 -0
  224. package/dist/src/namespaces/NativeNamespace.js +19 -0
  225. package/dist/src/namespaces/NativeNamespace.js.map +1 -0
  226. package/dist/src/namespaces/PluginNamespace.d.ts +56 -0
  227. package/dist/src/namespaces/PluginNamespace.d.ts.map +1 -0
  228. package/dist/src/namespaces/PluginNamespace.js +116 -0
  229. package/dist/src/namespaces/PluginNamespace.js.map +1 -0
  230. package/dist/src/namespaces/StorageNamespace.d.ts +56 -0
  231. package/dist/src/namespaces/StorageNamespace.d.ts.map +1 -0
  232. package/dist/src/namespaces/StorageNamespace.js +127 -0
  233. package/dist/src/namespaces/StorageNamespace.js.map +1 -0
  234. package/dist/src/namespaces/VfsNamespace.d.ts +25 -0
  235. package/dist/src/namespaces/VfsNamespace.d.ts.map +1 -0
  236. package/dist/src/namespaces/VfsNamespace.js +64 -0
  237. package/dist/src/namespaces/VfsNamespace.js.map +1 -0
  238. package/dist/src/namespaces/WorkspaceNamespace.d.ts +18 -0
  239. package/dist/src/namespaces/WorkspaceNamespace.d.ts.map +1 -0
  240. package/dist/src/namespaces/WorkspaceNamespace.js +48 -0
  241. package/dist/src/namespaces/WorkspaceNamespace.js.map +1 -0
  242. package/dist/src/namespaces/index.d.ts +9 -0
  243. package/dist/src/namespaces/index.d.ts.map +1 -0
  244. package/dist/src/namespaces/index.js +9 -0
  245. package/dist/src/namespaces/index.js.map +1 -0
  246. package/dist/tsconfig.tsbuildinfo +1 -0
  247. package/eslint.config.js +25 -0
  248. package/package.json +28 -0
  249. package/src/PracticalKitSdk.ts +325 -0
  250. package/src/index.ts +10 -0
  251. package/src/keyboard/KeyboardShortcutForwarder.ts +35 -0
  252. package/src/keyboard/index.ts +1 -0
  253. package/src/llm/ToolRegistry.ts +186 -0
  254. package/src/logs/channel/IFrameLogChannelAdapter.ts +44 -0
  255. package/src/logs/channel/ILogChannelAdapter.ts +5 -0
  256. package/src/logs/channel/LogChannel.ts +49 -0
  257. package/src/logs/outputs/types.ts +21 -0
  258. package/src/messages/IFrameClient.ts +113 -0
  259. package/src/messages/IFrameMessageBus.ts +28 -0
  260. package/src/messages/base/index.ts +16 -0
  261. package/src/messages/document/index.ts +4 -0
  262. package/src/messages/document/requestContent/message.schemas.ts +28 -0
  263. package/src/messages/document/save/index.ts +1 -0
  264. package/src/messages/document/save/message.schemas.ts +24 -0
  265. package/src/messages/document/saveRequested/message.schemas.ts +35 -0
  266. package/src/messages/document/saved/message.schemas.ts +29 -0
  267. package/src/messages/editor/index.ts +1 -0
  268. package/src/messages/editor/openFile/message.schemas.ts +22 -0
  269. package/src/messages/fs/fileChanged/message.schemas.ts +12 -0
  270. package/src/messages/fs/index.ts +2 -0
  271. package/src/messages/fs/subscribe/message.schemas.ts +33 -0
  272. package/src/messages/index.ts +41 -0
  273. package/src/messages/llm/index.ts +158 -0
  274. package/src/messages/logs/index.ts +39 -0
  275. package/src/messages/native/call/message.schemas.ts +25 -0
  276. package/src/messages/native/index.ts +1 -0
  277. package/src/messages/plugin/index.ts +95 -0
  278. package/src/messages/storage/index.ts +140 -0
  279. package/src/messages/ui/UiChannel.ts +156 -0
  280. package/src/messages/ui/confirm/index.ts +1 -0
  281. package/src/messages/ui/confirm/message.schemas.ts +36 -0
  282. package/src/messages/ui/getState/message.schemas.ts +33 -0
  283. package/src/messages/ui/index.ts +7 -0
  284. package/src/messages/ui/setCollapseState/message.schemas.ts +34 -0
  285. package/src/messages/ui/showContextMenu/message.schemas.ts +64 -0
  286. package/src/messages/ui/showNotification/message.schemas.ts +41 -0
  287. package/src/messages/ui/tabsChanged/message.schemas.ts +25 -0
  288. package/src/messages/vfs/createDir/message.schemas.ts +20 -0
  289. package/src/messages/vfs/delete/message.schemas.ts +20 -0
  290. package/src/messages/vfs/exists/message.schemas.ts +32 -0
  291. package/src/messages/vfs/getAbsolutePath/message.schemas.ts +27 -0
  292. package/src/messages/vfs/index.ts +8 -0
  293. package/src/messages/vfs/readDir/message.schemas.ts +36 -0
  294. package/src/messages/vfs/readFile/message.schemas.ts +21 -0
  295. package/src/messages/vfs/rename/message.schemas.ts +21 -0
  296. package/src/messages/vfs/writeFile/message.schemas.ts +21 -0
  297. package/src/messages/workspace/changed/message.schemas.ts +18 -0
  298. package/src/messages/workspace/getDetails/message.schemas.ts +39 -0
  299. package/src/messages/workspace/index.ts +3 -0
  300. package/src/messages/workspace/open/message.schemas.ts +27 -0
  301. package/src/namespaces/DocumentNamespace.ts +164 -0
  302. package/src/namespaces/EditorNamespace.ts +27 -0
  303. package/src/namespaces/FsNamespace.ts +77 -0
  304. package/src/namespaces/NativeNamespace.ts +34 -0
  305. package/src/namespaces/PluginNamespace.ts +156 -0
  306. package/src/namespaces/StorageNamespace.ts +186 -0
  307. package/src/namespaces/VfsNamespace.ts +135 -0
  308. package/src/namespaces/WorkspaceNamespace.ts +80 -0
  309. package/src/namespaces/index.ts +8 -0
  310. package/tsconfig.json +41 -0
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # PracticalKit Plugin SDK
2
+
3
+ This is the SDK for building plugins with PracticalKit.
4
+
5
+ [Security Model](./docs/security-model.md)
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAUN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EACL,YAAY,GAGb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,OAAO,eAAe;IAClB,MAAM,CAAe;IACrB,iBAAiB,CAAa;IACtC,+EAA+E;IAC9D,WAAW,CAAuB;IACnD,iDAAiD;IAChC,YAAY,CAAe;IAC5C,+BAA+B;IACd,YAAY,CAAe;IAC3B,kBAAkB,CAAqB;IACvC,eAAe,CAAkB;IACjC,eAAe,CAAkB;IACjC,WAAW,CAAc;IACzB,iBAAiB,CAAoB;IACrC,eAAe,CAAkB;IACjC,gBAAgB,CAAmB;IACpD,oEAAoE;IACnD,yBAAyB,CAA4B;IACtE,aAAa;IACG,EAAE,CAAY;IAE9B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,aAAa,GAA4B,IAAI,uBAAuB,CACxE,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,6CAA6C;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,yCAAyC;QACzC,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,+BAA+B;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,4BAA4B;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,yBAAyB,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,QAAqC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,GAAG,GAAG;QACX,MAAM,EAAE,CACN,IAAY,EAC4C,EAAE,CAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;QAChC,OAAO,EAAE,CAAC,IAAY,EAA6B,EAAE,CACnD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,QAAQ,EAAE,CAAC,IAAY,EAAmB,EAAE,CAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,SAAS,EAAE,CAAC,IAAY,EAAE,OAAe,EAAiB,EAAE,CAC1D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;QAC5C,eAAe,EAAE,CAAC,IAAY,EAAmB,EAAE,CACjD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,CAAC,OAAe,EAAE,OAAe,EAAiB,EAAE,CAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAC5C,MAAM,EAAE,CAAC,IAAY,EAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;QACvE,SAAS,EAAE,CAAC,IAAY,EAAiB,EAAE,CACzC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;KACpC,CAAC;IAEK,SAAS,GAAG;QACjB,UAAU,EAAE,GAA8B,EAAE,CAC1C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;QACtC,SAAS,EAAE,CAAC,QAA6C,EAAgB,EAAE,CACzE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC7C;;;WAGG;QACH,IAAI,EAAE,GAA2B,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;KACnE,CAAC;IAEK,MAAM,GAAG;QACd,QAAQ,EAAE,CAAC,IAAY,EAAiB,EAAE,CACxC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;KACtC,CAAC;IAEK,MAAM,GAAG;QACd,IAAI,EAAE,CACJ,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,IAAa,EACK,EAAE,CACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;KAC/D,CAAC;IAEK,EAAE,GAAG;QACV;;;WAGG;QACH,SAAS,EAAE,GAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAC5D;;WAEG;QACH,WAAW,EAAE,GAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAChE;;;;;WAKG;QACH,aAAa,EAAE,CAAC,QAAwC,EAAgB,EAAE,CACxE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;KAC3C,CAAC;IAEF;;;;;;;;OAQG;IACI,QAAQ,GAAG;QAChB,cAAc,EAAE,GAA+C,EAAE,CAC/D,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;QACzC,WAAW,EAAE,GAAoB,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACxE,eAAe,EAAE,CACf,QAEoB,EACN,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,CAAC;QACnE,OAAO,EAAE,CACP,QAA4D,EAC9C,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3D,cAAc,EAAE,CACd,SAAiB,EACjB,OAAgB,EAChB,KAAc,EACR,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC;KAC5E,CAAC;IAEF;;;;;OAKG;IACI,MAAM,GAAG;QACd,WAAW,EAAE,CACX,cAAsB,EACtB,OAAgB,EACJ,EAAE,CACd,IAAI,CAAC,eAAe,CAAC,WAAW,CAAI,cAAc,EAAE,OAAO,CAAC;QAC9D,SAAS,EAAE,CACT,OAE+B,EACjB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC;QAC1D,aAAa,EAAE,CAAC,OAAgB,EAAiB,EAAE,CACjD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7C,WAAW,EAAE,CACX,OAAgE,EAClD,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC;KAC7D,CAAC;IAEF;;;;;;;;;OASG;IACI,OAAO,GAAG;QACf,qBAAqB;QACrB,GAAG,EAAE,CAAC,GAAW,EAA8B,EAAE,CAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,GAAG,EAAE,CAAC,GAAW,EAAE,KAAiB,EAAiB,EAAE,CACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;QACvC,MAAM,EAAE,CAAC,GAAW,EAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC;QACzE,6BAA6B;QAC7B,SAAS,EAAE,CAAC,GAAW,EAA8B,EAAE,CACrD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC;QACtC,SAAS,EAAE,CAAC,GAAW,EAAE,KAAiB,EAAiB,EAAE,CAC3D,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;QAC7C,YAAY,EAAE,CAAC,GAAW,EAAiB,EAAE,CAC3C,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC;KAC1C,CAAC;IAEF,6EAA6E;IAC7E,cAAc;IACd,6EAA6E;IAE7E;;;;;;;;;;OAUG;IACH,IAAI,GAAG;QACL,iCAAiC;QACjC,aAAa,EAAE,CAAC,WAAmB,EAAc,EAAE,CACjD,IAAI,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;QAC/C,gDAAgD;QAChD,KAAK,EAAE,CAAC,OAAe,EAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;QACvE,+CAA+C;QAC/C,IAAI,EAAE,CAAC,OAAe,EAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;QACrE,+CAA+C;QAC/C,IAAI,EAAE,CAAC,OAAe,EAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;QACrE,gDAAgD;QAChD,KAAK,EAAE,CAAC,OAAe,EAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;KACxE,CAAC;IAEF,6EAA6E;IAC7E,wBAAwB;IACxB,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,GAAG,GAAG;QACJ;;WAEG;QACH,SAAS,EAAE,GAAqC,EAAE;YAChD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QACvC,CAAC;QAED;;WAEG;QACH,WAAW,EAAE,CAAC,MAAc,EAAE,IAAa,EAAoB,EAAE;YAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QAED;;;WAGG;QACH,YAAY,EAAE,CAAC,YAAiC,EAAmB,EAAE;YACnE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;QAED;;WAEG;QACH,cAAc,EAAE,CAAC,IAAY,EAAiB,EAAE;YAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;KACF,CAAC;CACH"}
@@ -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,6 @@
1
+ export { LogChannel } from "./logs/channel/LogChannel.js";
2
+ export { PracticalKitSdk, } from "./PracticalKitSdk.js";
3
+ export * from "./messages/index.js";
4
+ export { safeParse } from "valibot";
5
+ const x = {};
6
+ //# sourceMappingURL=index.js.map
@@ -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,2 @@
1
+ export { KeyboardShortcutForwarder } from "./KeyboardShortcutForwarder.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { KeyboardShortcutForwarder } from "./KeyboardShortcutForwarder.js";
2
+ //# sourceMappingURL=index.js.map
@@ -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"}