@better-agent/ollama 0.2.0-beta.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.
- package/dist/index.d.mts +34 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +66 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +55 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OllamaChatProviderOptions, OllamaChatSettings, OllamaEmbeddingProviderOptions as OllamaEmbeddingProviderOptions$1, OllamaEmbeddingSettings, OllamaProviderOptions as OllamaProviderOptions$1, OllamaProviderSettings } from "ai-sdk-ollama";
|
|
2
|
+
import { AgentCapabilities, AgentModel, EmbeddingGenerationModel, TextGenerationModel } from "@better-agent/core";
|
|
3
|
+
|
|
4
|
+
//#region src/model.d.ts
|
|
5
|
+
type CreateOllamaOptions = OllamaProviderSettings;
|
|
6
|
+
type OllamaProviderOptions = {
|
|
7
|
+
ollama?: OllamaProviderOptions$1;
|
|
8
|
+
};
|
|
9
|
+
type OllamaTextProviderOptions = {
|
|
10
|
+
ollama?: OllamaChatProviderOptions;
|
|
11
|
+
};
|
|
12
|
+
type OllamaEmbeddingProviderOptions = {
|
|
13
|
+
ollama?: OllamaEmbeddingProviderOptions$1;
|
|
14
|
+
};
|
|
15
|
+
type OllamaGenerationProviderOptions = OllamaProviderOptions | OllamaTextProviderOptions | OllamaEmbeddingProviderOptions;
|
|
16
|
+
type OllamaChatModelSettings = OllamaChatSettings;
|
|
17
|
+
type OllamaEmbeddingModelSettings = OllamaEmbeddingSettings;
|
|
18
|
+
type OllamaModelId = string;
|
|
19
|
+
type OllamaTextModelId = OllamaModelId;
|
|
20
|
+
type OllamaEmbeddingModelId = string;
|
|
21
|
+
type OllamaModelOptions = OllamaChatModelSettings;
|
|
22
|
+
type OllamaModel<TModelId extends OllamaModelId = OllamaModelId> = AgentModel<AgentCapabilities, undefined, OllamaProviderOptions, TModelId>;
|
|
23
|
+
type OllamaTextModel<TModelId extends OllamaTextModelId = OllamaTextModelId> = TextGenerationModel<OllamaTextProviderOptions, TModelId>;
|
|
24
|
+
type OllamaEmbeddingModel<TModelId extends OllamaEmbeddingModelId = OllamaEmbeddingModelId> = EmbeddingGenerationModel<OllamaEmbeddingProviderOptions, TModelId>;
|
|
25
|
+
type OllamaProvider = {
|
|
26
|
+
<TModelId extends OllamaModelId>(modelId: TModelId, options?: OllamaModelOptions): OllamaModel<TModelId>;
|
|
27
|
+
text<TModelId extends OllamaTextModelId>(modelId: TModelId, settings?: OllamaChatModelSettings): OllamaTextModel<TModelId>;
|
|
28
|
+
embedding<TModelId extends OllamaEmbeddingModelId>(modelId: TModelId, settings?: OllamaEmbeddingModelSettings): OllamaEmbeddingModel<TModelId>;
|
|
29
|
+
};
|
|
30
|
+
declare const createOllama: (options?: CreateOllamaOptions) => OllamaProvider;
|
|
31
|
+
declare const ollama: OllamaProvider;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { type CreateOllamaOptions, type OllamaChatModelSettings, type OllamaEmbeddingModel, type OllamaEmbeddingModelId, type OllamaEmbeddingModelSettings, type OllamaEmbeddingProviderOptions, type OllamaGenerationProviderOptions, type OllamaModel, type OllamaModelId, type OllamaModelOptions, type OllamaProvider, type OllamaProviderOptions, type OllamaTextModel, type OllamaTextModelId, type OllamaTextProviderOptions, createOllama, ollama };
|
|
34
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/model.ts"],"mappings":";;;;KAoBY,mBAAA,GAAsB,sBAAA;AAAA,KAEtB,qBAAA;EACR,MAAA,GAAS,uBAAA;AAAA;AAAA,KAED,yBAAA;EACR,MAAA,GAAS,yBAAA;AAAA;AAAA,KAED,8BAAA;EACR,MAAA,GAAS,gCAAA;AAAA;AAAA,KAED,+BAAA,GACN,qBAAA,GACA,yBAAA,GACA,8BAAA;AAAA,KAEM,uBAAA,GAA0B,kBAAA;AAAA,KAC1B,4BAAA,GAA+B,uBAAA;AAAA,KAE/B,aAAA;AAAA,KACA,iBAAA,GAAoB,aAAA;AAAA,KACpB,sBAAA;AAAA,KAEA,kBAAA,GAAqB,uBAAA;AAAA,KAErB,WAAA,kBAA6B,aAAA,GAAgB,aAAA,IAAiB,UAAA,CACtE,iBAAA,aAEA,qBAAA,EACA,QAAA;AAAA,KAEQ,eAAA,kBAAiC,iBAAA,GAAoB,iBAAA,IAC7D,mBAAA,CAAoB,yBAAA,EAA2B,QAAA;AAAA,KACvC,oBAAA,kBAAsC,sBAAA,GAAyB,sBAAA,IACvE,wBAAA,CAAyB,8BAAA,EAAgC,QAAA;AAAA,KAEjD,cAAA;EAAA,kBACU,aAAA,EACd,OAAA,EAAS,QAAA,EACT,OAAA,GAAU,kBAAA,GACX,WAAA,CAAY,QAAA;EACf,IAAA,kBAAsB,iBAAA,EAClB,OAAA,EAAS,QAAA,EACT,QAAA,GAAW,uBAAA,GACZ,eAAA,CAAgB,QAAA;EACnB,SAAA,kBAA2B,sBAAA,EACvB,OAAA,EAAS,QAAA,EACT,QAAA,GAAW,4BAAA,GACZ,oBAAA,CAAqB,QAAA;AAAA;AAAA,cAsGf,YAAA,GAAY,OAAA,GAAa,mBAAA,KAA2B,cAAA;AAAA,cAIpD,MAAA,EAAM,cAAA"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { aiSdkEmbeddingModel, aiSdkModel, aiSdkTextModel } from "@better-agent/ai-sdk";
|
|
2
|
+
import { createOllama as createOllama$1, ollama as ollama$1 } from "ai-sdk-ollama";
|
|
3
|
+
|
|
4
|
+
//#region src/model.ts
|
|
5
|
+
const ollamaCapabilities = {
|
|
6
|
+
identity: { provider: "ollama" },
|
|
7
|
+
transport: { streaming: true },
|
|
8
|
+
output: {
|
|
9
|
+
structuredOutput: true,
|
|
10
|
+
supportedMimeTypes: ["text/plain", "application/json"]
|
|
11
|
+
},
|
|
12
|
+
multimodal: { input: { image: true } },
|
|
13
|
+
tools: {
|
|
14
|
+
supported: true,
|
|
15
|
+
parallelCalls: false
|
|
16
|
+
},
|
|
17
|
+
reasoning: { supported: true }
|
|
18
|
+
};
|
|
19
|
+
const toAiSdkLanguageModel = (model) => {
|
|
20
|
+
return model;
|
|
21
|
+
};
|
|
22
|
+
const toAiSdkEmbeddingModel = (model) => {
|
|
23
|
+
return model;
|
|
24
|
+
};
|
|
25
|
+
const createAgentModel = (provider, modelId, options) => {
|
|
26
|
+
return aiSdkModel({
|
|
27
|
+
model: toAiSdkLanguageModel(provider(modelId, options)),
|
|
28
|
+
providerId: "ollama",
|
|
29
|
+
modelId,
|
|
30
|
+
capabilities: ollamaCapabilities
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
const createTextModel = (provider, modelId, settings) => {
|
|
34
|
+
return aiSdkTextModel({
|
|
35
|
+
model: toAiSdkLanguageModel(provider(modelId, settings)),
|
|
36
|
+
providerId: "ollama",
|
|
37
|
+
modelId
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const createEmbeddingModel = (provider, modelId, settings) => {
|
|
41
|
+
return aiSdkEmbeddingModel({
|
|
42
|
+
model: toAiSdkEmbeddingModel(provider.embedding(modelId, settings)),
|
|
43
|
+
providerId: "ollama",
|
|
44
|
+
modelId
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
const createProvider = (provider) => {
|
|
48
|
+
return Object.assign((modelId, options) => {
|
|
49
|
+
return createAgentModel(provider, modelId, options);
|
|
50
|
+
}, {
|
|
51
|
+
text(modelId, settings) {
|
|
52
|
+
return createTextModel(provider, modelId, settings);
|
|
53
|
+
},
|
|
54
|
+
embedding(modelId, settings) {
|
|
55
|
+
return createEmbeddingModel(provider, modelId, settings);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const createOllama = (options = {}) => {
|
|
60
|
+
return createProvider(createOllama$1(options));
|
|
61
|
+
};
|
|
62
|
+
const ollama = createProvider(ollama$1);
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
export { createOllama, ollama };
|
|
66
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["createAiSdkOllama","defaultAiSdkOllama"],"sources":["../src/model.ts"],"sourcesContent":["import { aiSdkEmbeddingModel, aiSdkModel, aiSdkTextModel } from \"@better-agent/ai-sdk\";\nimport type {\n AgentCapabilities,\n AgentModel,\n EmbeddingGenerationModel,\n TextGenerationModel,\n} from \"@better-agent/core\";\nimport type { EmbeddingModel, LanguageModel } from \"ai\";\nimport {\n type OllamaChatProviderOptions as AiSdkOllamaChatProviderOptions,\n type OllamaEmbeddingProviderOptions as AiSdkOllamaEmbeddingProviderOptions,\n type OllamaProvider as AiSdkOllamaProvider,\n type OllamaProviderOptions as AiSdkOllamaProviderOptions,\n type OllamaChatSettings,\n type OllamaEmbeddingSettings,\n type OllamaProviderSettings,\n createOllama as createAiSdkOllama,\n ollama as defaultAiSdkOllama,\n} from \"ai-sdk-ollama\";\n\nexport type CreateOllamaOptions = OllamaProviderSettings;\n\nexport type OllamaProviderOptions = {\n ollama?: AiSdkOllamaProviderOptions;\n};\nexport type OllamaTextProviderOptions = {\n ollama?: AiSdkOllamaChatProviderOptions;\n};\nexport type OllamaEmbeddingProviderOptions = {\n ollama?: AiSdkOllamaEmbeddingProviderOptions;\n};\nexport type OllamaGenerationProviderOptions =\n | OllamaProviderOptions\n | OllamaTextProviderOptions\n | OllamaEmbeddingProviderOptions;\n\nexport type OllamaChatModelSettings = OllamaChatSettings;\nexport type OllamaEmbeddingModelSettings = OllamaEmbeddingSettings;\n\nexport type OllamaModelId = string;\nexport type OllamaTextModelId = OllamaModelId;\nexport type OllamaEmbeddingModelId = string;\n\nexport type OllamaModelOptions = OllamaChatModelSettings;\n\nexport type OllamaModel<TModelId extends OllamaModelId = OllamaModelId> = AgentModel<\n AgentCapabilities,\n undefined,\n OllamaProviderOptions,\n TModelId\n>;\nexport type OllamaTextModel<TModelId extends OllamaTextModelId = OllamaTextModelId> =\n TextGenerationModel<OllamaTextProviderOptions, TModelId>;\nexport type OllamaEmbeddingModel<TModelId extends OllamaEmbeddingModelId = OllamaEmbeddingModelId> =\n EmbeddingGenerationModel<OllamaEmbeddingProviderOptions, TModelId>;\n\nexport type OllamaProvider = {\n <TModelId extends OllamaModelId>(\n modelId: TModelId,\n options?: OllamaModelOptions,\n ): OllamaModel<TModelId>;\n text<TModelId extends OllamaTextModelId>(\n modelId: TModelId,\n settings?: OllamaChatModelSettings,\n ): OllamaTextModel<TModelId>;\n embedding<TModelId extends OllamaEmbeddingModelId>(\n modelId: TModelId,\n settings?: OllamaEmbeddingModelSettings,\n ): OllamaEmbeddingModel<TModelId>;\n};\n\nconst ollamaCapabilities = {\n identity: {\n provider: \"ollama\",\n },\n transport: {\n streaming: true,\n },\n output: {\n structuredOutput: true,\n supportedMimeTypes: [\"text/plain\", \"application/json\"],\n },\n multimodal: {\n input: {\n image: true,\n },\n },\n tools: {\n supported: true,\n parallelCalls: false,\n },\n reasoning: {\n supported: true,\n },\n} as const satisfies AgentCapabilities;\n\nconst toAiSdkLanguageModel = (model: ReturnType<AiSdkOllamaProvider>): LanguageModel => {\n return model;\n};\n\nconst toAiSdkEmbeddingModel = (\n model: ReturnType<AiSdkOllamaProvider[\"embedding\"]>,\n): EmbeddingModel => {\n return model;\n};\n\nconst createAgentModel = <TModelId extends OllamaModelId>(\n provider: AiSdkOllamaProvider,\n modelId: TModelId,\n options: OllamaModelOptions | undefined,\n): OllamaModel<TModelId> => {\n return aiSdkModel<AgentCapabilities, OllamaProviderOptions, TModelId>({\n model: toAiSdkLanguageModel(provider(modelId, options)),\n providerId: \"ollama\",\n modelId,\n capabilities: ollamaCapabilities,\n });\n};\n\nconst createTextModel = <TModelId extends OllamaTextModelId>(\n provider: AiSdkOllamaProvider,\n modelId: TModelId,\n settings?: OllamaChatModelSettings,\n): OllamaTextModel<TModelId> => {\n return aiSdkTextModel<OllamaTextProviderOptions, TModelId>({\n model: toAiSdkLanguageModel(provider(modelId, settings)),\n providerId: \"ollama\",\n modelId,\n });\n};\n\nconst createEmbeddingModel = <TModelId extends OllamaEmbeddingModelId>(\n provider: AiSdkOllamaProvider,\n modelId: TModelId,\n settings?: OllamaEmbeddingModelSettings,\n): OllamaEmbeddingModel<TModelId> => {\n return aiSdkEmbeddingModel<OllamaEmbeddingProviderOptions, TModelId>({\n model: toAiSdkEmbeddingModel(provider.embedding(modelId, settings)),\n providerId: \"ollama\",\n modelId,\n });\n};\n\nconst createProvider = (provider: AiSdkOllamaProvider): OllamaProvider => {\n const createOllamaModel: OllamaProvider = Object.assign(\n <TModelId extends OllamaModelId>(\n modelId: TModelId,\n options?: OllamaModelOptions,\n ): OllamaModel<TModelId> => {\n return createAgentModel(provider, modelId, options);\n },\n {\n text<TModelId extends OllamaTextModelId>(\n modelId: TModelId,\n settings?: OllamaChatModelSettings,\n ): OllamaTextModel<TModelId> {\n return createTextModel(provider, modelId, settings);\n },\n embedding<TModelId extends OllamaEmbeddingModelId>(\n modelId: TModelId,\n settings?: OllamaEmbeddingModelSettings,\n ): OllamaEmbeddingModel<TModelId> {\n return createEmbeddingModel(provider, modelId, settings);\n },\n },\n );\n\n return createOllamaModel;\n};\n\nexport const createOllama = (options: CreateOllamaOptions = {}): OllamaProvider => {\n return createProvider(createAiSdkOllama(options));\n};\n\nexport const ollama = createProvider(defaultAiSdkOllama);\n"],"mappings":";;;;AAuEA,MAAM,qBAAqB;CACvB,UAAU,EACN,UAAU,UACb;CACD,WAAW,EACP,WAAW,MACd;CACD,QAAQ;EACJ,kBAAkB;EAClB,oBAAoB,CAAC,cAAc,mBAAmB;EACzD;CACD,YAAY,EACR,OAAO,EACH,OAAO,MACV,EACJ;CACD,OAAO;EACH,WAAW;EACX,eAAe;EAClB;CACD,WAAW,EACP,WAAW,MACd;CACJ;AAED,MAAM,wBAAwB,UAA0D;AACpF,QAAO;;AAGX,MAAM,yBACF,UACiB;AACjB,QAAO;;AAGX,MAAM,oBACF,UACA,SACA,YACwB;AACxB,QAAO,WAA+D;EAClE,OAAO,qBAAqB,SAAS,SAAS,QAAQ,CAAC;EACvD,YAAY;EACZ;EACA,cAAc;EACjB,CAAC;;AAGN,MAAM,mBACF,UACA,SACA,aAC4B;AAC5B,QAAO,eAAoD;EACvD,OAAO,qBAAqB,SAAS,SAAS,SAAS,CAAC;EACxD,YAAY;EACZ;EACH,CAAC;;AAGN,MAAM,wBACF,UACA,SACA,aACiC;AACjC,QAAO,oBAA8D;EACjE,OAAO,sBAAsB,SAAS,UAAU,SAAS,SAAS,CAAC;EACnE,YAAY;EACZ;EACH,CAAC;;AAGN,MAAM,kBAAkB,aAAkD;AAwBtE,QAvB0C,OAAO,QAEzC,SACA,YACwB;AACxB,SAAO,iBAAiB,UAAU,SAAS,QAAQ;IAEvD;EACI,KACI,SACA,UACyB;AACzB,UAAO,gBAAgB,UAAU,SAAS,SAAS;;EAEvD,UACI,SACA,UAC8B;AAC9B,UAAO,qBAAqB,UAAU,SAAS,SAAS;;EAE/D,CACJ;;AAKL,MAAa,gBAAgB,UAA+B,EAAE,KAAqB;AAC/E,QAAO,eAAeA,eAAkB,QAAQ,CAAC;;AAGrD,MAAa,SAAS,eAAeC,SAAmB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@better-agent/ollama",
|
|
3
|
+
"version": "0.2.0-beta.1",
|
|
4
|
+
"description": "Better Agent Ollama provider",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/better-agent/better-agent.git",
|
|
9
|
+
"directory": "packages/ollama"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/better-agent/better-agent/tree/main/packages/ollama",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/better-agent/better-agent/issues"
|
|
14
|
+
},
|
|
15
|
+
"engines": {
|
|
16
|
+
"bun": ">=1.3.3",
|
|
17
|
+
"node": ">=20"
|
|
18
|
+
},
|
|
19
|
+
"type": "module",
|
|
20
|
+
"types": "./dist/index.d.mts",
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.mts",
|
|
25
|
+
"import": "./dist/index.mjs"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "bunx tsdown",
|
|
30
|
+
"dev": "bunx tsdown --watch --no-clean",
|
|
31
|
+
"lint:package": "bunx publint run --strict",
|
|
32
|
+
"lint:types": "npm_config_cache=../../.npm-cache bunx attw --profile esm-only --pack .",
|
|
33
|
+
"lint": "bunx biome check .",
|
|
34
|
+
"typecheck": "bunx tsc -p tsconfig.json --noEmit",
|
|
35
|
+
"format": "bunx biome format --write .",
|
|
36
|
+
"clean": "bunx rimraf dist"
|
|
37
|
+
},
|
|
38
|
+
"files": ["dist"],
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@better-agent/ai-sdk": "0.2.0-beta.1",
|
|
44
|
+
"ai": "^6.0.168",
|
|
45
|
+
"ai-sdk-ollama": "^0.5.5"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@better-agent/core": "0.2.0-beta.1",
|
|
49
|
+
"@types/bun": "^1.3.12",
|
|
50
|
+
"@types/node": "^22.19.17"
|
|
51
|
+
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@better-agent/core": "0.2.0-beta.1"
|
|
54
|
+
}
|
|
55
|
+
}
|