Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions packages/agent-providers/cerebras/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Cerebras Agent Provider

OpenAI-compatible sh1pt agent provider for Cerebras Inference.

Required env:

- `CEREBRAS_API_KEY`

Optional env:

- `CEREBRAS_BASE_URL` defaults to `https://api.cerebras.ai/v1`
- `CEREBRAS_MODEL` defaults to `zai-glm-4.7`
25 changes: 25 additions & 0 deletions packages/agent-providers/cerebras/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "@profullstack/sh1pt-agent-provider-cerebras",
"version": "0.1.15",
"type": "module",
"main": "src/index.ts",
"dependencies": {
"@profullstack/sh1pt-agent-provider-shared": "workspace:*"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/profullstack/sh1pt.git",
"directory": "packages/agent-providers/cerebras"
},
"homepage": "https://sh1pt.com",
"bugs": "https://github.com/profullstack/sh1pt/issues",
"files": [
"dist"
],
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit",
"prepublishOnly": "pnpm build"
}
}
1 change: 1 addition & 0 deletions packages/agent-providers/cerebras/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./provider";
22 changes: 22 additions & 0 deletions packages/agent-providers/cerebras/src/provider.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { describe, expect, it } from "vitest";
import { cerebrasProvider } from "./provider.js";

describe("cerebras agent provider", () => {
it("declares metadata and env", () => {
expect(cerebrasProvider.id).toBe("cerebras");
expect(cerebrasProvider.displayName).toBe("Cerebras");
expect(cerebrasProvider.capabilities.chat).toBe(true);
expect(cerebrasProvider.getRequiredEnv()).toEqual(
expect.arrayContaining([
{ key: "CEREBRAS_API_KEY", required: true },
{ key: "CEREBRAS_BASE_URL", required: false },
{ key: "CEREBRAS_MODEL", required: false },
]),
);
});

it("requires CEREBRAS_API_KEY", () => {
expect(() => cerebrasProvider.validateEnv({})).toThrow("Missing CEREBRAS_API_KEY");
expect(() => cerebrasProvider.validateEnv({ CEREBRAS_API_KEY: "sk-test" })).not.toThrow();
});
});
11 changes: 11 additions & 0 deletions packages/agent-providers/cerebras/src/provider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { createOpenAICompatibleProvider } from "@profullstack/sh1pt-agent-provider-shared";

export const cerebrasProvider = createOpenAICompatibleProvider({
id: "cerebras",
displayName: "Cerebras",
apiKeyEnv: "CEREBRAS_API_KEY",
baseUrlEnv: "CEREBRAS_BASE_URL",
modelEnv: "CEREBRAS_MODEL",
defaultBaseURL: "https://api.cerebras.ai/v1",
defaultModel: "gpt-oss-120b",
});
7 changes: 7 additions & 0 deletions packages/agent-providers/cerebras/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src"]
}
12 changes: 12 additions & 0 deletions packages/agent-providers/deepseek/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DeepSeek Agent Provider

OpenAI-compatible sh1pt agent provider for DeepSeek.

Required env:

- `DEEPSEEK_API_KEY`

Optional env:

- `DEEPSEEK_BASE_URL` defaults to `https://api.deepseek.com`
- `DEEPSEEK_MODEL` defaults to `deepseek-v4-flash`
25 changes: 25 additions & 0 deletions packages/agent-providers/deepseek/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "@profullstack/sh1pt-agent-provider-deepseek",
"version": "0.1.15",
"type": "module",
"main": "src/index.ts",
"dependencies": {
"@profullstack/sh1pt-agent-provider-shared": "workspace:*"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/profullstack/sh1pt.git",
"directory": "packages/agent-providers/deepseek"
},
"homepage": "https://sh1pt.com",
"bugs": "https://github.com/profullstack/sh1pt/issues",
"files": [
"dist"
],
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit",
"prepublishOnly": "pnpm build"
}
}
1 change: 1 addition & 0 deletions packages/agent-providers/deepseek/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./provider";
22 changes: 22 additions & 0 deletions packages/agent-providers/deepseek/src/provider.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { describe, expect, it } from "vitest";
import { deepseekProvider } from "./provider.js";

describe("deepseek agent provider", () => {
it("declares metadata and env", () => {
expect(deepseekProvider.id).toBe("deepseek");
expect(deepseekProvider.displayName).toBe("DeepSeek");
expect(deepseekProvider.capabilities.chat).toBe(true);
expect(deepseekProvider.getRequiredEnv()).toEqual(
expect.arrayContaining([
{ key: "DEEPSEEK_API_KEY", required: true },
{ key: "DEEPSEEK_BASE_URL", required: false },
{ key: "DEEPSEEK_MODEL", required: false },
]),
);
});

it("requires DEEPSEEK_API_KEY", () => {
expect(() => deepseekProvider.validateEnv({})).toThrow("Missing DEEPSEEK_API_KEY");
expect(() => deepseekProvider.validateEnv({ DEEPSEEK_API_KEY: "sk-test" })).not.toThrow();
});
});
11 changes: 11 additions & 0 deletions packages/agent-providers/deepseek/src/provider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { createOpenAICompatibleProvider } from "@profullstack/sh1pt-agent-provider-shared";

export const deepseekProvider = createOpenAICompatibleProvider({
id: "deepseek",
displayName: "DeepSeek",
apiKeyEnv: "DEEPSEEK_API_KEY",
baseUrlEnv: "DEEPSEEK_BASE_URL",
modelEnv: "DEEPSEEK_MODEL",
defaultBaseURL: "https://api.deepseek.com",
defaultModel: "deepseek-v4-flash",
});
7 changes: 7 additions & 0 deletions packages/agent-providers/deepseek/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src"]
}
12 changes: 12 additions & 0 deletions packages/agent-providers/groq/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Groq Agent Provider

