@effect-uai/responses 0.19.0 → 0.19.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsesTools.d.mts","names":[],"sources":["../src/ResponsesTools.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ResponsesTools.d.mts","names":[],"sources":["../src/ResponsesTools.ts"],"mappings":";;;;;cAYa,cAAY,OAAA;;;;;;KAMb,sBAAsB,aAAa;cAElC,kBAAgB,OAAA;;;;KAIjB,0BAA0B,iBAAiB;;cAoB1C,qBAAmB,OAAA,gBAAA,OAAA;;;;;;;;;;;;;;;;;;;;KAKpB,6BAA6B,oBAAoB;KAEjD;WACD,UAAU;WACV,eAAe;WACf;;;cAIE,gBAAa,OAAU,qBAAgB,KAAA,2BAAA;WAN/B,UAAA;WACK,eAAA;WACK;WAUX;;;cAIP,sBAAmB;WAAqB,UAAU;MAAuB,KAAA,iCAAA;WAAvB,UAAA;WAM3C;;;cAIP,iBAAc;WAAqB,gBAAgB;MAAuB,KAAA,4BAAA;WAMnE;;;;;;;;KAQR;WACD;WACA;;;;;;;cA0DE,sBAAmB,OACvB,cAAc,KAAK,4CACzB,OAAO,OAAO,cAAc,0BAA0B"}
|
package/dist/ResponsesTools.mjs
CHANGED
|
@@ -4,6 +4,8 @@ import * as Tool from "@effect-uai/core/Tool";
|
|
|
4
4
|
//#region src/ResponsesTools.ts
|
|
5
5
|
var ResponsesTools_exports = /* @__PURE__ */ __exportAll({
|
|
6
6
|
ResponsesToolConfig: () => ResponsesToolConfig,
|
|
7
|
+
UserLocation: () => UserLocation,
|
|
8
|
+
WebSearchFilters: () => WebSearchFilters,
|
|
7
9
|
codeInterpreterTool: () => codeInterpreterTool,
|
|
8
10
|
fileSearchTool: () => fileSearchTool,
|
|
9
11
|
renderProviderTools: () => renderProviderTools,
|
|
@@ -121,6 +123,6 @@ const renderOne = (tool) => tool.provider !== "openai" ? Result.fail({
|
|
|
121
123
|
*/
|
|
122
124
|
const renderProviderTools = (tools) => Result.all(tools.map(renderOne));
|
|
123
125
|
//#endregion
|
|
124
|
-
export { ResponsesToolConfig, codeInterpreterTool, fileSearchTool, renderProviderTools, ResponsesTools_exports as t, webSearchTool };
|
|
126
|
+
export { ResponsesToolConfig, UserLocation, WebSearchFilters, codeInterpreterTool, fileSearchTool, renderProviderTools, ResponsesTools_exports as t, webSearchTool };
|
|
125
127
|
|
|
126
128
|
//# sourceMappingURL=ResponsesTools.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsesTools.mjs","names":[],"sources":["../src/ResponsesTools.ts"],"sourcesContent":["import { Match, Result, Schema } from \"effect\"\nimport * as Tool from \"@effect-uai/core/Tool\"\n\n// ---------------------------------------------------------------------------\n// OpenAI Responses provider-hosted tools. Each is a `Tool.provider` whose\n// `config` carries the wire `type` string plus its options; the renderer maps\n// it to a native entry appended to the `tools` array alongside function tools.\n// The `inputSchema` is never sent (provider tools are partitioned out of the\n// function declarations), so `Tool.noInput` suffices.\n// Reference: https://developers.openai.com/api/docs/guides/tools\n// ---------------------------------------------------------------------------\n\
|
|
1
|
+
{"version":3,"file":"ResponsesTools.mjs","names":[],"sources":["../src/ResponsesTools.ts"],"sourcesContent":["import { Match, Result, Schema } from \"effect\"\nimport * as Tool from \"@effect-uai/core/Tool\"\n\n// ---------------------------------------------------------------------------\n// OpenAI Responses provider-hosted tools. Each is a `Tool.provider` whose\n// `config` carries the wire `type` string plus its options; the renderer maps\n// it to a native entry appended to the `tools` array alongside function tools.\n// The `inputSchema` is never sent (provider tools are partitioned out of the\n// function declarations), so `Tool.noInput` suffices.\n// Reference: https://developers.openai.com/api/docs/guides/tools\n// ---------------------------------------------------------------------------\n\nexport const UserLocation = Schema.Struct({\n city: Schema.optional(Schema.String),\n region: Schema.optional(Schema.String),\n country: Schema.optional(Schema.String),\n timezone: Schema.optional(Schema.String),\n})\nexport type UserLocation = typeof UserLocation.Type\n\nexport const WebSearchFilters = Schema.Struct({\n allowedDomains: Schema.optional(Schema.Array(Schema.String)),\n blockedDomains: Schema.optional(Schema.Array(Schema.String)),\n})\nexport type WebSearchFilters = typeof WebSearchFilters.Type\n\nconst WebSearchConfig = Schema.Struct({\n kind: Schema.Literal(\"web_search\"),\n filters: Schema.optional(WebSearchFilters),\n userLocation: Schema.optional(UserLocation),\n searchContextSize: Schema.optional(Schema.Literals([\"low\", \"medium\", \"high\"])),\n})\n\nconst CodeInterpreterConfig = Schema.Struct({\n kind: Schema.Literal(\"code_interpreter\"),\n fileIds: Schema.optional(Schema.Array(Schema.String)),\n})\n\nconst FileSearchConfig = Schema.Struct({\n kind: Schema.Literal(\"file_search\"),\n vectorStoreIds: Schema.Array(Schema.String),\n})\n\n/** Discriminated config for a Responses hosted tool. */\nexport const ResponsesToolConfig = Schema.Union([\n WebSearchConfig,\n CodeInterpreterConfig,\n FileSearchConfig,\n])\nexport type ResponsesToolConfig = typeof ResponsesToolConfig.Type\n\nexport type WebSearchOptions = {\n readonly filters?: WebSearchFilters\n readonly userLocation?: UserLocation\n readonly searchContextSize?: \"low\" | \"medium\" | \"high\"\n}\n\n/** OpenAI-hosted web search. */\nexport const webSearchTool = (opts: WebSearchOptions = {}) =>\n Tool.provider({\n name: \"web_search\",\n description: \"Search the web, executed by OpenAI.\",\n inputSchema: Tool.noInput,\n provider: \"openai\",\n config: { kind: \"web_search\", ...opts } as const,\n })\n\n/** OpenAI-hosted code interpreter (Python sandbox). */\nexport const codeInterpreterTool = (opts: { readonly fileIds?: ReadonlyArray<string> } = {}) =>\n Tool.provider({\n name: \"code_interpreter\",\n description: \"Run Python in a sandbox, executed by OpenAI.\",\n inputSchema: Tool.noInput,\n provider: \"openai\",\n config: { kind: \"code_interpreter\", ...opts } as const,\n })\n\n/** OpenAI-hosted file search over the given vector stores. */\nexport const fileSearchTool = (opts: { readonly vectorStoreIds: ReadonlyArray<string> }) =>\n Tool.provider({\n name: \"file_search\",\n description: \"Retrieve from uploaded files, executed by OpenAI.\",\n inputSchema: Tool.noInput,\n provider: \"openai\",\n config: { kind: \"file_search\", vectorStoreIds: opts.vectorStoreIds } as const,\n })\n\n/**\n * A provider tool this adapter cannot render — a foreign `provider` or an\n * unrecognized `config`. Carried as data so `Responses.ts` can lift it into a\n * typed `AiError.Unsupported`.\n */\nexport type ToolRenderError = {\n readonly capability: string\n readonly reason: string\n}\n\nconst filtersWire = (f: WebSearchFilters): Record<string, unknown> => ({\n ...(f.allowedDomains !== undefined && { allowed_domains: f.allowedDomains }),\n ...(f.blockedDomains !== undefined && { blocked_domains: f.blockedDomains }),\n})\n\nconst userLocationWire = (loc: UserLocation): Record<string, unknown> => ({\n type: \"approximate\",\n ...(loc.city !== undefined && { city: loc.city }),\n ...(loc.region !== undefined && { region: loc.region }),\n ...(loc.country !== undefined && { country: loc.country }),\n ...(loc.timezone !== undefined && { timezone: loc.timezone }),\n})\n\nconst configToWire = Match.type<ResponsesToolConfig>().pipe(\n Match.discriminatorsExhaustive(\"kind\")({\n web_search: (c): Record<string, unknown> => ({\n type: \"web_search\",\n ...(c.filters !== undefined && { filters: filtersWire(c.filters) }),\n ...(c.userLocation !== undefined && { user_location: userLocationWire(c.userLocation) }),\n ...(c.searchContextSize !== undefined && { search_context_size: c.searchContextSize }),\n }),\n code_interpreter: (c): Record<string, unknown> => ({\n type: \"code_interpreter\",\n container: c.fileIds !== undefined ? { type: \"auto\", file_ids: c.fileIds } : { type: \"auto\" },\n }),\n file_search: (c): Record<string, unknown> => ({\n type: \"file_search\",\n vector_store_ids: c.vectorStoreIds,\n }),\n }),\n)\n\nconst decodeConfig = Schema.decodeUnknownResult(ResponsesToolConfig)\n\nconst renderOne = (\n tool: Tool.ProviderTool<string, any, string, any>,\n): Result.Result<Record<string, unknown>, ToolRenderError> =>\n tool.provider !== \"openai\"\n ? Result.fail({\n capability: `providerTool:${tool.provider}`,\n reason: `tool \"${tool.name}\" is hosted by \"${tool.provider}\", not openai`,\n })\n : decodeConfig(tool.config).pipe(\n Result.map(configToWire),\n Result.mapError((): ToolRenderError => ({\n capability: \"providerTool\",\n reason: `unrecognized Responses provider tool config on \"${tool.name}\"`,\n })),\n )\n\n/**\n * Render a toolkit's Responses provider tools to native `tools` entries. Fails\n * with a `ToolRenderError` on the first foreign or unrecognized tool rather\n * than dropping it.\n */\nexport const renderProviderTools = (\n tools: ReadonlyArray<Tool.ProviderTool<string, any, string, any>>,\n): Result.Result<ReadonlyArray<Record<string, unknown>>, ToolRenderError> =>\n Result.all(tools.map(renderOne))\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAa,eAAe,OAAO,OAAO;CACxC,MAAM,OAAO,SAAS,OAAO,MAAM;CACnC,QAAQ,OAAO,SAAS,OAAO,MAAM;CACrC,SAAS,OAAO,SAAS,OAAO,MAAM;CACtC,UAAU,OAAO,SAAS,OAAO,MAAM;AACzC,CAAC;AAGD,MAAa,mBAAmB,OAAO,OAAO;CAC5C,gBAAgB,OAAO,SAAS,OAAO,MAAM,OAAO,MAAM,CAAC;CAC3D,gBAAgB,OAAO,SAAS,OAAO,MAAM,OAAO,MAAM,CAAC;AAC7D,CAAC;AAGD,MAAM,kBAAkB,OAAO,OAAO;CACpC,MAAM,OAAO,QAAQ,YAAY;CACjC,SAAS,OAAO,SAAS,gBAAgB;CACzC,cAAc,OAAO,SAAS,YAAY;CAC1C,mBAAmB,OAAO,SAAS,OAAO,SAAS;EAAC;EAAO;EAAU;CAAM,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,wBAAwB,OAAO,OAAO;CAC1C,MAAM,OAAO,QAAQ,kBAAkB;CACvC,SAAS,OAAO,SAAS,OAAO,MAAM,OAAO,MAAM,CAAC;AACtD,CAAC;AAED,MAAM,mBAAmB,OAAO,OAAO;CACrC,MAAM,OAAO,QAAQ,aAAa;CAClC,gBAAgB,OAAO,MAAM,OAAO,MAAM;AAC5C,CAAC;;AAGD,MAAa,sBAAsB,OAAO,MAAM;CAC9C;CACA;CACA;AACF,CAAC;;AAUD,MAAa,iBAAiB,OAAyB,CAAC,MACtD,KAAK,SAAS;CACZ,MAAM;CACN,aAAa;CACb,aAAa,KAAK;CAClB,UAAU;CACV,QAAQ;EAAE,MAAM;EAAc,GAAG;CAAK;AACxC,CAAC;;AAGH,MAAa,uBAAuB,OAAqD,CAAC,MACxF,KAAK,SAAS;CACZ,MAAM;CACN,aAAa;CACb,aAAa,KAAK;CAClB,UAAU;CACV,QAAQ;EAAE,MAAM;EAAoB,GAAG;CAAK;AAC9C,CAAC;;AAGH,MAAa,kBAAkB,SAC7B,KAAK,SAAS;CACZ,MAAM;CACN,aAAa;CACb,aAAa,KAAK;CAClB,UAAU;CACV,QAAQ;EAAE,MAAM;EAAe,gBAAgB,KAAK;CAAe;AACrE,CAAC;AAYH,MAAM,eAAe,OAAkD;CACrE,GAAI,EAAE,mBAAmB,KAAA,KAAa,EAAE,iBAAiB,EAAE,eAAe;CAC1E,GAAI,EAAE,mBAAmB,KAAA,KAAa,EAAE,iBAAiB,EAAE,eAAe;AAC5E;AAEA,MAAM,oBAAoB,SAAgD;CACxE,MAAM;CACN,GAAI,IAAI,SAAS,KAAA,KAAa,EAAE,MAAM,IAAI,KAAK;CAC/C,GAAI,IAAI,WAAW,KAAA,KAAa,EAAE,QAAQ,IAAI,OAAO;CACrD,GAAI,IAAI,YAAY,KAAA,KAAa,EAAE,SAAS,IAAI,QAAQ;CACxD,GAAI,IAAI,aAAa,KAAA,KAAa,EAAE,UAAU,IAAI,SAAS;AAC7D;AAEA,MAAM,eAAe,MAAM,KAA0B,CAAC,CAAC,KACrD,MAAM,yBAAyB,MAAM,CAAC,CAAC;CACrC,aAAa,OAAgC;EAC3C,MAAM;EACN,GAAI,EAAE,YAAY,KAAA,KAAa,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE;EACjE,GAAI,EAAE,iBAAiB,KAAA,KAAa,EAAE,eAAe,iBAAiB,EAAE,YAAY,EAAE;EACtF,GAAI,EAAE,sBAAsB,KAAA,KAAa,EAAE,qBAAqB,EAAE,kBAAkB;CACtF;CACA,mBAAmB,OAAgC;EACjD,MAAM;EACN,WAAW,EAAE,YAAY,KAAA,IAAY;GAAE,MAAM;GAAQ,UAAU,EAAE;EAAQ,IAAI,EAAE,MAAM,OAAO;CAC9F;CACA,cAAc,OAAgC;EAC5C,MAAM;EACN,kBAAkB,EAAE;CACtB;AACF,CAAC,CACH;AAEA,MAAM,eAAe,OAAO,oBAAoB,mBAAmB;AAEnE,MAAM,aACJ,SAEA,KAAK,aAAa,WACd,OAAO,KAAK;CACV,YAAY,gBAAgB,KAAK;CACjC,QAAQ,SAAS,KAAK,KAAK,kBAAkB,KAAK,SAAS;AAC7D,CAAC,IACD,aAAa,KAAK,MAAM,CAAC,CAAC,KACxB,OAAO,IAAI,YAAY,GACvB,OAAO,gBAAiC;CACtC,YAAY;CACZ,QAAQ,mDAAmD,KAAK,KAAK;AACvE,EAAE,CACJ;;;;;;AAON,MAAa,uBACX,UAEA,OAAO,IAAI,MAAM,IAAI,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-uai/responses",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "OpenAI Responses API provider for @effect-uai/core.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"effect": "4.1.2",
|
|
59
59
|
"typescript": "^7.0.2",
|
|
60
|
-
"@effect-uai/core": "0.19.
|
|
60
|
+
"@effect-uai/core": "0.19.1"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"@effect-uai/core": ">=0.2.0 <1",
|
package/src/ResponsesTools.ts
CHANGED
|
@@ -10,7 +10,7 @@ import * as Tool from "@effect-uai/core/Tool"
|
|
|
10
10
|
// Reference: https://developers.openai.com/api/docs/guides/tools
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
12
12
|
|
|
13
|
-
const UserLocation = Schema.Struct({
|
|
13
|
+
export const UserLocation = Schema.Struct({
|
|
14
14
|
city: Schema.optional(Schema.String),
|
|
15
15
|
region: Schema.optional(Schema.String),
|
|
16
16
|
country: Schema.optional(Schema.String),
|
|
@@ -18,7 +18,7 @@ const UserLocation = Schema.Struct({
|
|
|
18
18
|
})
|
|
19
19
|
export type UserLocation = typeof UserLocation.Type
|
|
20
20
|
|
|
21
|
-
const WebSearchFilters = Schema.Struct({
|
|
21
|
+
export const WebSearchFilters = Schema.Struct({
|
|
22
22
|
allowedDomains: Schema.optional(Schema.Array(Schema.String)),
|
|
23
23
|
blockedDomains: Schema.optional(Schema.Array(Schema.String)),
|
|
24
24
|
})
|