@tanstack/openai-base 0.9.14 → 0.9.15

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 (48) hide show
  1. package/dist/esm/adapters/chat-completions-text.js +1 -1
  2. package/dist/esm/adapters/responses-text.js +1 -1
  3. package/dist/esm/index.js +1 -0
  4. package/dist/esm/tools/apply-patch-tool.js +3 -2
  5. package/dist/esm/tools/apply-patch-tool.js.map +1 -1
  6. package/dist/esm/tools/code-interpreter-tool.js +4 -3
  7. package/dist/esm/tools/code-interpreter-tool.js.map +1 -1
  8. package/dist/esm/tools/computer-use-tool.js +4 -3
  9. package/dist/esm/tools/computer-use-tool.js.map +1 -1
  10. package/dist/esm/tools/custom-tool.js +4 -3
  11. package/dist/esm/tools/custom-tool.js.map +1 -1
  12. package/dist/esm/tools/file-search-tool.js +4 -3
  13. package/dist/esm/tools/file-search-tool.js.map +1 -1
  14. package/dist/esm/tools/image-generation-tool.d.ts +2 -4
  15. package/dist/esm/tools/image-generation-tool.js +6 -7
  16. package/dist/esm/tools/image-generation-tool.js.map +1 -1
  17. package/dist/esm/tools/index.js +14 -0
  18. package/dist/esm/tools/local-shell-tool.js +3 -2
  19. package/dist/esm/tools/local-shell-tool.js.map +1 -1
  20. package/dist/esm/tools/mcp-tool.js +7 -6
  21. package/dist/esm/tools/mcp-tool.js.map +1 -1
  22. package/dist/esm/tools/openai-provider-tool.d.ts +20 -0
  23. package/dist/esm/tools/openai-provider-tool.js +49 -0
  24. package/dist/esm/tools/openai-provider-tool.js.map +1 -0
  25. package/dist/esm/tools/shell-tool.js +4 -3
  26. package/dist/esm/tools/shell-tool.js.map +1 -1
  27. package/dist/esm/tools/tool-converter.js +7 -18
  28. package/dist/esm/tools/tool-converter.js.map +1 -1
  29. package/dist/esm/tools/web-search-preview-tool.d.ts +1 -2
  30. package/dist/esm/tools/web-search-preview-tool.js +5 -5
  31. package/dist/esm/tools/web-search-preview-tool.js.map +1 -1
  32. package/dist/esm/tools/web-search-tool.d.ts +2 -4
  33. package/dist/esm/tools/web-search-tool.js +6 -7
  34. package/dist/esm/tools/web-search-tool.js.map +1 -1
  35. package/package.json +3 -3
  36. package/src/tools/apply-patch-tool.ts +9 -5
  37. package/src/tools/code-interpreter-tool.ts +17 -8
  38. package/src/tools/computer-use-tool.ts +14 -7
  39. package/src/tools/custom-tool.ts +14 -7
  40. package/src/tools/file-search-tool.ts +14 -7
  41. package/src/tools/image-generation-tool.ts +19 -11
  42. package/src/tools/local-shell-tool.ts +9 -5
  43. package/src/tools/mcp-tool.ts +19 -9
  44. package/src/tools/openai-provider-tool.ts +72 -0
  45. package/src/tools/shell-tool.ts +17 -9
  46. package/src/tools/tool-converter.ts +28 -43
  47. package/src/tools/web-search-preview-tool.ts +17 -8
  48. package/src/tools/web-search-tool.ts +18 -10
@@ -1,3 +1,7 @@
1
+ import {
2
+ getOpenAIProviderToolMetadata,
3
+ openAIProviderTool,
4
+ } from './openai-provider-tool'
1
5
  import type { WebSearchPreviewTool as WebSearchPreviewToolConfig } from 'openai/resources/responses/responses'
2
6
  import type { Tool } from '@tanstack/ai'
3
7
 
@@ -9,13 +13,15 @@ export type WebSearchPreviewTool = WebSearchPreviewToolConfig
9
13
  /**
10
14
  * Converts a standard Tool to OpenAI WebSearchPreviewTool format. Force the
11
15
  * literal `type: 'web_search_preview'` instead of trusting `metadata.type`,
12
- * since a hand-authored tool with a missing or wrong `type` would emit a
13
- * malformed payload while the dispatcher already routed by `tool.name`.
16
+ * so a missing or wrong metadata type cannot produce a malformed payload.
14
17
  */
15
18
  export function convertWebSearchPreviewToolToAdapterFormat(
16
19
  tool: Tool,
17
20
  ): WebSearchPreviewToolConfig {
18
- const metadata = tool.metadata as Omit<WebSearchPreviewToolConfig, 'type'>
21
+ const metadata = getOpenAIProviderToolMetadata(tool) as Omit<
22
+ WebSearchPreviewToolConfig,
23
+ 'type'
24
+ >
19
25
  return {
20
26
  ...metadata,
21
27
  type: 'web_search_preview',
@@ -31,9 +37,12 @@ export function convertWebSearchPreviewToolToAdapterFormat(
31
37
  export function webSearchPreviewTool(
32
38
  toolData: WebSearchPreviewToolConfig,
33
39
  ): Tool {
34
- return {
35
- name: 'web_search_preview',
36
- description: 'Search the web (preview version)',
37
- metadata: toolData,
38
- }
40
+ return openAIProviderTool(
41
+ {
42
+ name: 'web_search_preview',
43
+ description: 'Search the web (preview version)',
44
+ metadata: toolData,
45
+ },
46
+ 'web_search_preview',
47
+ )
39
48
  }
@@ -1,3 +1,7 @@
1
+ import {
2
+ getOpenAIProviderToolMetadata,
3
+ openAIProviderTool,
4
+ } from './openai-provider-tool'
1
5
  import type { WebSearchTool as WebSearchToolConfig } from 'openai/resources/responses/responses'
2
6
  import type { Tool } from '@tanstack/ai'
3
7
 
@@ -8,15 +12,16 @@ export type WebSearchTool = WebSearchToolConfig
8
12
 
9
13
  /**
10
14
  * Converts a standard Tool to OpenAI WebSearchTool format. Spread `metadata`
11
- * first, then force `type: 'web_search'` last to keep the runtime `type`
12
- * matching the discriminator the dispatcher routed by — otherwise a tool
13
- * authored by hand with a different `metadata.type` would emit a malformed
14
- * payload.
15
+ * first, then force `type: 'web_search'` last so a different metadata type
16
+ * cannot produce a malformed payload.
15
17
  */
16
18
  export function convertWebSearchToolToAdapterFormat(
17
19
  tool: Tool,
18
20
  ): WebSearchToolConfig {
19
- const metadata = tool.metadata as Omit<WebSearchToolConfig, 'type'>
21
+ const metadata = getOpenAIProviderToolMetadata(tool) as Omit<
22
+ WebSearchToolConfig,
23
+ 'type'
24
+ >
20
25
  return {
21
26
  ...metadata,
22
27
  type: 'web_search',
@@ -30,9 +35,12 @@ export function convertWebSearchToolToAdapterFormat(
30
35
  * re-wrap this in their own package.
31
36
  */
32
37
  export function webSearchTool(toolData: WebSearchToolConfig): Tool {
33
- return {
34
- name: 'web_search',
35
- description: 'Search the web',
36
- metadata: toolData,
37
- }
38
+ return openAIProviderTool(
39
+ {
40
+ name: 'web_search',
41
+ description: 'Search the web',
42
+ metadata: toolData,
43
+ },
44
+ 'web_search',
45
+ )
38
46
  }