@oai2lmapi/opencode-provider 0.2.1 → 0.3.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/README.md +218 -129
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +888 -0
- package/dist/cli.js.map +6 -0
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/index.d.ts +15 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +377 -2
- package/dist/index.js.map +3 -3
- package/dist/plugin.d.ts +42 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +835 -0
- package/dist/plugin.js.map +6 -0
- package/dist/xmlTools.d.ts +65 -0
- package/dist/xmlTools.d.ts.map +1 -0
- package/oai2lm.schema.json +36 -0
- package/package.json +10 -2
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/config.ts", "../src/discover.ts", "../../model-metadata/dist/esm/index.mjs", "../src/metadata.ts", "../src/plugin.ts", "../src/cli.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["getModelMetadataFromPatterns", "getModelMetadataFromPatterns", "getModelMetadataFromPatterns"]
|
|
6
|
+
}
|
package/dist/config.d.ts
CHANGED
|
@@ -9,8 +9,15 @@
|
|
|
9
9
|
* - ~/.local/share/opencode/ contains data files (auth.json, etc.)
|
|
10
10
|
* - ~/.config/opencode/ contains user configuration
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Thinking level configuration for models that support chain-of-thought reasoning.
|
|
14
|
+
* Can be a string preset or a numeric token budget.
|
|
15
|
+
*/
|
|
16
|
+
export type ThinkingLevel = "none" | "low" | "medium" | "high" | "auto" | number;
|
|
12
17
|
/**
|
|
13
18
|
* Model override configuration.
|
|
19
|
+
*
|
|
20
|
+
* Supports advanced features like prompt-based tool calling and thinking tags.
|
|
14
21
|
*/
|
|
15
22
|
export interface ModelOverride {
|
|
16
23
|
/** Max input tokens */
|
|
@@ -21,6 +28,39 @@ export interface ModelOverride {
|
|
|
21
28
|
supportsToolCalling?: boolean;
|
|
22
29
|
/** Supports image inputs */
|
|
23
30
|
supportsImageInput?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Default temperature for this model.
|
|
33
|
+
* Range: 0.0-2.0 (model dependent)
|
|
34
|
+
*/
|
|
35
|
+
temperature?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Thinking level for models that support chain-of-thought reasoning.
|
|
38
|
+
* - 'none': Disable thinking
|
|
39
|
+
* - 'low'/'medium'/'high': Preset token budgets
|
|
40
|
+
* - 'auto': Let the model decide
|
|
41
|
+
* - number: Explicit token budget for thinking
|
|
42
|
+
*
|
|
43
|
+
* Used for models like Claude 3.7, DeepSeek-R1, o1, etc.
|
|
44
|
+
*/
|
|
45
|
+
thinkingLevel?: ThinkingLevel;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to suppress chain-of-thought output in the response.
|
|
48
|
+
* When true, thinking content is not included in the final output.
|
|
49
|
+
*/
|
|
50
|
+
suppressChainOfThought?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Use prompt-based tool calling instead of native function calling.
|
|
53
|
+
* Converts tools to XML format in the system prompt.
|
|
54
|
+
*
|
|
55
|
+
* Useful for models that don't support native function calling
|
|
56
|
+
* but can follow structured instructions (e.g., QwQ, older models).
|
|
57
|
+
*/
|
|
58
|
+
usePromptBasedToolCalling?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Trim leading/trailing whitespace from XML tool parameter values.
|
|
61
|
+
* Only applies when usePromptBasedToolCalling is true.
|
|
62
|
+
*/
|
|
63
|
+
trimXmlToolParameterWhitespace?: boolean;
|
|
24
64
|
}
|
|
25
65
|
/**
|
|
26
66
|
* Configuration file structure for oai2lm.json
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAwB7C;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,YAAY,GAAG,SAAS,CA6BrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAYtD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CA0BtE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,10 +22,12 @@
|
|
|
22
22
|
* }
|
|
23
23
|
*/
|
|
24
24
|
import { type OpenAICompatibleProvider } from "@ai-sdk/openai-compatible";
|
|
25
|
-
import { loadConfig, resolveApiKey, type OAI2LMConfig, type ModelOverride } from "./config.js";
|
|
25
|
+
import { loadConfig, resolveApiKey, type OAI2LMConfig, type ModelOverride, type ThinkingLevel } from "./config.js";
|
|
26
26
|
import { discoverModels, type DiscoveredModel } from "./discover.js";
|
|
27
27
|
import { type ModelMetadata } from "./metadata.js";
|
|
28
|
-
export { loadConfig, resolveApiKey, discoverModels, type OAI2LMConfig, type ModelOverride, type DiscoveredModel, type ModelMetadata, };
|
|
28
|
+
export { loadConfig, resolveApiKey, discoverModels, type OAI2LMConfig, type ModelOverride, type ThinkingLevel, type DiscoveredModel, type ModelMetadata, };
|
|
29
|
+
export { generateXmlToolPrompt, parseXmlToolCalls, formatToolCallAsXml, formatToolResultAsText, escapeXml, type ToolDefinition, type ParsedToolCall, type XmlToolParseOptions, } from "./xmlTools.js";
|
|
30
|
+
export { oai2lmPlugin, generateModelsConfig } from "./plugin.js";
|
|
29
31
|
/**
|
|
30
32
|
* Provider settings that extend OpenAI-compatible settings
|
|
31
33
|
*/
|
|
@@ -82,6 +84,17 @@ export interface Oai2lmProvider extends OpenAICompatibleProvider<string, string,
|
|
|
82
84
|
*/
|
|
83
85
|
refreshModels(): Promise<void>;
|
|
84
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Find matching model override by pattern (supports wildcards).
|
|
89
|
+
*
|
|
90
|
+
* Use this function to look up ModelOverride settings for a specific model ID.
|
|
91
|
+
* The overrides can use wildcard patterns (* and ?) to match multiple models.
|
|
92
|
+
*
|
|
93
|
+
* @param modelId - The model ID to look up
|
|
94
|
+
* @param overrides - The model overrides configuration object
|
|
95
|
+
* @returns The matching ModelOverride or undefined if no match
|
|
96
|
+
*/
|
|
97
|
+
export declare function findModelOverride(modelId: string, overrides?: Record<string, ModelOverride>): ModelOverride | undefined;
|
|
85
98
|
/**
|
|
86
99
|
* Create an Oai2lm provider instance.
|
|
87
100
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,CAAC;AAGF,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,wBAAwB,CAC9D,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,CACP;IACC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEzC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEtE;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAYD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACxC,aAAa,GAAG,SAAS,CAyB3B;AA+BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,cAAc,CA0H5E;AAGD,eAAe,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -699,10 +699,375 @@ function mergeMetadata(apiMetadata, patternMetadata) {
|
|
|
699
699
|
};
|
|
700
700
|
}
|
|
701
701
|
|
|
702
|
+
// src/xmlTools.ts
|
|
703
|
+
var toolCallIdCounter = 0;
|
|
704
|
+
function generateXmlToolPrompt(tools) {
|
|
705
|
+
if (!tools || tools.length === 0) {
|
|
706
|
+
return "";
|
|
707
|
+
}
|
|
708
|
+
const toolDescriptions = tools.map((tool) => formatToolDescription(tool)).filter(Boolean).join("\n\n");
|
|
709
|
+
if (!toolDescriptions) {
|
|
710
|
+
return "";
|
|
711
|
+
}
|
|
712
|
+
return `====
|
|
713
|
+
|
|
714
|
+
TOOL USE
|
|
715
|
+
|
|
716
|
+
You have access to a set of tools that are executed upon the user's approval. You can use zero or more tools per message depending on what the task requires. For independent operations, you can call up to 5 tools in a single message. The results of all tool calls will be returned together after execution.
|
|
717
|
+
|
|
718
|
+
# Tool Use Formatting
|
|
719
|
+
|
|
720
|
+
Tool uses are formatted using XML-style tags. The tool name itself becomes the XML tag name. Each parameter is enclosed within its own set of tags. Here's the structure:
|
|
721
|
+
|
|
722
|
+
<actual_tool_name>
|
|
723
|
+
<parameter1_name>value1</parameter1_name>
|
|
724
|
+
<parameter2_name>value2</parameter2_name>
|
|
725
|
+
...
|
|
726
|
+
</actual_tool_name>
|
|
727
|
+
|
|
728
|
+
Always use the actual tool name as the XML tag name for proper parsing and execution.
|
|
729
|
+
|
|
730
|
+
## Special Characters
|
|
731
|
+
|
|
732
|
+
When parameter values contain XML special characters, escape them as follows:
|
|
733
|
+
- \`&\` \u2192 \`&\`
|
|
734
|
+
- \`<\` \u2192 \`<\`
|
|
735
|
+
- \`>\` \u2192 \`>\`
|
|
736
|
+
- \`"\` \u2192 \`"\`
|
|
737
|
+
- \`'\` \u2192 \`'\`
|
|
738
|
+
|
|
739
|
+
For example: \`<content>x < y && z > w</content>\`
|
|
740
|
+
|
|
741
|
+
You may optionally include a \`callId\` parameter to identify each tool call. This is useful when making multiple calls to the same tool:
|
|
742
|
+
|
|
743
|
+
<tool_name>
|
|
744
|
+
<callId>unique_id_here</callId>
|
|
745
|
+
<parameter1_name>value1</parameter1_name>
|
|
746
|
+
</tool_name>
|
|
747
|
+
|
|
748
|
+
If \`callId\` is omitted, one will be automatically generated.
|
|
749
|
+
|
|
750
|
+
## Multiple Tool Calls
|
|
751
|
+
|
|
752
|
+
When you need to perform multiple independent operations, you can include multiple tool calls in a single message (up to 5 at once). All tools will be executed and their results returned together:
|
|
753
|
+
|
|
754
|
+
<tool_name_1>
|
|
755
|
+
<param>value</param>
|
|
756
|
+
</tool_name_1>
|
|
757
|
+
|
|
758
|
+
<tool_name_2>
|
|
759
|
+
<param>value</param>
|
|
760
|
+
</tool_name_2>
|
|
761
|
+
|
|
762
|
+
# Available Tools
|
|
763
|
+
|
|
764
|
+
${toolDescriptions}
|
|
765
|
+
|
|
766
|
+
# Tool Use Guidelines
|
|
767
|
+
|
|
768
|
+
1. In <thinking> tags, assess what information you already have and what information you need to proceed with the task.
|
|
769
|
+
2. Choose the most appropriate tool(s) based on the task and the tool descriptions provided.
|
|
770
|
+
3. For independent operations that don't depend on each other's results, you can call up to 5 tools in a single message for efficiency.
|
|
771
|
+
4. For dependent operations where one tool's result is needed for the next, use tools step-by-step with each use informed by the previous result.
|
|
772
|
+
5. Formulate your tool use using the XML format specified for each tool.
|
|
773
|
+
6. After tool execution, results will be provided in XML format: <tool_name_result>...</tool_name_result>. Use these results to continue your task or make further decisions.
|
|
774
|
+
7. If no tool is needed, you may respond with text only.
|
|
775
|
+
|
|
776
|
+
IMPORTANT: Keep your tool call as a well-formed XML block that can be parsed without any text interleaved inside the tags. You may include brief natural language instructions or explanations before or after the XML tool call if helpful, but do not break the XML structure.`;
|
|
777
|
+
}
|
|
778
|
+
function formatToolDescription(tool) {
|
|
779
|
+
const name = tool.name?.trim();
|
|
780
|
+
if (!name) {
|
|
781
|
+
return "";
|
|
782
|
+
}
|
|
783
|
+
const description = tool.description?.trim() || "";
|
|
784
|
+
const parameters = formatParameters(tool.parameters);
|
|
785
|
+
const parts = [`## ${name}`];
|
|
786
|
+
if (description) {
|
|
787
|
+
parts.push(`Description: ${description}`);
|
|
788
|
+
}
|
|
789
|
+
parts.push(parameters ? `Parameters:
|
|
790
|
+
${parameters}` : "Parameters: None");
|
|
791
|
+
parts.push(`
|
|
792
|
+
Usage:
|
|
793
|
+
<${name}>
|
|
794
|
+
${generateParameterExample(tool.parameters)}
|
|
795
|
+
</${name}>`);
|
|
796
|
+
return parts.join("\n");
|
|
797
|
+
}
|
|
798
|
+
function formatParameters(schema) {
|
|
799
|
+
if (!schema) {
|
|
800
|
+
return "";
|
|
801
|
+
}
|
|
802
|
+
const properties = schema.properties;
|
|
803
|
+
const required = schema.required || [];
|
|
804
|
+
if (!properties || Object.keys(properties).length === 0) {
|
|
805
|
+
return "";
|
|
806
|
+
}
|
|
807
|
+
const paramLines = [];
|
|
808
|
+
for (const [paramName, paramDef] of Object.entries(properties)) {
|
|
809
|
+
const isRequired = required.includes(paramName);
|
|
810
|
+
const requiredStr = isRequired ? "(required)" : "(optional)";
|
|
811
|
+
const typeStr = paramDef.type ? ` [${paramDef.type}]` : "";
|
|
812
|
+
const descStr = paramDef.description ? `: ${paramDef.description}` : "";
|
|
813
|
+
paramLines.push(`- ${paramName}${typeStr} ${requiredStr}${descStr}`);
|
|
814
|
+
}
|
|
815
|
+
return paramLines.join("\n");
|
|
816
|
+
}
|
|
817
|
+
function generateParameterExample(schema) {
|
|
818
|
+
if (!schema) {
|
|
819
|
+
return "<!-- No parameters required -->";
|
|
820
|
+
}
|
|
821
|
+
const properties = schema.properties;
|
|
822
|
+
if (!properties || Object.keys(properties).length === 0) {
|
|
823
|
+
return "<!-- No parameters required -->";
|
|
824
|
+
}
|
|
825
|
+
const lines = [];
|
|
826
|
+
for (const [paramName, paramDef] of Object.entries(properties)) {
|
|
827
|
+
const placeholder = getPlaceholder(paramName, paramDef.type);
|
|
828
|
+
lines.push(`<${paramName}>${placeholder}</${paramName}>`);
|
|
829
|
+
}
|
|
830
|
+
return lines.join("\n");
|
|
831
|
+
}
|
|
832
|
+
function getPlaceholder(paramName, type) {
|
|
833
|
+
switch (type) {
|
|
834
|
+
case "number":
|
|
835
|
+
case "integer":
|
|
836
|
+
return "0";
|
|
837
|
+
case "boolean":
|
|
838
|
+
return "true";
|
|
839
|
+
case "array":
|
|
840
|
+
return "[]";
|
|
841
|
+
case "object":
|
|
842
|
+
return "{}";
|
|
843
|
+
case "string":
|
|
844
|
+
default:
|
|
845
|
+
return `{${paramName}}`;
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
function escapeRegex(str) {
|
|
849
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
850
|
+
}
|
|
851
|
+
function parseXmlToolCalls(text, availableTools, options = {}) {
|
|
852
|
+
const toolCalls = [];
|
|
853
|
+
const toolPatterns = availableTools.map((toolName) => ({
|
|
854
|
+
name: toolName,
|
|
855
|
+
regex: new RegExp(
|
|
856
|
+
`<${escapeRegex(toolName)}>([\\s\\S]*?)<\\/${escapeRegex(toolName)}>`,
|
|
857
|
+
"g"
|
|
858
|
+
)
|
|
859
|
+
}));
|
|
860
|
+
for (const { name: toolName, regex } of toolPatterns) {
|
|
861
|
+
let match;
|
|
862
|
+
while ((match = regex.exec(text)) !== null) {
|
|
863
|
+
const content = match[1];
|
|
864
|
+
const args = parseXmlParameters(content, options);
|
|
865
|
+
let callId;
|
|
866
|
+
if (typeof args.callId === "string" && args.callId.trim()) {
|
|
867
|
+
callId = args.callId.trim();
|
|
868
|
+
delete args.callId;
|
|
869
|
+
} else {
|
|
870
|
+
callId = generateToolCallId();
|
|
871
|
+
}
|
|
872
|
+
toolCalls.push({
|
|
873
|
+
id: callId,
|
|
874
|
+
name: toolName,
|
|
875
|
+
arguments: args
|
|
876
|
+
});
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
return toolCalls;
|
|
880
|
+
}
|
|
881
|
+
function parseXmlParameters(content, options = {}) {
|
|
882
|
+
const args = {};
|
|
883
|
+
const trimWhitespace = options.trimParameterWhitespace ?? false;
|
|
884
|
+
const paramRegex = /<([a-zA-Z_][a-zA-Z0-9_-]*)>([\s\S]*?)<\/\1>/g;
|
|
885
|
+
let match;
|
|
886
|
+
while ((match = paramRegex.exec(content)) !== null) {
|
|
887
|
+
const paramName = match[1];
|
|
888
|
+
const paramValue = trimWhitespace ? match[2].trim() : match[2];
|
|
889
|
+
const openTag = `<${paramName}>`;
|
|
890
|
+
const closeTag = `</${paramName}>`;
|
|
891
|
+
if (paramValue.includes(openTag) || paramValue.includes(closeTag)) {
|
|
892
|
+
continue;
|
|
893
|
+
}
|
|
894
|
+
const unescapedValue = unescapeXml(paramValue);
|
|
895
|
+
try {
|
|
896
|
+
args[paramName] = JSON.parse(unescapedValue);
|
|
897
|
+
} catch {
|
|
898
|
+
args[paramName] = unescapedValue;
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
return args;
|
|
902
|
+
}
|
|
903
|
+
function generateToolCallId() {
|
|
904
|
+
toolCallIdCounter += 1;
|
|
905
|
+
const timestampPart = Date.now().toString(36);
|
|
906
|
+
const counterPart = toolCallIdCounter.toString(36);
|
|
907
|
+
const randomPart = Math.random().toString(36).slice(2, 11);
|
|
908
|
+
return `call_xml_${timestampPart}_${counterPart}_${randomPart}`;
|
|
909
|
+
}
|
|
910
|
+
function escapeXml(str) {
|
|
911
|
+
return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
912
|
+
}
|
|
913
|
+
function unescapeXml(str) {
|
|
914
|
+
return str.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&");
|
|
915
|
+
}
|
|
916
|
+
function formatToolCallAsXml(name, args) {
|
|
917
|
+
const paramLines = Object.entries(args).map(([key, value]) => {
|
|
918
|
+
const stringValue = typeof value === "string" ? value : JSON.stringify(value);
|
|
919
|
+
const escapedValue = escapeXml(stringValue);
|
|
920
|
+
return `<${key}>${escapedValue}</${key}>`;
|
|
921
|
+
});
|
|
922
|
+
return `<${name}>
|
|
923
|
+
${paramLines.join("\n")}
|
|
924
|
+
</${name}>`;
|
|
925
|
+
}
|
|
926
|
+
function formatToolResultAsText(toolName, result) {
|
|
927
|
+
return `<${toolName}_result>
|
|
928
|
+
${result}
|
|
929
|
+
</${toolName}_result>`;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
// src/plugin.ts
|
|
933
|
+
function generateModelsConfig(models, providerName = "custom-provider") {
|
|
934
|
+
const modelsConfig = {};
|
|
935
|
+
for (const model of models) {
|
|
936
|
+
const metadata = getModelMetadataFromPatterns2(model.id);
|
|
937
|
+
const merged = mergeMetadata(model.metadata, metadata);
|
|
938
|
+
modelsConfig[model.id] = {
|
|
939
|
+
name: model.name || model.id,
|
|
940
|
+
tool_call: merged.supportsToolCalling ?? true,
|
|
941
|
+
attachment: merged.supportsImageInput ?? false,
|
|
942
|
+
limit: {
|
|
943
|
+
context: merged.maxInputTokens || 128e3,
|
|
944
|
+
output: merged.maxOutputTokens || 16384
|
|
945
|
+
}
|
|
946
|
+
};
|
|
947
|
+
}
|
|
948
|
+
const config = {
|
|
949
|
+
provider: {
|
|
950
|
+
[providerName]: {
|
|
951
|
+
name: providerName,
|
|
952
|
+
npm: "@oai2lmapi/opencode-provider",
|
|
953
|
+
options: {
|
|
954
|
+
baseURL: "YOUR_API_BASE_URL",
|
|
955
|
+
apiKey: "{env:YOUR_API_KEY_ENV}"
|
|
956
|
+
},
|
|
957
|
+
models: modelsConfig
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
};
|
|
961
|
+
return JSON.stringify(config, null, 2);
|
|
962
|
+
}
|
|
963
|
+
function formatModelsForDisplay(models, providerName) {
|
|
964
|
+
const lines = [
|
|
965
|
+
`# Discovered ${models.length} models`,
|
|
966
|
+
"",
|
|
967
|
+
"## Quick Setup",
|
|
968
|
+
"",
|
|
969
|
+
"Add the following to your opencode.json:",
|
|
970
|
+
"",
|
|
971
|
+
"```json",
|
|
972
|
+
generateModelsConfig(models, providerName),
|
|
973
|
+
"```",
|
|
974
|
+
"",
|
|
975
|
+
"## Model Details",
|
|
976
|
+
""
|
|
977
|
+
];
|
|
978
|
+
for (const model of models) {
|
|
979
|
+
const metadata = getModelMetadataFromPatterns2(model.id);
|
|
980
|
+
const merged = mergeMetadata(model.metadata, metadata);
|
|
981
|
+
lines.push(`### ${model.id}`);
|
|
982
|
+
if (model.name && model.name !== model.id) {
|
|
983
|
+
lines.push(`- Name: ${model.name}`);
|
|
984
|
+
}
|
|
985
|
+
lines.push(`- Context: ${merged.maxInputTokens || "unknown"} tokens`);
|
|
986
|
+
lines.push(`- Output: ${merged.maxOutputTokens || "unknown"} tokens`);
|
|
987
|
+
lines.push(`- Tool Calling: ${merged.supportsToolCalling ? "Yes" : "No"}`);
|
|
988
|
+
lines.push(`- Vision: ${merged.supportsImageInput ? "Yes" : "No"}`);
|
|
989
|
+
lines.push("");
|
|
990
|
+
}
|
|
991
|
+
return lines.join("\n");
|
|
992
|
+
}
|
|
993
|
+
async function oai2lmPlugin(_input) {
|
|
994
|
+
return {
|
|
995
|
+
tool: {
|
|
996
|
+
oai2lm_discover: {
|
|
997
|
+
description: `Discover available models from an OpenAI-compatible API and generate opencode.json configuration.
|
|
998
|
+
|
|
999
|
+
This tool will:
|
|
1000
|
+
1. Connect to the specified API endpoint
|
|
1001
|
+
2. Fetch all available models
|
|
1002
|
+
3. Enrich them with metadata (token limits, capabilities)
|
|
1003
|
+
4. Generate ready-to-use opencode.json configuration
|
|
1004
|
+
|
|
1005
|
+
Use this when you want to add a new OpenAI-compatible provider to OpenCode.`,
|
|
1006
|
+
parameters: {
|
|
1007
|
+
type: "object",
|
|
1008
|
+
properties: {
|
|
1009
|
+
baseURL: {
|
|
1010
|
+
type: "string",
|
|
1011
|
+
description: "Base URL of the OpenAI-compatible API (e.g., https://api.example.com/v1). If not provided, will try to load from oai2lm.json config."
|
|
1012
|
+
},
|
|
1013
|
+
apiKey: {
|
|
1014
|
+
type: "string",
|
|
1015
|
+
description: "API key for authentication. If not provided, will try to load from config or environment."
|
|
1016
|
+
},
|
|
1017
|
+
providerName: {
|
|
1018
|
+
type: "string",
|
|
1019
|
+
description: "Name for the provider in opencode.json (e.g., 'my-api'). Defaults to 'custom-provider'."
|
|
1020
|
+
},
|
|
1021
|
+
filter: {
|
|
1022
|
+
type: "string",
|
|
1023
|
+
description: "Optional regex pattern to filter models (e.g., 'gpt|claude')"
|
|
1024
|
+
}
|
|
1025
|
+
},
|
|
1026
|
+
required: []
|
|
1027
|
+
},
|
|
1028
|
+
execute: async (args) => {
|
|
1029
|
+
try {
|
|
1030
|
+
const config = loadConfig();
|
|
1031
|
+
const baseURL = args.baseURL || config?.baseURL || "";
|
|
1032
|
+
const apiKey = args.apiKey || (config ? resolveApiKey(config) : "") || "";
|
|
1033
|
+
const providerName = args.providerName || config?.name || "custom-provider";
|
|
1034
|
+
const filter = args.filter || config?.modelFilter;
|
|
1035
|
+
if (!baseURL) {
|
|
1036
|
+
return `Error: No baseURL provided. Either:
|
|
1037
|
+
1. Pass it as an argument: oai2lm_discover(baseURL: "https://api.example.com/v1")
|
|
1038
|
+
2. Or create an oai2lm.json config file with baseURL
|
|
1039
|
+
|
|
1040
|
+
Example oai2lm.json:
|
|
1041
|
+
{
|
|
1042
|
+
"baseURL": "https://api.example.com/v1",
|
|
1043
|
+
"apiKey": "your-api-key"
|
|
1044
|
+
}`;
|
|
1045
|
+
}
|
|
1046
|
+
let models = await discoverModels(baseURL, apiKey, config?.headers);
|
|
1047
|
+
if (filter) {
|
|
1048
|
+
const filterRegex = new RegExp(filter, "i");
|
|
1049
|
+
models = models.filter((m) => filterRegex.test(m.id));
|
|
1050
|
+
}
|
|
1051
|
+
if (models.length === 0) {
|
|
1052
|
+
return `No models found at ${baseURL}/models. Check your API key and endpoint.`;
|
|
1053
|
+
}
|
|
1054
|
+
return formatModelsForDisplay(models, providerName);
|
|
1055
|
+
} catch (error) {
|
|
1056
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1057
|
+
return `Error discovering models: ${message}`;
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
};
|
|
1063
|
+
}
|
|
1064
|
+
|
|
702
1065
|
// src/index.ts
|
|
703
1066
|
var modelCache = /* @__PURE__ */ new WeakMap();
|
|
704
1067
|
function findModelOverride(modelId, overrides) {
|
|
705
|
-
if (!overrides)
|
|
1068
|
+
if (!overrides) {
|
|
1069
|
+
return void 0;
|
|
1070
|
+
}
|
|
706
1071
|
if (overrides[modelId]) {
|
|
707
1072
|
return overrides[modelId];
|
|
708
1073
|
}
|
|
@@ -721,7 +1086,9 @@ function findModelOverride(modelId, overrides) {
|
|
|
721
1086
|
return void 0;
|
|
722
1087
|
}
|
|
723
1088
|
function mergeWithConfig(options, config) {
|
|
724
|
-
if (!config)
|
|
1089
|
+
if (!config) {
|
|
1090
|
+
return options;
|
|
1091
|
+
}
|
|
725
1092
|
return {
|
|
726
1093
|
// Options take precedence over config
|
|
727
1094
|
baseURL: options.baseURL || config.baseURL || "",
|
|
@@ -830,7 +1197,15 @@ export {
|
|
|
830
1197
|
createOai2lm,
|
|
831
1198
|
index_default as default,
|
|
832
1199
|
discoverModels,
|
|
1200
|
+
escapeXml,
|
|
1201
|
+
findModelOverride,
|
|
1202
|
+
formatToolCallAsXml,
|
|
1203
|
+
formatToolResultAsText,
|
|
1204
|
+
generateModelsConfig,
|
|
1205
|
+
generateXmlToolPrompt,
|
|
833
1206
|
loadConfig,
|
|
1207
|
+
oai2lmPlugin,
|
|
1208
|
+
parseXmlToolCalls,
|
|
834
1209
|
resolveApiKey
|
|
835
1210
|
};
|
|
836
1211
|
//# sourceMappingURL=index.js.map
|