feat(sdk): add customer-hosted ChatKit providers - #154
Merged
Merged
Conversation
6 tasks
danielblignaut
marked this pull request as ready for review
September 7, 2026 20:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome
Add customer-hosted ChatKit provider authoring to Dispatch's supported
@trytilde/sdkpackages. Customers can implement setup, scoped ingestion, rich delivery, contextual session tools, and custom streaming clients without the archived Harness SDK repository.Key implementation choices
A framework-neutral signed Fetch contract separates provider-runtime credentials from user/admin clients. Canonical tool coordinates come from Tilde; providers interpret only their own platform extension data. Custom connections integrate with the existing
context.session.toolsobject, and tool results unwrap the canonical API response.Linq/AgentMail reference adapters and a streaming example live under
packages/sdk/examples/custom-chatkit. Current rooms, runs, identity, and proxy APIs are preserved. OpenAPI is regenerated from API PR https://github.com/trytilde/api/pull/276; matching public docs are in trytilde/docs#36.Repository context
trytilde/dispatchmain atfcee72c, explicitly using thedispatchremote rather than the fork'sorigin.Validation
pnpm checkscope: package typechecks and focused Vite+ lint ran; full OpenBot application checks were not run for this server-SDK-only change.pnpm openbot sdk refresh,pnpm openbot sdk validate, and final builds of the two changed SDK packages passed; full OpenBot application build was not run.openbot sdk refreshvalidated 732 operations and passed all 316 SDK tests against the final rebased API: core SDK 150, Vercel Node 152, other SDK packages 14. Example typechecking and package/export validation passed. Focused lint has only existing stringification warnings in older webhook tests. No live-platform/browser e2e was run.Contracts, state, deployment, and security
Deploy the additive API and upgrade its workers before releasing these packages. Backend hosts manage one-time signing keys, connection runtime credentials, and durable encrypted state. Streaming clients retain user authorization. Ajv reuses the repository's current version; no new external service or global toolchain is required.
Configuration ownership
trytilde/dispatch.configuration/contains only the canonical ignore-all.gitignoresentinel.Architecture and ADR review
Package documentation and provider contracts
Changeset
@trytilde/sdk,@trytilde/sdk-vercel-ai-node, and@trytilde/api-client. SDK versions remain outside OpenBot's fixed group.PR update record
Change record.
Frontend evidence
Not applicable: no Dispatch app surface changed. The API companion owns its dashboard changes.
Known limitations and follow-ups
Deployment, SDK publication, and live-platform verification remain release activities. The AgentMail reference's manually provisioned webhook needs manual removal on disconnect as documented.
Final diff review
no-greptileis requested at creation; no external review bot was requested.Documentation
The update record, ADR-0043, package READMEs, and reference setup guide describe this complete change. Related API #276 and docs #36 must follow backend-first deployment order.