Commit Graph

23 Commits

Author SHA1 Message Date
e10ce7f53a feat: add ClaudeCodeProvider for subscription users
Wraps @anthropic-ai/claude-agent-sdk so Claude Pro/Max subscribers (who
do not have a console API key) can use this library by authenticating
through the local `claude` CLI. Subscribers run `claude login` once and
the provider picks up the credentials automatically.

Provider behavior:
- query() is invoked in single-turn mode (maxTurns: 1, allowedTools: [])
  to behave as plain text completion by default. Both knobs are
  configurable for agentic use cases.
- Conversation history is flattened to a single prompt with role labels.
- doStream() emits text deltas as the SDK yields successive assistant
  messages. doComplete() accumulates and returns the final result.
- SDKAssistantMessageError codes (authentication_failed, billing_error,
  rate_limit, model_not_found, ...) map to AIErrorType variants.
- ClaudeCodeConfig.apiKey is optional — when omitted the SDK falls back
  to ANTHROPIC_API_KEY or local subscription credentials. The base
  validator is overridden to allow this.

Tradeoffs:
- Requires the `claude` CLI installed and logged in on the host. This
  is not suitable for typical server-side production deployments; it is
  the official path for subscription accounts.
- Higher latency (CLI process spawn) than the direct Anthropic API.
- The agent SDK is heavy. Bundle grows ~750KB; bun build now uses
  --target node so the SDK's Node built-in imports resolve correctly.

Wired into PROVIDER_REGISTRY ('claude-code'), createClaudeCodeProvider,
SUPPORTED_PROVIDERS, and re-exported from the package entry.
2026-05-21 14:16:11 +02:00
6298a0027d chore(release): 2.0.1
Patch release covering three internal refactors (see PRs #7, #8, #9):

- Extract shared constants, parameterize validators, simplify factory
- Pull validateConnection / validateModelName / error mapping into base
- Split OpenWebUI into strategy classes by backend

Public API surface and method signatures are unchanged. A handful of
error message strings were reworded (error type and status code remain
identical), and BaseAIProvider gained new protected hooks with no-op
defaults.
2026-05-21 13:54:31 +02:00
797fad1b00 chore(release): 2.0.0
Major release: @google/generative-ai → @google/genai migration changes
the type signature of GeminiConfig.safetySettings, which is a breaking
change for consumers using that option.

Other changes accumulated since 1.3.3:
- @anthropic-ai/sdk 0.65 → 0.97
- openai 4 → 6
- @types/node 24 → 25
- TypeScript 6 support (peer widened to ^5 || ^6)
- Default Gemini model: gemini-1.5-flash → gemini-2.5-flash
2026-05-21 12:56:46 +02:00
c658c67a0c chore(deps)!: migrate from @google/generative-ai to @google/genai
The @google/generative-ai SDK has been deprecated by Google. This switches
to the successor @google/genai package and rewrites the Gemini provider
against the new stateless models/chats API.

BREAKING CHANGE: GeminiConfig.safetySettings now uses the SafetySetting
type from @google/genai. Consumers passing this field must update their
import from '@google/generative-ai' to '@google/genai'. The shape of the
type is similar but not identical.

Notable simplifications enabled by the new SDK:
- No per-model client caching: generateContent specifies model per-call
- Single code path for both single- and multi-turn (full contents array
  is passed to generateContent directly; no more startChat branching)
- Stream chunks expose .text as a property (was .text() method)
- Stream iteration is direct on the response (no .stream sub-property)

Default model bumped from gemini-1.5-flash to gemini-2.5-flash.
2026-05-21 12:54:48 +02:00
bcdf04a77f chore(deps): support TypeScript 6 (widen peer to ^5 || ^6)
- Add typescript ^6.0.0 as devDependency for verified builds
- Widen peerDependency to ^5 || ^6 to keep TS 5 consumers supported
- tsconfig.build.json: set explicit rootDir (required by TS 6 when outDir is set)
- tsconfig.build.json: replace deprecated moduleResolution "node" with "bundler"
2026-05-21 12:49:05 +02:00
a596d0adc3 chore(deps): update openai to ^6.0.0 2026-05-21 12:46:30 +02:00
b58e1d833f chore(deps): update @anthropic-ai/sdk to ^0.97.0 2026-05-21 12:42:26 +02:00
a476ec7b25 chore(deps): update @types/node to v25 2026-05-21 12:41:25 +02:00
fc87aac15a chore(release): 1.3.3
Patch release covering the dependency refresh from the previous commit.
Local version was at 1.3.1 while npm registry already had 1.3.2 published,
so this bumps to 1.3.3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 12:28:02 +02:00
473e5551d0 chore(deps): bump openai to ^4.104.0 and @types/bun to ^1.3.14
Also refreshes bun.lock to pick up @anthropic-ai/sdk 0.65.0 and
@types/node 24.12.4 within existing version ranges. All bumps stay
within the same major to avoid breaking changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 12:25:03 +02:00
989261916c Merge pull request 'chore(deps): update dependency @types/node to v24' (#5) from renovate/node-24.x into main
Reviewed-on: #5
2025-10-01 11:59:39 +00:00
4f7bd24b5f chore(deps): update dependency @types/node to v24 2025-10-01 11:44:55 +00:00
781cf466fa fix(deps): update dependency @anthropic-ai/sdk to ^0.65.0 2025-10-01 11:44:50 +00:00
010f52c9ee build: update version to 1.3.1 in package.json 2025-09-04 15:51:56 +02:00
027a2ba2ed chore: Update version 2025-09-04 15:34:53 +02:00
18769c134d feat(docs): add structured output example and details 2025-09-04 14:49:01 +02:00
5da20536af refactor: update provider documentation and improve comments 2025-05-28 13:00:25 +02:00
9bf8030ad5 feat: add LICENSE file and update README and version 2025-05-28 12:33:37 +02:00
8015f8fc10 chore: update version to 1.1.0 in package.json 2025-05-28 12:31:34 +02:00
664a775724 feat(docs): update README with OpenWebUI support details 2025-05-28 12:31:11 +02:00
5da37f388f feat: add Google Gemini provider integration and docs 2025-05-28 12:13:29 +02:00
aa2fd98cc1 feat: add OpenAI provider integration and examples 2025-05-28 12:04:10 +02:00
42902445fb feat: add initial implementation of Simple AI Provider package 2025-05-28 11:54:24 +02:00