@alisio/plugin-openai 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Gustavo Gutiérrez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # @alisio/plugin-openai
2
+
3
+ Official OpenAI Responses API provider for Alisio (`openai`). Install with `alisio install npm:@alisio/plugin-openai`, then connect using an OpenAI API key or `OPENAI_API_KEY` (a stored key takes precedence).
4
+
5
+ This release uses streaming, function tools, stateless continuation, model discovery, usage reporting, cancellation, and `store: false`. The host must choose an active model; availability is account-specific.
6
+
7
+ ## Requirements and authentication
8
+
9
+ Node.js >= 22.16 and an OpenAI API-billed key are required. OpenCode OAuth, ChatGPT Plus/Pro, Codex, Max, and other subscription credentials are intentionally unsupported in this release. This plugin neither reads nor imports them.
10
+
11
+ ## License
12
+
13
+ MIT.
package/cover.svg ADDED
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" role="img" aria-label="OpenAI provider cover">
2
+ <defs><linearGradient id="a" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#10221e"/><stop offset="1" stop-color="#16725d"/></linearGradient></defs>
3
+ <rect width="1600" height="900" fill="url(#a)"/><circle cx="1240" cy="450" r="260" fill="none" stroke="#a8f0d5" stroke-width="42"/><circle cx="1240" cy="450" r="150" fill="none" stroke="#a8f0d5" stroke-width="22"/>
4
+ <text x="120" y="300" fill="#a8f0d5" font-family="system-ui" font-size="30" letter-spacing="8">ALISIO PLUGIN</text><text x="120" y="440" fill="white" font-family="system-ui" font-size="112" font-weight="700">OpenAI</text><text x="120" y="520" fill="#d1f5e8" font-family="system-ui" font-size="40">Responses API provider</text>
5
+ </svg>
@@ -0,0 +1,6 @@
1
+ import { type Plugin } from "@alisio/sdk";
2
+ export declare function createOpenAIPlugin(): Plugin;
3
+ export { OpenAIProvider } from "./provider.js";
4
+ declare const _default: Plugin;
5
+ export default _default;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAA8B,MAAM,aAAa,CAAC;AAKpF,wBAAgB,kBAAkB,IAAI,MAAM,CAoC3C;AACD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ import { definePlugin } from "@alisio/sdk";
2
+ import { OpenAIProvider } from "./provider.js";
3
+ import { VERSION } from "./version.js";
4
+ const API_KEY_ENV = "OPENAI_API_KEY";
5
+ export function createOpenAIPlugin() {
6
+ return definePlugin({
7
+ id: "openai",
8
+ name: "OpenAI",
9
+ description: "Official OpenAI Responses API provider",
10
+ categories: ["model-provider"],
11
+ version: VERSION,
12
+ apiVersion: 1,
13
+ setup(api) {
14
+ api.providers.register({
15
+ id: "openai",
16
+ name: "OpenAI",
17
+ description: "OpenAI Responses API",
18
+ fields: [
19
+ {
20
+ key: "apiKey",
21
+ label: "API key",
22
+ kind: "secret",
23
+ required: true,
24
+ description: "Stored only in the global credentials file",
25
+ },
26
+ ],
27
+ create(request) {
28
+ const apiKey = request.credentials.apiKey || process.env[API_KEY_ENV];
29
+ if (!apiKey)
30
+ throw new Error(`OpenAI API key is required (set it in /connect or export ${API_KEY_ENV})`);
31
+ return new OpenAIProvider({
32
+ apiKey,
33
+ model: typeof request.profile.model === "string" ? request.profile.model : "",
34
+ });
35
+ },
36
+ });
37
+ },
38
+ });
39
+ }
40
+ export { OpenAIProvider } from "./provider.js";
41
+ export default createOpenAIPlugin();
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE,CAAC,gBAAgB,CAAC;QAC9B,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,CAAC;QACb,KAAK,CAAC,GAAG;YACP,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACrB,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE;oBACN;wBACE,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,4CAA4C;qBAC1D;iBACF;gBACD,MAAM,CAAC,OAA8B;oBACnC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtE,IAAI,CAAC,MAAM;wBACT,MAAM,IAAI,KAAK,CACb,4DAA4D,WAAW,GAAG,CAC3E,CAAC;oBACJ,OAAO,IAAI,cAAc,CAAC;wBACxB,MAAM;wBACN,KAAK,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;qBAC9E,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AACD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,eAAe,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ModelInfo, ModelProvider, ProviderEvent } from "@alisio/sdk";
2
+ import OpenAI from "openai";
3
+ export declare class OpenAIProvider implements ModelProvider {
4
+ #private;
5
+ readonly id = "openai";
6
+ readonly model: string;
7
+ constructor(config: {
8
+ apiKey?: string;
9
+ model: string;
10
+ }, client?: OpenAI);
11
+ listModels(signal: AbortSignal): Promise<ModelInfo[]>;
12
+ stream(request: Parameters<ModelProvider["stream"]>[0]): AsyncIterable<ProviderEvent>;
13
+ }
14
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,aAAa,EACb,aAAa,EAGd,MAAM,aAAa,CAAC;AACrB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAsC5B,qBAAa,cAAe,YAAW,aAAa;;IAClD,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAItE;IACK,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAS1D;IACM,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAqE3F;CACF"}
@@ -0,0 +1,117 @@
1
+ import OpenAI from "openai";
2
+ const image = (a) => `data:${a.mimeType};base64,${a.data}`;
3
+ const usage = (value) => value && Number.isFinite(value.input_tokens) && Number.isFinite(value.output_tokens)
4
+ ? {
5
+ input: value.input_tokens,
6
+ output: value.output_tokens,
7
+ ...(Number.isFinite(value.input_tokens_details?.cached_tokens)
8
+ ? { cachedInput: value.input_tokens_details.cached_tokens }
9
+ : {}),
10
+ }
11
+ : undefined;
12
+ const output = (response) => {
13
+ const data = response.output;
14
+ const calls = data
15
+ .filter((item) => item.type === "function_call")
16
+ .map((item) => ({ id: item.call_id, name: item.name, arguments: item.arguments }));
17
+ if (calls.some((c) => !c.id || !c.name || typeof c.arguments !== "string"))
18
+ throw new Error("Incomplete tool call");
19
+ const text = data
20
+ .filter((item) => item.type === "message")
21
+ .flatMap((item) => item.content)
22
+ .filter((item) => item.type === "output_text")
23
+ .map((item) => item.text)
24
+ .join("");
25
+ return { data, calls, text };
26
+ };
27
+ export class OpenAIProvider {
28
+ id = "openai";
29
+ model;
30
+ #client;
31
+ constructor(config, client) {
32
+ this.model = config.model;
33
+ if (!client && !config.apiKey)
34
+ throw new Error("Missing OpenAI API key");
35
+ this.#client = client ?? new OpenAI({ apiKey: config.apiKey, maxRetries: 0, timeout: 120_000 });
36
+ }
37
+ async listModels(signal) {
38
+ const models = [];
39
+ for await (const m of this.#client.models.list({ signal }))
40
+ if (typeof m.id === "string" && m.id)
41
+ models.push({
42
+ id: m.id,
43
+ ...(typeof m.owned_by === "string" ? { ownedBy: m.owned_by } : {}),
44
+ });
45
+ return models;
46
+ }
47
+ async *stream(request) {
48
+ const input = [];
49
+ for (const m of request.messages) {
50
+ if (m.role === "user") {
51
+ const content = [];
52
+ if (m.text.trim())
53
+ content.push({ type: "input_text", text: m.text });
54
+ for (const a of m.attachments ?? [])
55
+ content.push({ type: "input_image", image_url: image(a), detail: "auto" });
56
+ input.push(content.length ? { role: "user", content } : { role: "user", content: m.text });
57
+ }
58
+ else if (m.role === "tool")
59
+ input.push({
60
+ type: "function_call_output",
61
+ call_id: m.callId,
62
+ output: JSON.stringify(m.result),
63
+ });
64
+ else if (m.providerData && Array.isArray(m.providerData))
65
+ input.push(...m.providerData);
66
+ else
67
+ throw new Error("Missing provider continuation data for Responses session");
68
+ }
69
+ const stream = await this.#client.responses.create({
70
+ model: request.model || this.model,
71
+ instructions: request.instructions,
72
+ input,
73
+ stream: true,
74
+ store: false,
75
+ include: ["reasoning.encrypted_content"],
76
+ max_output_tokens: request.maxOutputTokens,
77
+ tools: request.tools.map((t) => ({
78
+ type: "function",
79
+ name: t.name,
80
+ description: t.description,
81
+ parameters: t.inputSchema,
82
+ strict: false,
83
+ })),
84
+ }, { signal: request.signal });
85
+ let completed = false;
86
+ for await (const event of stream) {
87
+ if (event?.type === "response.output_text.delta" && typeof event.delta === "string")
88
+ yield { type: "text_delta", delta: event.delta };
89
+ if (event?.type === "response.reasoning_summary_text.delta" &&
90
+ typeof event.delta === "string")
91
+ yield { type: "reasoning_delta", delta: event.delta };
92
+ if (event?.type === "error" || event?.type === "response.failed")
93
+ throw new Error("OpenAI response failed");
94
+ if (event?.type === "response.completed" || event?.type === "response.incomplete") {
95
+ completed = true;
96
+ const result = output(event.response);
97
+ if (event.type === "response.incomplete" && !result.text.trim() && !result.calls.length)
98
+ throw new Error("OpenAI response cut off before usable content");
99
+ const responseUsage = usage(event.response.usage);
100
+ yield {
101
+ type: "completed",
102
+ message: {
103
+ role: "assistant",
104
+ text: result.text,
105
+ calls: result.calls,
106
+ providerData: result.data,
107
+ ...(event.type === "response.incomplete" ? { truncated: true } : {}),
108
+ },
109
+ ...(responseUsage ? { usage: responseUsage } : {}),
110
+ };
111
+ }
112
+ }
113
+ if (!completed)
114
+ throw new Error("OpenAI Responses stream ended before completion");
115
+ }
116
+ }
117
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAQA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAY5B,MAAM,KAAK,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;AACvE,MAAM,KAAK,GAAG,CAAC,KAAgC,EAAqB,EAAE,CACpE,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;IAClF,CAAC,CAAC;QACE,KAAK,EAAE,KAAK,CAAC,YAAY;QACzB,MAAM,EAAE,KAAK,CAAC,aAAa;QAC3B,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,aAAa,CAAC;YAC5D,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,oBAAoB,CAAC,aAAa,EAAE;YAC3D,CAAC,CAAC,EAAE,CAAC;KACR;IACH,CAAC,CAAC,SAAS,CAAC;AAChB,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAE,EAAE;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7B,MAAM,KAAK,GAAe,IAAI;SAC3B,MAAM,CAAC,CAAC,IAAI,EAAoC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;SACjF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACrF,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI;SACd,MAAM,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;SACxE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,EAA8B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;SACzE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC,CAAC;AACF,MAAM,OAAO,cAAc;IAChB,EAAE,GAAG,QAAQ,CAAC;IACd,KAAK,CAAS;IACvB,OAAO,CAAS;IAChB,YAAY,MAA0C,EAAE,MAAe;QACrE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YACxD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAA+C;QAC3D,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAC3C,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE;oBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7F,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAC1B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,CAAC,CAAC,MAAM;oBACjB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;iBACjC,CAAC,CAAC;iBACA,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC,YAAoC,CAAC,CAAC;;gBACpD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAChD;YACE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YAClC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK;YACL,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,CAAC,6BAA6B,CAAC;YACxC,iBAAiB,EAAE,OAAO,CAAC,eAAe;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,UAAmB;gBACzB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,WAAW;gBACzB,MAAM,EAAE,KAAK;aACd,CAAC,CAA+C;SAClD,EACD,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC3B,CAAC;QACF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,EAAE,IAAI,KAAK,4BAA4B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBACjF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACnD,IACE,KAAK,EAAE,IAAI,KAAK,uCAAuC;gBACvD,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAE/B,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACxD,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB;gBAC9D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,IAAI,KAAK,EAAE,IAAI,KAAK,oBAAoB,IAAI,KAAK,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAClF,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;oBACrF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM;oBACJ,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,YAAY,EAAE,MAAM,CAAC,IAAI;wBACzB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACrE;oBACD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.1.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Updated by scripts/sync-versions.mjs.
2
+ export const VERSION = "0.1.0";
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@alisio/plugin-openai",
3
+ "version": "0.1.0",
4
+ "description": "Official OpenAI Responses API model provider for Alisio.",
5
+ "keywords": [
6
+ "alisio-plugin",
7
+ "openai",
8
+ "model-provider"
9
+ ],
10
+ "license": "MIT",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/GustavoGutierrez/alisio-plugins.git",
14
+ "directory": "packages/plugin-openai"
15
+ },
16
+ "homepage": "https://github.com/GustavoGutierrez/alisio-plugins/tree/main/packages/plugin-openai#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/GustavoGutierrez/alisio-plugins/issues"
19
+ },
20
+ "type": "module",
21
+ "engines": {
22
+ "node": ">=22.16"
23
+ },
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md",
33
+ "LICENSE",
34
+ "cover.svg"
35
+ ],
36
+ "dependencies": {
37
+ "openai": "7.23.0"
38
+ },
39
+ "peerDependencies": {
40
+ "@alisio/sdk": ">=0.1.0-alpha.10 <0.2.0"
41
+ },
42
+ "devDependencies": {
43
+ "@alisio/sdk": "0.1.0-alpha.11",
44
+ "typescript": "7.0.2",
45
+ "vitest": "5.0.1"
46
+ },
47
+ "scripts": {
48
+ "build": "tsc -p tsconfig.json",
49
+ "typecheck": "tsc -p tsconfig.json --noEmit",
50
+ "test": "vitest run"
51
+ }
52
+ }