feat(bun): upgrade to bun, reduce docker image size by 95%, upgrade docs & ci (#371)

* migrate to bun

* added envvars to drizzle

* upgrade bun devcontainer feature to a valid one

* added bun, docker not working

* updated envvars, updated to bunder and esnext modules

* fixed build, reinstated otel

* feat: optimized multi-stage docker images

* add coerce for boolean envvar

* feat: add docker-compose configuration for local LLM services and remove legacy Dockerfile and entrypoint script

* feat: add docker-compose files for local and production environments, and implement GitHub Actions for Docker image build and publish

* refactor: remove unused generateStaticParams function from various API routes and maintain dynamic rendering

* cleanup

* upgraded bun

* updated ci

* fixed build

---------

Co-authored-by: Aditya Tripathi <aditya@climactic.co>
This commit is contained in:
Waleed Latif
2025-05-18 01:01:32 -07:00
committed by GitHub
parent e57d3f79a1
commit 717e17d02a
144 changed files with 5173 additions and 53421 deletions

View File

@@ -112,16 +112,15 @@ describe('Gmail Read Tool', () => {
// Then setup response for the first message
const originalFetch = global.fetch
global.fetch = Object.assign(
vi.fn().mockImplementation((url, options) => {
// Check if it's a token request
if (url.toString().includes('/api/auth/oauth/token')) {
return Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve({ accessToken: 'gmail-access-token-123' }),
})
}
global.fetch = Object.assign(vi.fn().mockImplementation((url, options) => {
// Check if it's a token request
if (url.toString().includes('/api/auth/oauth/token')) {
return Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve({ accessToken: 'gmail-access-token-123' }),
})
}
// For message list endpoint
if (url.toString().includes('users/me/messages') && !url.toString().includes('msg1')) {
@@ -149,10 +148,8 @@ describe('Gmail Read Tool', () => {
})
}
return originalFetch(url, options)
}),
{ preconnect: vi.fn() }
) as typeof fetch
return originalFetch(url, options)
}), { preconnect: vi.fn() }) as typeof fetch
// Execute with credential instead of access token
await tester.execute({
@@ -199,34 +196,31 @@ describe('Gmail Read Tool', () => {
const originalFetch = global.fetch
// First setup response for message list
global.fetch = Object.assign(
vi
.fn()
.mockImplementationOnce((url, options) => {
return Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve(mockGmailResponses.messageList),
headers: {
get: () => 'application/json',
forEach: () => {},
},
})
global.fetch = Object.assign(vi
.fn()
.mockImplementationOnce((url, options) => {
return Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve(mockGmailResponses.messageList),
headers: {
get: () => 'application/json',
forEach: () => {},
},
})
.mockImplementationOnce((url, options) => {
// For the second request (first message)
return Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve(mockGmailResponses.singleMessage),
headers: {
get: () => 'application/json',
forEach: () => {},
},
})
}),
{ preconnect: vi.fn() }
) as typeof fetch
})
.mockImplementationOnce((url, options) => {
// For the second request (first message)
return Promise.resolve({
ok: true,
status: 200,
json: () => Promise.resolve(mockGmailResponses.singleMessage),
headers: {
get: () => 'application/json',
forEach: () => {},
},
})
}), { preconnect: vi.fn() }) as typeof fetch
// Execute the tool
const result = await tester.execute({