# Changelog

All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 4.1.0 (2026-03-01)

- Merge branch 'duo-edit-20260227-221915' into 'main' ([654643a](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/654643a))
- feat(models): add GPT-5.3 Codex model support ([b34ebd6](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b34ebd6))

## 4.0.0 (2026-02-27)

- feat!: add Duo Workflow Service integration via WebSocket ([b293f73](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b293f73))
- feat!: bump major version ([196b058](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/196b058))
- feat!: trigger major release ([2cb0f9c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/2cb0f9c))
- Merge branch 'feat/duo-workflow-integration' into 'main' ([bfface1](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/bfface1))

### BREAKING CHANGE

- detectProject() now throws GitLabError instead of returning null on API failures. loadOpenCodeAuth() throws on malformed auth.json instead of returning undefined. Callers that relied on silent failure must add error handling.

## 4.0.0 (2026-02-27)

### ✨ Features

- **feat: add Duo Workflow Service integration via WebSocket** ([!9](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/-/merge_requests/9))
  - Add `workflowChat()` factory method for server-side agentic workflows
  - Implement WebSocket client for bidirectional DWS communication
  - Add dynamic model discovery via GraphQL (`aiChatAvailableModels`)
  - Support MCP tool integration and built-in tool mapping
  - Add file-based model cache with workspace/instance scoping
  - Implement per-stream state isolation for concurrent requests
  - Add dual heartbeat (WebSocket ping + JSON heartbeat)
  - Support `GITLAB_INSTANCE_URL` environment variable
  - Pass `aiGatewayUrl` through to workflow config

### 🔧 New Modules

- `gitlab-workflow-client.ts` - WebSocket client for DWS communication
- `gitlab-workflow-language-model.ts` - LanguageModelV2 adapter for DWS
- `gitlab-workflow-token-client.ts` - Token exchange and workflow creation
- `gitlab-model-discovery.ts` - Runtime model discovery via GraphQL
- `gitlab-model-cache.ts` - File-based cache for model discovery and selection
- `gitlab-workflow-builtins.ts` - Built-in tool mapping and security utilities
- `gitlab-workflow-types.ts` - Comprehensive DWS protocol type definitions

### 🧪 Test Coverage

- Added 89 new tests (300 total)
- `gitlab-model-discovery.test.ts` - 21 tests
- `gitlab-workflow-client.test.ts` - 33 tests
- `gitlab-workflow-language-model.test.ts` - 20 tests
- `gitlab-workflow-token-client.test.ts` - 25 tests
- `gitlab-provider.test.ts` - 15 new tests for workflow routing

### 🔒 Security

- Shell metacharacter validation before escaping
- URL scheme validation (http/https only)
- Credential redaction in error messages
- Command length limits
- Defense-in-depth approach for all tool executions

### 📝 Documentation

- Updated README with Duo Workflow Service documentation
- Added workflow model mappings and usage examples
- Documented model selection priority and caching behavior
- Added architecture documentation for new components

### ⚠️ BREAKING CHANGES

- Added `workflowChat()` method to `GitLabProvider` interface
- `GITLAB_INSTANCE_URL` environment variable now supported (precedence: explicit > env > default)

## 3.6.0 (2026-02-18)

- Merge branch 'feat/add-sonnet-4-6' into 'main' ([68d9e4f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/68d9e4f))
- feat: add Claude Sonnet 4.6 model mapping ([c4fd7b1](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c4fd7b1))

## <small>3.5.1 (2026-02-16)</small>

- Merge branch 'vg/token-refresh' into 'main' ([38295cf](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/38295cf))
- fix: resolve mid-session OAuth token refresh failures ([b495153](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b495153))

## 3.5.0 (2026-02-06)

- Merge branch 'feat/add-opus-4-6' into 'main' ([b776bd7](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b776bd7))
- feat(models): add Claude Opus 4.6 model support ([e221e45](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e221e45))

## <small>3.4.1 (2026-02-06)</small>

- Merge branch 'vg/token_refresh_fix' into 'main' ([8c1f2c4](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/8c1f2c4))
- fix: detect context overflow errors before token refresh ([ce272cd](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/ce272cd))

## 3.4.0 (2026-02-02)

- Merge branch 'feat/ai-gateway-headers' into 'main' ([f2d4c79](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/f2d4c79))
- feat: add custom AI Gateway headers support ([2ef662d](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/2ef662d))
- chore: added models testing script ([85dd9ba](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/85dd9ba))
- chore: bump version to 3.3.1 to fix package-lock.json sync ([6e6e9e2](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/6e6e9e2))

