Hayden Bleasel
a3f8656243
Teams: support certificate and federated credentials ( #190 )
...
* Add federated auth support to Teams
* Update index.test.ts
* Create teams-certificate-federated-auth.md
2026-03-05 16:15:36 -08:00
zm2231
f27c89b424
feat(slack): streaming StreamChunk support + url_verification fix ( #173 )
...
* feat(slack): support streaming task_update, plan_update, markdown_text chunks
- Add StreamChunk type for structured streaming content
- Extend stream() to accept AsyncIterable<string | StreamChunk>
- Add taskDisplayMode option to StreamOptions
- Slack adapter passes structured chunks directly to Slack's streaming API
- Handle url_verification before signature check to prevent Slack from
silently disabling event delivery when signing secret is misconfigured
- Add tests for StreamChunk handling in thread.post()
* review fixes: type safety, security, dedup
- Replace loose StreamChunk interface (index signature) with
discriminated union (MarkdownTextChunk | TaskUpdateChunk | PlanUpdateChunk)
- Move url_verification back after signature check to prevent
unauthenticated challenge responses
- Remove redundant AsyncIterable<string> from PostableMessage union
- Extract pushTextAndFlush helper to deduplicate markdown flush logic
- Remove unnecessary `as string` casts after type guards
- Export individual chunk types from package index
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
* add changeset
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-04 11:31:30 -08:00
Hayden Bleasel
73de82dbef
Add remend for streaming markdown healing ( #163 )
...
* Add remend
* Create sixty-wasps-hope.md
* feat: wrap message content in markdown objects (#164 )
Update 'fallbackStream' and 'handleStream' to send '{ markdown: string }'. Adjust tests for '{ markdown: string }'.
Slack-Thread: https://vercel.slack.com/archives/C08077A6JDB/p1772491650055389?thread_ts=1772491650.055389&cid=C08077A6JDB
Co-authored-by: v0 <v0[bot]@users.noreply.github.com>
---------
Co-authored-by: v0 <v0[bot]@users.noreply.github.com>
2026-03-03 07:59:58 -08:00
dependabot[bot]
3574a5b47e
Bump next from 16.0.10 to 16.1.5 ( #146 )
...
Bumps [next](https://github.com/vercel/next.js ) from 16.0.10 to 16.1.5.
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v16.0.10...v16.1.5 )
---
updated-dependencies:
- dependency-name: next
dependency-version: 16.1.5
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 20:28:30 -08:00
Nicolás Pujia
740abd93b9
fix: use createMemoryState if no REDIS_URL ( #142 )
2026-02-28 18:59:30 -08:00
Hayden Bleasel
8a9a6d2374
Upgrade vitest
2026-02-27 09:58:28 -08:00
Hayden Bleasel
5ccfdf24ae
Update root dependencies, update pnpm
2026-02-27 09:28:33 -08:00
Hayden Bleasel
ac1c55ceeb
Resolves #78
2026-02-27 09:24:16 -08:00
Hayden Bleasel
128d013207
Resolves #58
2026-02-27 09:17:48 -08:00
dependabot[bot]
26cdbe3c63
Bump @octokit/auth-app from 7.2.2 to 8.2.0 ( #76 )
...
Bumps [@octokit/auth-app](https://github.com/octokit/auth-app.js ) from 7.2.2 to 8.2.0.
- [Release notes](https://github.com/octokit/auth-app.js/releases )
- [Commits](https://github.com/octokit/auth-app.js/compare/v7.2.2...v8.2.0 )
---
updated-dependencies:
- dependency-name: "@octokit/auth-app"
dependency-version: 8.2.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 09:09:54 -08:00
dependabot[bot]
301aa32c2d
Bump @octokit/rest from 21.1.1 to 22.0.1 ( #62 )
...
Bumps [@octokit/rest](https://github.com/octokit/rest.js ) from 21.1.1 to 22.0.1.
- [Release notes](https://github.com/octokit/rest.js/releases )
- [Commits](https://github.com/octokit/rest.js/compare/v21.1.1...v22.0.1 )
---
updated-dependencies:
- dependency-name: "@octokit/rest"
dependency-version: 22.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 09:05:36 -08:00
dependabot[bot]
a22b14136c
Bump @types/node from 22.19.3 to 25.3.0 ( #79 )
...
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) from 22.19.3 to 25.3.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.3.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 09:01:01 -08:00
Rihan Arfan
32b17d9370
refactor: replace broad googleapis dependency with specific packages ( #29 )
...
* refactor: replace broad googleapis dependency with specific packages
* fix: reorder imports in gchat adapter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* Create tidy-groups-marry.md
---------
Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 08:49:04 -08:00
Tobias Lins
0c688a0111
Add support for telegram bot ( #90 )
...
* Add support for telegram bot
* Add support for action buttons in telegram
* Use markdown parse mode
* Add more tests
* Fix linting issues
* Fixes
* Fixes
* Don't reverse order messages for AI and always answer for telegram
* Add telegram integration test
* Update telegram.json
2026-02-26 14:10:41 -08:00
Malte Ubl
39888ce38d
Fix teams bundling under strict ESM ( #99 )
2026-02-24 15:10:11 -08:00
Hayden Bleasel
e970a6939b
Upgrade Biome configuration to use Ultracite preset ( #81 )
...
* Upgrade Biome to Ultracite
* Remove package commands
* Update biome.jsonc
* Update biome.jsonc
* Initial fixes
* Update biome.jsonc
* Remaining fixes
* Update pnpm-lock.yaml
* Fix commands
* Update knip.json
* Merge Claude files
* Fix skipped test
* Misc fixes
2026-02-20 22:01:10 -08:00
Hayden Bleasel
1348532068
Open Source Beta Prep ( #73 )
...
* Update docs - Slack Assistants API, App Home tab, Stream stop blocks
* Update README.md
* Update package readmes, fix readme integration test
* Add npm badges to all package READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* Add test coverage to all packages
* Create CODE_OF_CONDUCT.md
* Create pull_request_template.md
* Create issue templates
* Create config.yml
* Add unit tests for errors, singleton, logger, message, modals, gchat utils, and teams markdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* Add a vitest:workspace command
* Misc URL fixes
* Update CONTRIBUTING.md
* Misc fixes, upgrade workflow/serde
* Replace PII in integration test data
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-20 13:25:09 -08:00
John Pham
f371c0d951
feat(slack): add assistant_thread_started event support ( #54 )
...
* feat(slack): full Slack Assistants API support
- Route assistant_thread_started + assistant_thread_context_changed
- Add onAssistantThreadStarted + onAssistantContextChanged handlers
- Add setSuggestedPrompts, setAssistantStatus, setAssistantTitle methods
- Extend stream() for Block Kit on stop (stopBlocks)
- Bump @slack/web-api to ^7.11.0 for chatStream
- 14 integration tests
* fix: pass waitUntil to assistant thread started handlers
2026-02-19 16:18:05 -08:00
Hayden Bleasel
9265a6af25
Remove duplicate lockfile
2026-02-16 16:42:44 -08:00
Fernando Rojo
154dda0965
linear
2026-02-05 19:52:12 -05:00
Fernando Rojo
1fb8fd2a50
github
2026-01-31 19:02:43 -05:00
Malte Ubl
9e8f9e7425
Serde for Thread and Message ( #10 )
...
* Serde for Thread and Message
* Refactor
* serde
* message
2026-01-20 19:24:12 -08:00
Malte Ubl
e1d97f6af5
discord-ws
2026-01-04 13:59:41 -08:00
Malte Ubl
33f7bf7ee2
verify3
2026-01-04 13:07:16 -08:00
Malte Ubl
815548c39a
verify
2026-01-04 13:00:11 -08:00
Malte Ubl
50f06527e7
Add discord adapter ( #7 )
...
* Implement a discord adapter
* Integration tests
2026-01-04 12:44:34 -08:00
Malte Ubl
82440f657a
Test coverage
2026-01-04 08:05:01 -08:00
Malte Ubl
fb7c41d3a5
Refactoring duplication
2026-01-03 20:32:35 -08:00
Vishal Yathish
9b95317750
[chat-sdk] add support for streamed messages + example of AI bot ( #1 )
...
* [chat-sdk] add support for streamed messages + example of AI bot
* Refactor to just post AI
* Permissions
* Permissions teams
* empty
* Replay tests
* Better fake stream
* fix-slack-bug
* changeset
---------
Co-authored-by: Malte Ubl <malte.ubl@gmail.com >
2026-01-02 18:58:07 -08:00
Malte Ubl
1922517855
chat-sdk to chat director rename
2026-01-02 16:11:31 -08:00
Malte Ubl
d2ffcc2cbe
The great rename
...
We've acquired `chat` on npm. This plan covers renaming all packages and setting up automated publishing.
| Current Name | New Name | Version |
|--------------|----------|---------|
| `chat-sdk` | `chat` | 4.0.0 |
| `@chat-sdk/slack` | `@chat-adapter/slack` | 4.0.0 |
| `@chat-sdk/gchat` | `@chat-adapter/gchat` | 4.0.0 |
| `@chat-sdk/teams` | `@chat-adapter/teams` | 4.0.0 |
| `@chat-sdk/state-memory` | `@chat-adapter/state-memory` | 4.0.0 |
| `@chat-sdk/state-redis` | `@chat-adapter/state-redis` | 4.0.0 |
| `@chat-sdk/state-ioredis` | `@chat-adapter/state-ioredis` | 4.0.0 |
1. **Main package** (`packages/chat-sdk/package.json`):
- Change `"name": "chat-sdk"` → `"name": "chat"`
- Change `"version": "0.1.0"` → `"version": "4.0.0"`
2. **Adapter packages**:
- `packages/adapter-slack/package.json`: `@chat-sdk/slack` → `@chat-adapter/slack`
- `packages/adapter-gchat/package.json`: `@chat-sdk/gchat` → `@chat-adapter/gchat`
- `packages/adapter-teams/package.json`: `@chat-sdk/teams` → `@chat-adapter/teams`
- Update all versions to `4.0.0`
- Update dependency on `chat-sdk` → `chat`
3. **State packages**:
- `packages/state-memory/package.json`: `@chat-sdk/state-memory` → `@chat-adapter/state-memory`
- `packages/state-redis/package.json`: `@chat-sdk/state-redis` → `@chat-adapter/state-redis`
- `packages/state-ioredis/package.json`: `@chat-sdk/state-ioredis` → `@chat-adapter/state-ioredis`
- Update all versions to `4.0.0`
- Update dependency on `chat-sdk` → `chat`
Update `peerDependencies` and `dependencies` in each package:
```json
// Before
"peerDependencies": {
"chat-sdk": "workspace:*"
}
// After
"peerDependencies": {
"chat": "workspace:*"
}
```
Search and replace across the codebase:
| Find | Replace |
|------|---------|
| `from "chat-sdk"` | `from "chat"` |
| `from 'chat-sdk'` | `from 'chat'` |
| `import("chat-sdk")` | `import("chat")` |
| `from "@chat-sdk/slack"` | `from "@chat-adapter/slack"` |
| `from "@chat-sdk/gchat"` | `from "@chat-adapter/gchat"` |
| `from "@chat-sdk/teams"` | `from "@chat-adapter/teams"` |
| `from "@chat-sdk/state-memory"` | `from "@chat-adapter/state-memory"` |
| `from "@chat-sdk/state-redis"` | `from "@chat-adapter/state-redis"` |
| `from "@chat-sdk/state-ioredis"` | `from "@chat-adapter/state-ioredis"` |
Update any references to old package names in:
- `pnpm-workspace.yaml`
- `turbo.json` (task filters)
- Root `package.json` scripts
1. **README.md files** in each package
2. **Examples** (`examples/nextjs-chat/`)
3. **AGENTS.md** and other docs
4. **JSDoc comments** referencing package names
1. **Install changesets**:
```bash
pnpm add -D @changesets/cli
pnpm changeset init
```
2. **Configure `.changeset/config.json`**:
```json
{
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json ",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [
["chat", "@chat-adapter/*"]
],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": ["example-nextjs-chat"]
}
```
3. **Add GitHub Action** (`.github/workflows/release.yml`):
```yaml
name: Release
on:
push:
branches:
- main
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- run: pnpm install
- run: pnpm build
- run: pnpm test
- name: Create Release Pull Request or Publish
uses: changesets/action@v1
with:
publish: pnpm changeset publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
```
4. **Add publish config to each package.json**:
```json
"publishConfig": {
"access": "public"
}
```
1. Run full build: `pnpm build`
2. Run typecheck: `pnpm typecheck`
3. Run lint: `pnpm lint`
4. Run tests: `pnpm test`
5. Test local linking in example app
| File | Changes |
|------|---------|
| `packages/chat-sdk/package.json` | Rename to `chat`, version 4.0.0 |
| `packages/adapter-slack/package.json` | Rename to `@chat-adapter/slack`, update deps |
| `packages/adapter-gchat/package.json` | Rename to `@chat-adapter/gchat`, update deps |
| `packages/adapter-teams/package.json` | Rename to `@chat-adapter/teams`, update deps |
| `packages/state-memory/package.json` | Rename to `@chat-adapter/state-memory`, update deps |
| `packages/state-redis/package.json` | Rename to `@chat-adapter/state-redis`, update deps |
| `packages/state-ioredis/package.json` | Rename to `@chat-adapter/state-ioredis`, update deps |
| `examples/nextjs-chat/package.json` | Update all dependencies |
| `packages/integration-tests/package.json` | Update all dependencies |
| `turbo.json` | Update package references |
| All `*.ts` files | Update import statements |
| All `README.md` files | Update package names in docs |
| `.changeset/config.json` | Create new |
| `.github/workflows/release.yml` | Create new |
1. Update all `package.json` files (names, versions, dependencies)
2. Run `pnpm install` to update lockfile
3. Update all import statements in source files
4. Update all import statements in test files
5. Update documentation
6. Set up changesets
7. Run full validation
8. Create initial changeset for 4.0.0 release
9. Commit and push
If issues arise:
1. Git revert the rename commit
2. Run `pnpm install` to restore lockfile
3. Previous npm versions remain available
2026-01-02 13:56:55 -08:00
Malte Ubl
93a82ffc08
IORedis and better validate
2026-01-01 09:11:52 -08:00
Malte Ubl
874ffbdbf9
replay-tests
2025-12-31 16:10:32 -08:00
Malte Ubl
9a18e55f5e
record
2025-12-31 15:46:27 -08:00
Malte Ubl
26ff575392
step
2025-12-31 14:23:43 -08:00
Malte Ubl
777f03c015
step
2025-12-31 13:52:12 -08:00
Malte Ubl
2c78cc1f78
step
2025-12-31 13:22:58 -08:00
Malte Ubl
bf18adc163
OIDC
2025-12-22 12:13:14 -08:00
Malte Ubl
1f401aacd0
initial cook
2025-12-21 20:48:14 -08:00