|
7 | 7 | from .config_schemas import * |
8 | 8 | from .hooks import * |
9 | 9 | from .runner import * |
10 | | - |
11 | | -# Initial Python plugin SDK TODO list |
12 | | -# |
13 | | -# General tasks |
14 | | -# * [DONE] refactor hook channel and controller definitions out to a submodule |
15 | | -# * [DONE] refactor hook registration to be data driven instead of hardcoded in the runner |
16 | | -# * refactor to allow "Abort" request handling to be common across hook invocation tasks |
17 | | -# * refactor to allow hook invocation error handling to be common across hook invocation tasks |
18 | | -# * [DONE] gracefully handle app termination while a dev plugin is still running |
19 | | -# * [DONE] gracefully handle using Ctrl-C to terminate a running dev plugin |
20 | | -# * [DONE] add async tool handling support to SDK (as part of adding .act() to the async API) |
21 | | -# |
22 | | -# Controller APIs (may be limited to relevant hook controllers) |
23 | | -# |
24 | | -# * [DONE] status blocks (both simple "done" blocks, and blocks with in-place updates) |
25 | | -# * citation blocks |
26 | | -# * debug info blocks |
27 | | -# * [DONE] tool status reporting |
28 | | -# * full content block display |
29 | | -# * chat history retrieval |
30 | | -# * model handle retrieval |
31 | | -# * UI block sender name configuration |
32 | | -# * [not necessary (handled directly by UI)] interactive tool call request confirmation |
33 | | -# |
34 | | -# Prompt preprocessing hook |
35 | | -# * [DONE] emit a status notification block when the demo plugin fires |
36 | | -# * [DONE] add a global plugin config to control the in-place status update demo |
37 | | -# * [DONE] handle "Abort" requests from server (including sending "Aborted" responses) |
38 | | -# * [DONE] catch hook invocation failures and send "Error" responses |
39 | | -# * [DONE] this includes adding runtime checks for the hook returning the wrong type |
40 | | -# |
41 | | -# Token generator hook |
42 | | -# * add an example plugin for this (probably proxying a remote LM Studio instance) |
43 | | -# * define the channel, hook invocation task and hook invocation controller for this hook |
44 | | -# * main request initiation message is "Generate" |
45 | | -# * handle "Abort" requests from server (including sending "Aborted" responses) |
46 | | -# * add controller API for fragment generation |
47 | | -# * add controller API for tool call generation |
48 | | -# * add controller API to indicate when token generation for a given request is completed (or failed) |
49 | | -# * catch hook invocation failures and send "Error" responses |
50 | | -# |
51 | | -# Tools provider hook |
52 | | -# * [DONE] add example synchronous tool plugin (dice rolling) |
53 | | -# * [DONE] add example asynchronous tool plugin (Wikipedia lookup) (note: requires async tool support in SDK) |
54 | | -# * [DONE] define the channel, hook invocation task and hook invocation controller for this hook |
55 | | -# * [DONE] main request initiation message is "InitSession" (with Initialized/Failed responses) |
56 | | -# * [DONE] handle "AbortToolCall" requests from server |
57 | | -# * [DONE] handle "CallTool" requests from server (including sending "CallComplete"/"CallError" response) |
58 | | -# * [DONE] handle "DiscardSession" requests from server |
59 | | -# * [DONE] add controller API for tool call status and warning reporting |
60 | | -# |
61 | | -# Plugin config field definitions |
62 | | -# * define approach for specifying plugin config field constraints and style options (e.g. numeric sliders) |
63 | | -# * [usable] numeric: https://github.com/lmstudio-ai/lmstudio-js/blob/main/packages/lms-kv-config/src/valueTypes.ts#L99 |
64 | | -# * [usable] string |
65 | | -# * [usable] boolean |
66 | | -# * select (array of strings, or value/label string pairs) |
67 | | -# * string array |
0 commit comments