Skip to content

Commit 88091c2

Browse files
committed
feat: add useLmTools
1 parent edfebd4 commit 88091c2

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

packages/core/src/composables/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export * from './useFsWatcher'
2525
export * from './useIsDarkTheme'
2626
export * from './useIsTelemetryEnabled'
2727
export * from './useL10nText'
28+
export * from './useLmTools'
2829
export * from './useLogger'
2930
export * from './useLogLevel'
3031
export * from './useNotebookEditorSelection'
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { computed, shallowRef } from '@reactive-vscode/reactivity'
2+
import { lm } from 'vscode'
3+
import { createSingletonComposable } from '../utils'
4+
import { useDisposable } from './useDisposable'
5+
6+
/**
7+
* A list of all available tools that were registered by all extensions using `vscode::lm.registerTool`.
8+
*
9+
* @reactive `lm.tools`
10+
* @category lm
11+
*/
12+
export const useLmTools = createSingletonComposable(() => {
13+
const tools = shallowRef(lm.tools)
14+
15+
useDisposable(lm.onDidChangeChatModels(() => {
16+
tools.value = lm.tools
17+
}))
18+
19+
return computed(() => tools.value)
20+
})

0 commit comments

Comments
 (0)