@staticeng/opencode-litellm 0.1.1 → 0.1.3

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.
@@ -0,0 +1,4 @@
1
+ export { buildProvider, mapModels, normalizeModelListResponse, modelListResponseShape } from "./mapping.js";
2
+ export { fetchModelInfo } from "./litellm.js";
3
+ export { deepMerge } from "./merge.js";
4
+ export type { LiteLLMPluginOptions, LiteLLMModelInfo, OpenCodeProvider, OpenCodeModel } from "./types.js";
@@ -0,0 +1,3 @@
1
+ export { buildProvider, mapModels, normalizeModelListResponse, modelListResponseShape } from "./mapping.js";
2
+ export { fetchModelInfo } from "./litellm.js";
3
+ export { deepMerge } from "./merge.js";
package/dist/index.d.ts CHANGED
@@ -1,10 +1,7 @@
1
1
  import type { Config, PluginInput } from "@opencode-ai/plugin";
2
2
  import type { LiteLLMPluginOptions } from "./types.js";
3
- export declare const LiteLLMPlugin: (ctx: PluginInput, options?: LiteLLMPluginOptions) => Promise<{
3
+ declare const LiteLLMPlugin: (ctx: PluginInput, options?: LiteLLMPluginOptions) => Promise<{
4
4
  config: (cfg: Config) => Promise<void>;
5
5
  }>;
6
6
  export default LiteLLMPlugin;
7
- export { buildProvider, mapModels, normalizeModelListResponse, modelListResponseShape, LiteLLMModelListResponseError } from "./mapping.js";
8
- export { fetchModelInfo } from "./litellm.js";
9
- export { deepMerge } from "./merge.js";
10
7
  export type { LiteLLMPluginOptions, LiteLLMModelInfo, OpenCodeProvider, OpenCodeModel } from "./types.js";
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import { resolveOptions } from "./options.js";
4
4
  async function log(ctx, level, message, extra = {}) {
5
5
  await ctx.client?.app?.log?.({ body: { service: "opencode-litellm", level, message, extra } });
6
6
  }
7
- export const LiteLLMPlugin = async (ctx, options) => {
7
+ const LiteLLMPlugin = async (ctx, options) => {
8
8
  const resolved = resolveOptions(options);
9
9
  return {
10
10
  config: async (cfg) => {
@@ -34,6 +34,3 @@ export const LiteLLMPlugin = async (ctx, options) => {
34
34
  };
35
35
  };
36
36
  export default LiteLLMPlugin;
37
- export { buildProvider, mapModels, normalizeModelListResponse, modelListResponseShape, LiteLLMModelListResponseError } from "./mapping.js";
38
- export { fetchModelInfo } from "./litellm.js";
39
- export { deepMerge } from "./merge.js";
package/dist/mapping.d.ts CHANGED
@@ -8,10 +8,6 @@ export type ModelListResponseShape = {
8
8
  scalarValueCount?: number;
9
9
  };
10
10
  export declare function modelListResponseShape(value: unknown): ModelListResponseShape;
11
- export declare class LiteLLMModelListResponseError extends Error {
12
- responseShape: ModelListResponseShape;
13
- constructor(response: unknown);
14
- }
15
11
  export declare function normalizeModelListResponse(response: unknown): LiteLLMModelInfo[];
16
12
  export declare function mapModels(response: unknown, options?: LiteLLMPluginOptions): {
17
13
  [k: string]: OpenCodeModel;
package/dist/mapping.js CHANGED
@@ -42,13 +42,11 @@ export function modelListResponseShape(value) {
42
42
  scalarValueCount: values.filter((entry) => !isRecord(entry) && !Array.isArray(entry)).length,
43
43
  };
44
44
  }
45
- export class LiteLLMModelListResponseError extends Error {
46
- responseShape;
47
- constructor(response) {
48
- super(MODEL_LIST_RESPONSE_ERROR_MESSAGE);
49
- this.name = "LiteLLMModelListResponseError";
50
- this.responseShape = modelListResponseShape(response);
51
- }
45
+ function modelListResponseError(response) {
46
+ return Object.assign(new Error(MODEL_LIST_RESPONSE_ERROR_MESSAGE), {
47
+ name: "LiteLLMModelListResponseError",
48
+ responseShape: modelListResponseShape(response),
49
+ });
52
50
  }
53
51
  function asString(value) {
54
52
  return typeof value === "string" && value.trim() ? value : undefined;
@@ -96,14 +94,14 @@ export function normalizeModelListResponse(response) {
96
94
  return response[field];
97
95
  }
98
96
  if (MODEL_ARRAY_FIELDS.some((field) => field in response))
99
- throw new LiteLLMModelListResponseError(response);
97
+ throw modelListResponseError(response);
100
98
  const mappedModels = Object.entries(response)
101
99
  .map(([name, value]) => normalizeMappedModel(name, value))
102
100
  .filter((model) => Boolean(model));
103
101
  if (mappedModels.length > 0)
104
102
  return mappedModels;
105
103
  }
106
- throw new LiteLLMModelListResponseError(response);
104
+ throw modelListResponseError(response);
107
105
  }
108
106
  function mode(model) {
109
107
  return asString(model.model_info?.mode) ?? "chat";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@staticeng/opencode-litellm",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "OpenCode plugin that discovers LiteLLM models at runtime.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -10,6 +10,10 @@
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js"
13
+ },
14
+ "./helpers": {
15
+ "types": "./dist/helpers.d.ts",
16
+ "import": "./dist/helpers.js"
13
17
  }
14
18
  },
15
19
  "files": [