@tanstack/openai-base 0.7.0 → 0.8.0
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/dist/esm/tools/computer-use-tool.d.ts +1 -1
- package/dist/esm/tools/computer-use-tool.js.map +1 -1
- package/dist/esm/tools/shell-tool.d.ts +13 -3
- package/dist/esm/tools/shell-tool.js +12 -4
- package/dist/esm/tools/shell-tool.js.map +1 -1
- package/dist/esm/tools/tool-converter.js +1 -1
- package/dist/esm/tools/tool-converter.js.map +1 -1
- package/package.json +2 -2
- package/src/tools/computer-use-tool.ts +1 -1
- package/src/tools/shell-tool.ts +23 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComputerUsePreviewTool as ComputerUseToolConfig } from 'openai/resources/responses/responses';
|
|
2
2
|
import { Tool } from '@tanstack/ai';
|
|
3
3
|
export type { ComputerUseToolConfig };
|
|
4
4
|
/** @deprecated Renamed to `ComputerUseToolConfig`. Will be removed in a future release. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer-use-tool.js","sources":["../../../src/tools/computer-use-tool.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"computer-use-tool.js","sources":["../../../src/tools/computer-use-tool.ts"],"sourcesContent":["import type { ComputerUsePreviewTool as ComputerUseToolConfig } from 'openai/resources/responses/responses'\nimport type { Tool } from '@tanstack/ai'\n\nexport type { ComputerUseToolConfig }\n\n/** @deprecated Renamed to `ComputerUseToolConfig`. Will be removed in a future release. */\nexport type ComputerUseTool = ComputerUseToolConfig\n\n/**\n * Converts a standard Tool to OpenAI ComputerUseTool format\n */\nexport function convertComputerUseToolToAdapterFormat(\n tool: Tool,\n): ComputerUseToolConfig {\n const metadata = tool.metadata as ComputerUseToolConfig\n return {\n type: 'computer_use_preview',\n display_height: metadata.display_height,\n display_width: metadata.display_width,\n environment: metadata.environment,\n }\n}\n\n/**\n * Creates a standard Tool from ComputerUseTool parameters.\n *\n * Base (non-branded) factory. Providers that need branded return types should\n * re-wrap this in their own package.\n */\nexport function computerUseTool(toolData: ComputerUseToolConfig): Tool {\n return {\n name: 'computer_use_preview',\n description: 'Control a virtual computer',\n metadata: {\n ...toolData,\n },\n }\n}\n"],"names":[],"mappings":"AAWO,SAAS,sCACd,MACuB;AACvB,QAAM,WAAW,KAAK;AACtB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,gBAAgB,SAAS;AAAA,IACzB,eAAe,SAAS;AAAA,IACxB,aAAa,SAAS;AAAA,EAAA;AAE1B;AAQO,SAAS,gBAAgB,UAAuC;AACrE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,MACR,GAAG;AAAA,IAAA;AAAA,EACL;AAEJ;"}
|
|
@@ -4,13 +4,23 @@ export type { ShellToolConfig };
|
|
|
4
4
|
/** @deprecated Renamed to `ShellToolConfig`. Will be removed in a future release. */
|
|
5
5
|
export type ShellTool = ShellToolConfig;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Config accepted by {@link shellTool}. `environment` mirrors the OpenAI
|
|
8
|
+
* Responses API shell tool environment (e.g. `container_auto` + `skills`).
|
|
9
|
+
* Typed via indexed access so it tracks the installed SDK without naming the
|
|
10
|
+
* union members directly.
|
|
8
11
|
*/
|
|
9
|
-
export
|
|
12
|
+
export interface ShellToolFactoryConfig {
|
|
13
|
+
environment?: NonNullable<ShellToolConfig['environment']>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Converts a standard Tool to OpenAI ShellTool format, preserving any
|
|
17
|
+
* `environment` (container config + skills) stored in metadata.
|
|
18
|
+
*/
|
|
19
|
+
export declare function convertShellToolToAdapterFormat(tool: Tool): ShellToolConfig;
|
|
10
20
|
/**
|
|
11
21
|
* Creates a standard Tool from ShellTool parameters.
|
|
12
22
|
*
|
|
13
23
|
* Base (non-branded) factory. Providers that need branded return types should
|
|
14
24
|
* re-wrap this in their own package.
|
|
15
25
|
*/
|
|
16
|
-
export declare function shellTool(): Tool;
|
|
26
|
+
export declare function shellTool(config?: ShellToolFactoryConfig): Tool;
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
function convertShellToolToAdapterFormat(
|
|
1
|
+
function convertShellToolToAdapterFormat(tool) {
|
|
2
|
+
const metadata = tool.metadata ?? {};
|
|
2
3
|
return {
|
|
3
|
-
type: "shell"
|
|
4
|
+
type: "shell",
|
|
5
|
+
...metadata.environment !== void 0 && {
|
|
6
|
+
environment: metadata.environment
|
|
7
|
+
}
|
|
4
8
|
};
|
|
5
9
|
}
|
|
6
|
-
function shellTool() {
|
|
10
|
+
function shellTool(config = {}) {
|
|
7
11
|
return {
|
|
8
12
|
name: "shell",
|
|
9
13
|
description: "Execute shell commands",
|
|
10
|
-
metadata: {
|
|
14
|
+
metadata: {
|
|
15
|
+
...config.environment !== void 0 && {
|
|
16
|
+
environment: config.environment
|
|
17
|
+
}
|
|
18
|
+
}
|
|
11
19
|
};
|
|
12
20
|
}
|
|
13
21
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-tool.js","sources":["../../../src/tools/shell-tool.ts"],"sourcesContent":["import type { FunctionShellTool as ShellToolConfig } from 'openai/resources/responses/responses'\nimport type { Tool } from '@tanstack/ai'\n\nexport type { ShellToolConfig }\n\n/** @deprecated Renamed to `ShellToolConfig`. Will be removed in a future release. */\nexport type ShellTool = ShellToolConfig\n\n/**\n * Converts a standard Tool to OpenAI ShellTool format\n */\nexport function convertShellToolToAdapterFormat(
|
|
1
|
+
{"version":3,"file":"shell-tool.js","sources":["../../../src/tools/shell-tool.ts"],"sourcesContent":["import type { FunctionShellTool as ShellToolConfig } from 'openai/resources/responses/responses'\nimport type { Tool } from '@tanstack/ai'\n\nexport type { ShellToolConfig }\n\n/** @deprecated Renamed to `ShellToolConfig`. Will be removed in a future release. */\nexport type ShellTool = ShellToolConfig\n\n/**\n * Config accepted by {@link shellTool}. `environment` mirrors the OpenAI\n * Responses API shell tool environment (e.g. `container_auto` + `skills`).\n * Typed via indexed access so it tracks the installed SDK without naming the\n * union members directly.\n */\nexport interface ShellToolFactoryConfig {\n environment?: NonNullable<ShellToolConfig['environment']>\n}\n\n/**\n * Converts a standard Tool to OpenAI ShellTool format, preserving any\n * `environment` (container config + skills) stored in metadata.\n */\nexport function convertShellToolToAdapterFormat(tool: Tool): ShellToolConfig {\n const metadata = (tool.metadata ?? {}) as ShellToolFactoryConfig\n return {\n type: 'shell',\n ...(metadata.environment !== undefined && {\n environment: metadata.environment,\n }),\n }\n}\n\n/**\n * Creates a standard Tool from ShellTool parameters.\n *\n * Base (non-branded) factory. Providers that need branded return types should\n * re-wrap this in their own package.\n */\nexport function shellTool(config: ShellToolFactoryConfig = {}): Tool {\n return {\n name: 'shell',\n description: 'Execute shell commands',\n metadata: {\n ...(config.environment !== undefined && {\n environment: config.environment,\n }),\n },\n }\n}\n"],"names":[],"mappings":"AAsBO,SAAS,gCAAgC,MAA6B;AAC3E,QAAM,WAAY,KAAK,YAAY,CAAA;AACnC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,GAAI,SAAS,gBAAgB,UAAa;AAAA,MACxC,aAAa,SAAS;AAAA,IAAA;AAAA,EACxB;AAEJ;AAQO,SAAS,UAAU,SAAiC,IAAU;AACnE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,MACR,GAAI,OAAO,gBAAgB,UAAa;AAAA,QACtC,aAAa,OAAO;AAAA,MAAA;AAAA,IACtB;AAAA,EACF;AAEJ;"}
|
|
@@ -43,7 +43,7 @@ function convertToolsToProviderFormat(tools) {
|
|
|
43
43
|
case "mcp":
|
|
44
44
|
return convertMCPToolToAdapterFormat(tool);
|
|
45
45
|
case "shell":
|
|
46
|
-
return convertShellToolToAdapterFormat();
|
|
46
|
+
return convertShellToolToAdapterFormat(tool);
|
|
47
47
|
case "web_search_preview":
|
|
48
48
|
return convertWebSearchPreviewToolToAdapterFormat(tool);
|
|
49
49
|
case "web_search":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-converter.js","sources":["../../../src/tools/tool-converter.ts"],"sourcesContent":["import { convertApplyPatchToolToAdapterFormat } from './apply-patch-tool'\nimport { convertCodeInterpreterToolToAdapterFormat } from './code-interpreter-tool'\nimport { convertComputerUseToolToAdapterFormat } from './computer-use-tool'\nimport { convertCustomToolToAdapterFormat } from './custom-tool'\nimport { convertFileSearchToolToAdapterFormat } from './file-search-tool'\nimport { convertFunctionToolToAdapterFormat } from './function-tool'\nimport { convertImageGenerationToolToAdapterFormat } from './image-generation-tool'\nimport { convertLocalShellToolToAdapterFormat } from './local-shell-tool'\nimport { convertMCPToolToAdapterFormat } from './mcp-tool'\nimport { convertShellToolToAdapterFormat } from './shell-tool'\nimport { convertWebSearchPreviewToolToAdapterFormat } from './web-search-preview-tool'\nimport { convertWebSearchToolToAdapterFormat } from './web-search-tool'\nimport type { OpenAITool } from './index'\nimport type { Tool } from '@tanstack/ai'\n\nconst SPECIAL_TOOL_NAMES = new Set([\n 'apply_patch',\n 'code_interpreter',\n 'computer_use_preview',\n 'file_search',\n 'image_generation',\n 'local_shell',\n 'mcp',\n 'shell',\n 'web_search_preview',\n 'web_search',\n 'custom',\n])\n\n/**\n * Converts an array of standard Tools to OpenAI-specific format\n */\nexport function convertToolsToProviderFormat(\n tools: Array<Tool>,\n): Array<OpenAITool> {\n return tools.map((tool) => {\n const toolName = tool.name\n\n if (SPECIAL_TOOL_NAMES.has(toolName)) {\n switch (toolName) {\n case 'apply_patch':\n return convertApplyPatchToolToAdapterFormat(tool)\n case 'code_interpreter':\n return convertCodeInterpreterToolToAdapterFormat(tool)\n case 'computer_use_preview':\n return convertComputerUseToolToAdapterFormat(tool)\n case 'file_search':\n return convertFileSearchToolToAdapterFormat(tool)\n case 'image_generation':\n return convertImageGenerationToolToAdapterFormat(tool)\n case 'local_shell':\n return convertLocalShellToolToAdapterFormat(tool)\n case 'mcp':\n return convertMCPToolToAdapterFormat(tool)\n case 'shell':\n return convertShellToolToAdapterFormat(tool)\n case 'web_search_preview':\n return convertWebSearchPreviewToolToAdapterFormat(tool)\n case 'web_search':\n return convertWebSearchToolToAdapterFormat(tool)\n case 'custom':\n return convertCustomToolToAdapterFormat(tool)\n }\n }\n\n return convertFunctionToolToAdapterFormat(tool)\n })\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAeA,MAAM,yCAAyB,IAAI;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKM,SAAS,6BACd,OACmB;AACnB,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,UAAM,WAAW,KAAK;AAEtB,QAAI,mBAAmB,IAAI,QAAQ,GAAG;AACpC,cAAQ,UAAA;AAAA,QACN,KAAK;AACH,iBAAO,qCAAyC;AAAA,QAClD,KAAK;AACH,iBAAO,0CAA0C,IAAI;AAAA,QACvD,KAAK;AACH,iBAAO,sCAAsC,IAAI;AAAA,QACnD,KAAK;AACH,iBAAO,qCAAqC,IAAI;AAAA,QAClD,KAAK;AACH,iBAAO,0CAA0C,IAAI;AAAA,QACvD,KAAK;AACH,iBAAO,qCAAyC;AAAA,QAClD,KAAK;AACH,iBAAO,8BAA8B,IAAI;AAAA,QAC3C,KAAK;AACH,iBAAO,
|
|
1
|
+
{"version":3,"file":"tool-converter.js","sources":["../../../src/tools/tool-converter.ts"],"sourcesContent":["import { convertApplyPatchToolToAdapterFormat } from './apply-patch-tool'\nimport { convertCodeInterpreterToolToAdapterFormat } from './code-interpreter-tool'\nimport { convertComputerUseToolToAdapterFormat } from './computer-use-tool'\nimport { convertCustomToolToAdapterFormat } from './custom-tool'\nimport { convertFileSearchToolToAdapterFormat } from './file-search-tool'\nimport { convertFunctionToolToAdapterFormat } from './function-tool'\nimport { convertImageGenerationToolToAdapterFormat } from './image-generation-tool'\nimport { convertLocalShellToolToAdapterFormat } from './local-shell-tool'\nimport { convertMCPToolToAdapterFormat } from './mcp-tool'\nimport { convertShellToolToAdapterFormat } from './shell-tool'\nimport { convertWebSearchPreviewToolToAdapterFormat } from './web-search-preview-tool'\nimport { convertWebSearchToolToAdapterFormat } from './web-search-tool'\nimport type { OpenAITool } from './index'\nimport type { Tool } from '@tanstack/ai'\n\nconst SPECIAL_TOOL_NAMES = new Set([\n 'apply_patch',\n 'code_interpreter',\n 'computer_use_preview',\n 'file_search',\n 'image_generation',\n 'local_shell',\n 'mcp',\n 'shell',\n 'web_search_preview',\n 'web_search',\n 'custom',\n])\n\n/**\n * Converts an array of standard Tools to OpenAI-specific format\n */\nexport function convertToolsToProviderFormat(\n tools: Array<Tool>,\n): Array<OpenAITool> {\n return tools.map((tool) => {\n const toolName = tool.name\n\n if (SPECIAL_TOOL_NAMES.has(toolName)) {\n switch (toolName) {\n case 'apply_patch':\n return convertApplyPatchToolToAdapterFormat(tool)\n case 'code_interpreter':\n return convertCodeInterpreterToolToAdapterFormat(tool)\n case 'computer_use_preview':\n return convertComputerUseToolToAdapterFormat(tool)\n case 'file_search':\n return convertFileSearchToolToAdapterFormat(tool)\n case 'image_generation':\n return convertImageGenerationToolToAdapterFormat(tool)\n case 'local_shell':\n return convertLocalShellToolToAdapterFormat(tool)\n case 'mcp':\n return convertMCPToolToAdapterFormat(tool)\n case 'shell':\n return convertShellToolToAdapterFormat(tool)\n case 'web_search_preview':\n return convertWebSearchPreviewToolToAdapterFormat(tool)\n case 'web_search':\n return convertWebSearchToolToAdapterFormat(tool)\n case 'custom':\n return convertCustomToolToAdapterFormat(tool)\n }\n }\n\n return convertFunctionToolToAdapterFormat(tool)\n })\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAeA,MAAM,yCAAyB,IAAI;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKM,SAAS,6BACd,OACmB;AACnB,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,UAAM,WAAW,KAAK;AAEtB,QAAI,mBAAmB,IAAI,QAAQ,GAAG;AACpC,cAAQ,UAAA;AAAA,QACN,KAAK;AACH,iBAAO,qCAAyC;AAAA,QAClD,KAAK;AACH,iBAAO,0CAA0C,IAAI;AAAA,QACvD,KAAK;AACH,iBAAO,sCAAsC,IAAI;AAAA,QACnD,KAAK;AACH,iBAAO,qCAAqC,IAAI;AAAA,QAClD,KAAK;AACH,iBAAO,0CAA0C,IAAI;AAAA,QACvD,KAAK;AACH,iBAAO,qCAAyC;AAAA,QAClD,KAAK;AACH,iBAAO,8BAA8B,IAAI;AAAA,QAC3C,KAAK;AACH,iBAAO,gCAAgC,IAAI;AAAA,QAC7C,KAAK;AACH,iBAAO,2CAA2C,IAAI;AAAA,QACxD,KAAK;AACH,iBAAO,oCAAoC,IAAI;AAAA,QACjD,KAAK;AACH,iBAAO,iCAAiC,IAAI;AAAA,MAAA;AAAA,IAElD;AAEA,WAAO,mCAAmC,IAAI;AAAA,EAChD,CAAC;AACH;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/openai-base",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Shared OpenAI SDK base adapters for TanStack AI providers using Chat Completions and Responses APIs.",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"structured-outputs"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"openai": "^6.
|
|
38
|
+
"openai": "^6.41.0",
|
|
39
39
|
"@tanstack/ai-utils": "0.2.1"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ComputerUsePreviewTool as ComputerUseToolConfig } from 'openai/resources/responses/responses'
|
|
2
2
|
import type { Tool } from '@tanstack/ai'
|
|
3
3
|
|
|
4
4
|
export type { ComputerUseToolConfig }
|
package/src/tools/shell-tool.ts
CHANGED
|
@@ -7,11 +7,26 @@ export type { ShellToolConfig }
|
|
|
7
7
|
export type ShellTool = ShellToolConfig
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Config accepted by {@link shellTool}. `environment` mirrors the OpenAI
|
|
11
|
+
* Responses API shell tool environment (e.g. `container_auto` + `skills`).
|
|
12
|
+
* Typed via indexed access so it tracks the installed SDK without naming the
|
|
13
|
+
* union members directly.
|
|
11
14
|
*/
|
|
12
|
-
export
|
|
15
|
+
export interface ShellToolFactoryConfig {
|
|
16
|
+
environment?: NonNullable<ShellToolConfig['environment']>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Converts a standard Tool to OpenAI ShellTool format, preserving any
|
|
21
|
+
* `environment` (container config + skills) stored in metadata.
|
|
22
|
+
*/
|
|
23
|
+
export function convertShellToolToAdapterFormat(tool: Tool): ShellToolConfig {
|
|
24
|
+
const metadata = (tool.metadata ?? {}) as ShellToolFactoryConfig
|
|
13
25
|
return {
|
|
14
26
|
type: 'shell',
|
|
27
|
+
...(metadata.environment !== undefined && {
|
|
28
|
+
environment: metadata.environment,
|
|
29
|
+
}),
|
|
15
30
|
}
|
|
16
31
|
}
|
|
17
32
|
|
|
@@ -21,10 +36,14 @@ export function convertShellToolToAdapterFormat(_tool: Tool): ShellToolConfig {
|
|
|
21
36
|
* Base (non-branded) factory. Providers that need branded return types should
|
|
22
37
|
* re-wrap this in their own package.
|
|
23
38
|
*/
|
|
24
|
-
export function shellTool(): Tool {
|
|
39
|
+
export function shellTool(config: ShellToolFactoryConfig = {}): Tool {
|
|
25
40
|
return {
|
|
26
41
|
name: 'shell',
|
|
27
42
|
description: 'Execute shell commands',
|
|
28
|
-
metadata: {
|
|
43
|
+
metadata: {
|
|
44
|
+
...(config.environment !== undefined && {
|
|
45
|
+
environment: config.environment,
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
29
48
|
}
|
|
30
49
|
}
|