OpenAI-compatible sh1pt agent provider for Groq.

Required env:

- `GROQ_API_KEY`

Optional env:

- `GROQ_BASE_URL` defaults to `https://api.groq.com/openai/v1`
- `GROQ_MODEL` defaults to `llama-3.3-70b-versatile`
25 changes: 25 additions & 0 deletions packages/agent-providers/groq/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "@profullstack/sh1pt-agent-provider-groq",
"version": "0.1.15",
"type": "module",
"main": "src/index.ts",
"dependencies": {
"@profullstack/sh1pt-agent-provider-shared": "workspace:*"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/profullstack/sh1pt.git",
"directory": "packages/agent-providers/groq"
},
"homepage": "https://sh1pt.com",
"bugs": "https://github.com/profullstack/sh1pt/issues",
"files": [
"dist"
],
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit",
"prepublishOnly": "pnpm build"
}
}
1 change: 1 addition & 0 deletions packages/agent-providers/groq/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./provider";
22 changes: 22 additions & 0 deletions packages/agent-providers/groq/src/provider.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { describe, expect, it } from "vitest";
import { groqProvider } from "./provider.js";

describe("groq agent provider", () => {
it("declares metadata and env", () => {
expect(groqProvider.id).toBe("groq");
expect(groqProvider.displayName).toBe("Groq");
expect(groqProvider.capabilities.chat).toBe(true);
expect(groqProvider.getRequiredEnv()).toEqual(
expect.arrayContaining([
{ key: "GROQ_API_KEY", required: true },
{ key: "GROQ_BASE_URL", required: false },
{ key: "GROQ_MODEL", required: false },
]),
);
});

it("requires GROQ_API_KEY", () => {
expect(() => groqProvider.validateEnv({})).toThrow("Missing GROQ_API_KEY");
expect(() => groqProvider.validateEnv({ GROQ_API_KEY: "sk-test" })).not.toThrow();
});
});
11 changes: 11 additions & 0 deletions packages/agent-providers/groq/src/provider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { createOpenAICompatibleProvider } from "@profullstack/sh1pt-agent-provider-shared";

export const groqProvider = createOpenAICompatibleProvider({
id: "groq",
displayName: "Groq",
apiKeyEnv: "GROQ_API_KEY",
baseUrlEnv: "GROQ_BASE_URL",
modelEnv: "GROQ_MODEL",
defaultBaseURL: "https://api.groq.com/openai/v1",
defaultModel: "llama-3.3-70b-versatile",
});
7 changes: 7 additions & 0 deletions packages/agent-providers/groq/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src"]
}
12 changes: 12 additions & 0 deletions packages/agent-providers/mistral/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Mistral Agent Provider

OpenAI-compatible sh1pt agent provider for Mistral AI.

Required env:

- `MISTRAL_API_KEY`

Optional env:

- `MISTRAL_BASE_URL` defaults to `https://api.mistral.ai/v1`
- `MISTRAL_MODEL` defaults to `mistral-large-latest`
25 changes: 25 additions & 0 deletions packages/agent-providers/mistral/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "@profullstack/sh1pt-agent-provider-mistral",
"version": "0.1.15",
"type": "module",
"main": "src/index.ts",
"dependencies": {
"@profullstack/sh1pt-agent-provider-shared": "workspace:*"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/profullstack/sh1pt.git",
"directory": "packages/agent-providers/mistral"
},
"homepage": "https://sh1pt.com",
"bugs": "https://github.com/profullstack/sh1pt/issues",
"files": [
"dist"
],
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit",
"prepublishOnly": "pnpm build"
}
}
1 change: 1 addition & 0 deletions packages/agent-providers/mistral/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./provider";
22 changes: 22 additions & 0 deletions packages/agent-providers/mistral/src/provider.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { describe, expect, it } from "vitest";
import { mistralProvider } from "./provider.js";

describe("mistral agent provider", () => {
it("declares metadata and env", () => {
expect(mistralProvider.id).toBe("mistral");
expect(mistralProvider.displayName).toBe("Mistral");
expect(mistralProvider.capabilities.chat).toBe(true);
expect(mistralProvider.getRequiredEnv()).toEqual(
expect.arrayContaining([
{ key: "MISTRAL_API_KEY", required: true },
{ key: "MISTRAL_BASE_URL", required: false },
{ key: "MISTRAL_MODEL", required: false },
]),
);
});

it("requires MISTRAL_API_KEY", () => {
expect(() => mistralProvider.validateEnv({})).toThrow("Missing MISTRAL_API_KEY");
expect(() => mistralProvider.validateEnv({ MISTRAL_API_KEY: "sk-test" })).not.toThrow();
});
});
11 changes: 11 additions & 0 deletions packages/agent-providers/mistral/src/provider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { createOpenAICompatibleProvider } from "@profullstack/sh1pt-agent-provider-shared";

export const mistralProvider = createOpenAICompatibleProvider({
id: "mistral",
displayName: "Mistral",
apiKeyEnv: "MISTRAL_API_KEY",
baseUrlEnv: "MISTRAL_BASE_URL",
modelEnv: "MISTRAL_MODEL",
defaultBaseURL: "https://api.mistral.ai/v1",
defaultModel: "mistral-large-latest",
});
7 changes: 7 additions & 0 deletions packages/agent-providers/mistral/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "dist"
},
"include": ["src"]
}
Loading
Loading