## 3.3.0 (2026-01-23)

- feat: add GPT-5.2 model support (duo-chat-gpt-5-2) ([fba8c4c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/fba8c4c))

## 3.2.0 (2026-01-22)

- feat: add OpenAI models support with Responses API ([c715505](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c715505))

## <small>3.1.3 (2026-01-21)</small>

- Merge branch 'fix/streaming-tool-call-handling' into 'main' ([22279b1](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/22279b1))
- fix: refactor streaming to handle tool calls properly ([88fb513](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/88fb513))

## <small>3.1.2 (2026-01-18)</small>

- fix: removed API tools and added new env variable ([a64ef6d](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/a64ef6d))

## <small>3.1.1 (2026-01-14)</small>

- fix: use models mapping for Anthropic ([7b876ec](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/7b876ec))

## 3.1.0 (2026-01-13)

- feat: improve npm metadata for better discoverability ([fc3795c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/fc3795c))

## <small>3.0.9 (2026-01-07)</small>

- docs: removed unused documentation ([a5f3bdd](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/a5f3bdd))

## <small>3.0.8 (2025-12-19)</small>

- Merge branch 'main' of gitlab.com:gitlab-org/editor-extensions/gitlab-ai-provider ([0c24b31](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/0c24b31))
- fix: specified CODEOWNERS ([0e92bbd](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/0e92bbd))

## <small>3.0.7 (2025-12-19)</small>

- fix: convert relative links to absolute GitLab URLs in README ([accde31](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/accde31))

## <small>3.0.6 (2025-12-19)</small>

- fix: use NPM_ID_TOKEN with correct audience for OIDC ([03fb549](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/03fb549))

## <small>3.0.5 (2025-12-19)</small>

- fix: use NPM_TOKEN for authentication (OIDC not supported for GitLab) ([4d595cf](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/4d595cf))

## <small>3.0.4 (2025-12-19)</small>

- refactor: use artifacts for version propagation ([03d4935](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/03d4935))
- fix: use OIDC for npmjs.org and sync version ([e5ff429](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e5ff429))

## <small>3.0.3 (2025-12-19)</small>

- fix: update package-lock.json with MIT license ([d724d20](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/d724d20))
- fix: use NPM_TOKEN for npmjs.org authentication ([e96d9de](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e96d9de))

## <small>3.0.2 (2025-12-19)</small>

- fix: correct license to MIT in package.json ([6df4154](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/6df4154))

## <small>3.0.1 (2025-12-19)</small>

- fix: use SIGSTORE_ID_TOKEN for npm provenance ([e5c8c7f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e5c8c7f))

## 3.0.0 (2025-12-19)

- feat: automate publishing workflow ([f8c384d](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/f8c384d))

### BREAKING CHANGE

- Publishing now happens automatically on every main branch commit

## 2.0.0 (2025-12-18)

- fix: bump the version ([02df4b2](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/02df4b2))
- fix: remove GitLab registry config and add test dependencies ([81cc14e](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/81cc14e))
- feat: configure publishing to npmjs.org with OIDC ([bb62d90](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/bb62d90))

### BREAKING CHANGE

- Package now only published to npmjs.org as @gitlab/gitlab-ai-provider

## <small>1.0.5 (2025-12-18)</small>

- Merge branch 'main' of gitlab.com:gitlab-org/editor-extensions/gitlab-ai-provider ([f93aa47](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/f93aa47))
- fix: publish to both registries ([1ef9dd2](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1ef9dd2))

## <small>1.0.4 (2025-12-18)</small>

- fix: fix .npmrc ([fc55fa0](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/fc55fa0))
- fix: moved to @gitlab scope ([1213f5d](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1213f5d))
- fix: npmjs fix ([461e87c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/461e87c))
- fix: publish to @gitlab ([c55252c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c55252c))
- Merge branch 'main' of gitlab.com:gitlab-org/editor-extensions/gitlab-ai-provider ([30d1307](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/30d1307))

## <small>1.0.3 (2025-12-18)</small>

- Merge branch 'main' of gitlab.com:gitlab-org/editor-extensions/gitlab-ai-provider ([aa5ed2a](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/aa5ed2a))
- fix: added .chat() alias ([e8d8ab8](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e8d8ab8))

## <small>1.0.2 (2025-12-18)</small>

- Merge branch 'main' of gitlab.com:gitlab-org/editor-extensions/gitlab-ai-provider ([327e561](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/327e561))
- fix: fixed publishing ([1f65b41](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1f65b41))

## <small>1.0.1 (2025-12-18)</small>

- fix: added MIT LICENSE ([4484571](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/4484571))
- fix: contributing documentation ([7f90de8](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/7f90de8))
- Merge branch 'main' of gitlab.com:gitlab-org/editor-extensions/gitlab-ai-provider ([854ece3](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/854ece3))

## 1.0.0 (2025-12-18)

- fix: add missing peer marker for vite in package-lock.json ([03f0091](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/03f0091))
- fix: add text-start and text-end events for V2 stream format ([a4fec61](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/a4fec61))
- fix: added npmrc ([75725d5](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/75725d5))
- fix: buffer and reorder chunks by numeric chunkId sequence number ([83e0593](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/83e0593))
- fix: create release ([8f38ca1](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/8f38ca1))
- fix: disable body-max-line-length rule for semantic-release compatibility ([300b6cf](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/300b6cf))
- fix: handle out-of-order chunks with cumulative content ([3fe12e8](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/3fe12e8))
- fix: load auth token ([b2f3b5b](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b2f3b5b))
- fix: package-lock ([e478397](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e478397))
- fix: resolve ESLint errors in CI pipeline ([12d391e](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/12d391e))
- fix: simplify streaming - cumulative content with length-based delta extraction ([34b9b9a](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/34b9b9a))
- fix: simplify streaming - remove buffering, handle both cumulative and incremental content ([722d1fc](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/722d1fc))
- fix: skip final cumulative message and treat chunks as incremental ([b078ef4](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b078ef4))
- fix: sync package-lock and fix formatting ([1583fb1](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1583fb1))
- fix: Token refresh on 401 ([2a7bfec](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/2a7bfec))
- fix: update specificationVersion to v2 for AI SDK 5 compatibility ([ddc75cd](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/ddc75cd))
- fix: updated package-lock ([25332df](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/25332df))
- fix: use AI SDK V2 stream format with delta field ([e8eb3b4](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e8eb3b4))
- fix: use Bearer token authentication for GitLab API project detection ([c32b926](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c32b926))
- chore: update CI to node 25.2.1 and regenerate package-lock ([04889be](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/04889be))
- chore: update CI to use node 22.14.0 LTS ([1ce4a4e](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1ce4a4e))
- chore(deps): Updated README.md ([47cb8ed](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/47cb8ed))
- chore(release): 0.0.3 [skip ci] ([d1ba2ed](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/d1ba2ed))
- chore(release): 0.0.4 [skip ci] ([6459942](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/6459942))
- chore(release): 1.0.0 [skip ci] ([80b423d](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/80b423d))
- chore(release): 1.0.1 [skip ci] ([a77ce6b](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/a77ce6b))
- chore(release): 1.0.2 [skip ci] ([c683fc7](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c683fc7))
- chore(release): 1.1.0 [skip ci] ([46542c4](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/46542c4))
- chore(release): 1.2.0 [skip ci] ([bd79e4e](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/bd79e4e))
- chore(release): 1.2.1 [skip ci] ([d05d7f8](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/d05d7f8))
- chore(release): 1.2.2 [skip ci] ([2c2a160](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/2c2a160))
- feat: Added package build for npmjs ([d32e97e](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/d32e97e))
- feat: added package-lock.json ([7b320b5](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/7b320b5))
- feat: remove agentic workflow model and fix lint warnings ([843c422](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/843c422))
- feat: Renamed package to @gitlab-org/gitlab-ai-provider ([6d41fc0](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/6d41fc0))
- feat: rolled back npm namespace ([a10987b](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/a10987b))
- feat: Updated npm repo namespace ([b74de74](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b74de74))
- feat(workflow): Added Gitlab Duo Workflow functionality ([624900f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/624900f))
- Add comprehensive logging to debug empty workflow sessions ([9c1cd6d](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/9c1cd6d))
- Add error handling for missing project context in agentic workflow ([1595caf](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1595caf))
- Add feature flags support for agentic chat models ([792581c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/792581c))
- Add prepare script to auto-build on install ([013a033](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/013a033))
- Add WebSocket headers logging for debugging ([bbb4c16](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/bbb4c16))
- Add workflow status polling to debug why workflow doesn't start ([520afa6](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/520afa6))
- Add X-Gitlab-Workflow-Id header to WebSocket connection ([2fd3097](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/2fd3097))
- Added Gitlab OAuth support ([59c095c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/59c095c))
- added gitlab project detector ([127687c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/127687c))
- agentic workflow ([6263c61](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/6263c61))
- Configure package for remote git installation ([80740a5](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/80740a5))
- feat!: rename model classes to reflect agentic capabilities ([05e6b35](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/05e6b35))
- Fix streaming to use AI SDK V1 format with textDelta field ([17c059f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/17c059f))
- Fix workflow creation payload to match GitLab API expectations ([5c2cd52](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/5c2cd52))
- Fix workflow initialization by sending initial message via REST API instead of WebSocket ([c8fc84f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c8fc84f))
- Fixing chunk ordering ([962ea8c](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/962ea8c))
- Include built dist folder for npm install ([b31d7dd](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b31d7dd))
- Initial commit ([3f23827](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/3f23827))
- Merge branch 'main' of gitlab.com:vglafirov/gitlab-ai-provider ([1f0c73f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/1f0c73f))
- Merge branch 'main' of gitlab.com:vglafirov/gitlab-ai-provider ([0f915c9](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/0f915c9))
- Merge branch 'main' of gitlab.com:vglafirov/gitlab-ai-provider ([376e770](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/376e770))
- Merge branch 'main' of gitlab.com:vglafirov/gitlab-ai-provider ([801bfcc](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/801bfcc))
- Merge branch 'main' of gitlab.com:vglafirov/gitlab-ai-provider ([18324c3](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/18324c3))
- Merge branch 'main' of gitlab.com:vglafirov/gitlab-ai-provider into main ([e7a003f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e7a003f))
- Merge branch 'vg/duo-workflow' into 'main' ([b15c322](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/b15c322))
- Merge branch 'vg/models_selection' into 'main' ([f5d2ab7](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/f5d2ab7))
- Remove unnecessary sendEvent call - workflow starts automatically with goal ([3cea85b](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/3cea85b))
- Remove workflow status update - workflow starts automatically ([f6bd7d4](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/f6bd7d4))
- removed API based agentic model ([d6a1037](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/d6a1037))
- removed legacy chat model ([0f1e795](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/0f1e795))
- Renamed GITLAB_API_TOKEN to GITLAB_TOKEN ([4bdcfbb](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/4bdcfbb))
- Send initial MESSAGE event to start workflow execution ([9b8df12](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/9b8df12))
- Set workflow status to RUNNING before sending initial message ([e826e55](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/e826e55))
- Updated README.md ([752871e](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/752871e))
- Use Agentic proxy ([a9a9827](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/a9a9827))
- Use OpenCode standard log directory for workflow debug logs ([28d1cc2](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/28d1cc2))
- Write debug logs to file instead of console ([093ad08](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/093ad08))
- ci: add GitLab CI/CD pipeline with semantic release automation ([53283e6](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/53283e6))
- ci: Updated publish namespace ([29864d7](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/29864d7))
- docs: add AGENTS.md with build, test, and code style guidelines ([31f9554](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/31f9554))
- docs: Updated README.md ([047b6e5](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/047b6e5))
- Fix: Add project_id and namespace_id as WebSocket headers ([5c2d142](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/5c2d142))
- Fix: Send initial user message to workflow after WebSocket connection ([12f4cfc](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/12f4cfc))
- Fix: Use project PATH for project_id, not numeric ID ([5709dd4](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/5709dd4))
- Fix: Use SOFTWARE_DEVELOPMENT workflow type instead of AGENTIC_CHAT ([c347013](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/c347013))
- Fix: Use status_event instead of status in workflow update API ([946333f](https://gitlab.com/gitlab-org/editor-extensions/gitlab-ai-provider/commit/946333f))

### BREAKING CHANGE

- Renamed GitLabAnthropicLanguageModel to
  GitLabAgenticLanguageModel and GitLabLSPAgenticLanguageModel to
  GitLabAgenticWorkflowLanguageModel. Updated all related types,
  configs, and provider methods:

* GitLabAnthropicOptions -> GitLabAgenticOptions
* GitLabLSPAgenticOptions -> GitLabAgenticWorkflowOptions
* provider.anthropicChat() -> provider.agenticChat()
* provider.lspAgenticChat() -> provider.agenticWorkflow()
* Provider names: .anthropic -> .agentic
* Provider names: .lsp-agentic -> .agentic-workflow

This change better reflects the agentic nature of these models
and provides clearer naming for workflow-based interactions.

## [1.2.2](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v1.2.1...v1.2.2) (2025-12-07)

### 🐛 Bug Fixes

- load auth token ([b2f3b5b](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/b2f3b5b01abfdfa36c12b4c045029a2b8186b886))

## [1.2.1](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v1.2.0...v1.2.1) (2025-12-07)

### 🐛 Bug Fixes

- Token refresh on 401 ([2a7bfec](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/2a7bfecbb1d32463150b2e5f67e6deae8a9b6641))

## [1.2.0](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v1.1.0...v1.2.0) (2025-12-06)

### ✨ Features

- rolled back npm namespace ([a10987b](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/a10987bb17ba02fcbdac60e918424f1852f61589))

## [1.1.0](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v1.0.2...v1.1.0) (2025-12-06)

### ✨ Features

- added package-lock.json ([7b320b5](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/7b320b58c771eb4615ab7d0b28a612065ec01bbb))
- Renamed package to @gitlab-org/gitlab-ai-provider ([6d41fc0](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/6d41fc08ab2b3a3603a9f095df097e0e0c260898))
- Updated npm repo namespace ([b74de74](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/b74de74100e854cef35e98a7f6334fd59179aeeb))

## [1.0.2](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v1.0.1...v1.0.2) (2025-12-04)

### 📚 Documentation

- Updated README.md ([047b6e5](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/047b6e55ba0c7faaa9a149b06d92392c808d080d))

## [1.0.1](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v1.0.0...v1.0.1) (2025-12-04)

### 🐛 Bug Fixes

- use Bearer token authentication for GitLab API project detection ([c32b926](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/c32b9266f2c01d714bd54762c00676994ad74810))

## [1.0.0](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v0.0.4...v1.0.0) (2025-12-04)

### ⚠ BREAKING CHANGES

- Renamed GitLabAnthropicLanguageModel to
  GitLabAgenticLanguageModel and GitLabLSPAgenticLanguageModel to
  GitLabAgenticWorkflowLanguageModel. Updated all related types,
  configs, and provider methods:

* GitLabAnthropicOptions -> GitLabAgenticOptions
* GitLabLSPAgenticOptions -> GitLabAgenticWorkflowOptions
* provider.anthropicChat() -> provider.agenticChat()
* provider.lspAgenticChat() -> provider.agenticWorkflow()
* Provider names: .anthropic -> .agentic
* Provider names: .lsp-agentic -> .agentic-workflow

This change better reflects the agentic nature of these models
and provides clearer naming for workflow-based interactions.

### ✨ Features

- rename model classes to reflect agentic capabilities ([05e6b35](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/05e6b35269433df85ab1d4138cf7fbca61dd95d3))

## [0.0.4](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v0.0.3...v0.0.4) (2025-12-03)

### 📚 Documentation

- add AGENTS.md with build, test, and code style guidelines ([31f9554](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/31f95547cb8a12295b86c2926b11f7885a8aa959))

## [0.0.3](https://gitlab.com/vglafirov/gitlab-ai-provider/compare/v0.0.2...v0.0.3) (2025-12-03)

### 🐛 Bug Fixes

- disable body-max-line-length rule for semantic-release compatibility ([300b6cf](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/300b6cfea4f8f71dcbabc5cad7b7d30c53c4348f))
- resolve ESLint errors in CI pipeline ([12d391e](https://gitlab.com/vglafirov/gitlab-ai-provider/commit/12d391eda8405a8abd85cc33118ea259c171493c))

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- Initial implementation of GitLab Duo provider
- GraphQL API client for GitLab Duo Chat
- ActionCable WebSocket streaming support
- Personal Access Token authentication
- Support for GitLab.com and self-hosted instances
- Context-aware chat with file support
- Multi-turn conversations with thread support
- Comprehensive error handling with GitLabError class
- TypeScript type definitions
- Documentation and examples

### Features

- ✅ Streaming chat responses
- ✅ GraphQL API integration
- ✅ PAT authentication
- ✅ Self-hosted GitLab support
- ✅ Context-aware assistance

### Known Limitations

- Token counting uses estimation
- Limited tool/function calling support
- No embedding support
- No image generation support

## [0.0.1] - 2025-01-XX

Initial release (in development)
