Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
3902e64
refactor(kb): use chonkie locally (#475)
adiologydev Jun 10, 2025
e557499
feat(parsers): text and markdown parsers (#473)
adiologydev Jun 10, 2025
3d9c993
fix(knowledge-wh): fixed authentication error on webhook trigger
aadamgough Jun 10, 2025
9ef2764
feat(tools): add huggingface tools/blcok (#472)
icecrasher321 Jun 11, 2025
bf579d8
fix(knowledge-ux): fixed ux for knowledge base (#478)
aadamgough Jun 12, 2025
45af563
fix(billing): bump better-auth version & fix existing subscription is…
waleedlatif1 Jun 13, 2025
f850e65
fix(env): added NEXT_PUBLIC_APP_URL to .env.example (#485)
waleedlatif1 Jun 13, 2025
2f78c5e
feat(subworkflows): workflows as a block within workflows (#480)
icecrasher321 Jun 13, 2025
b5dc560
fix(kb): fixed kb race condition resulting in no chunks found (#487)
waleedlatif1 Jun 13, 2025
187af53
fix: added all blocks activeExecutionPath (#486)
aadamgough Jun 13, 2025
3a0e389
refactor(chunker): replace chonkie with custom TextChunker (#479)
adiologydev Jun 13, 2025
b55398d
fix: KB tests updated
emir-karabeg Jun 13, 2025
8fe5bb9
fix(tab-sync): sync between tabs on change (#489)
emir-karabeg Jun 13, 2025
fe45d0f
fix(file-upload): upload presigned url to kb for file upload instead …
waleedlatif1 Jun 13, 2025
6c6131e
feat(folders): folders to manage workflows (#490)
icecrasher321 Jun 13, 2025
535a9d3
revert tab sync
Jun 14, 2025
e5edb98
improvement(folders): added multi-select for moving folders (#493)
waleedlatif1 Jun 14, 2025
1c7aa5c
fix(deployed-chat): made the chat mobile friendly (#494)
waleedlatif1 Jun 14, 2025
8b18a53
improvement(ui/ux): chat deploy (#496)
emir-karabeg Jun 14, 2025
0fd6e71
feat(gmail): added option to access raw gmail from gmail polling serv…
waleedlatif1 Jun 14, 2025
d8b3a9a
fix(ui): fix the UI for folder deletion, huggingface icon, workflow b…
waleedlatif1 Jun 15, 2025
a2a131c
fix(reset-data): remove reset all data button from settings modal alo…
icecrasher321 Jun 15, 2025
751c36a
fix(airtable): fixed airtable oauth token refresh, added tests (#502)
waleedlatif1 Jun 15, 2025
ee35533
feat(registration): disable registration + handle env booleans (#501)
adiologydev Jun 16, 2025
915741b
feat(providers): added azure openai (#503)
waleedlatif1 Jun 16, 2025
13c4fc9
fix: add vscode settings to gitignore
emir-karabeg Jun 16, 2025
f4cbf5d
feat(file-upload): generalized storage to support azure blob, enhance…
waleedlatif1 Jun 17, 2025
5eb7b88
fix(folders): modified folder deletion to delete subfolders & workflo…
waleedlatif1 Jun 17, 2025
2acef5c
feat: api response block and implementation
adiologydev Jun 17, 2025
941b26a
improvement(local-storage): remove use of local storage except for oa…
icecrasher321 Jun 17, 2025
1100bfd
feat(multi-select): simplified chat to always return readable stream,…
waleedlatif1 Jun 17, 2025
43f9119
improvement(workflow-state): split workflow state into separate table…
icecrasher321 Jun 18, 2025
dd50fb3
feat(models): added new openai models, updated model pricing, added n…
waleedlatif1 Jun 18, 2025
537e17d
fix(autocomplete): fixed extra closing tag on tag dropdown autocomple…
waleedlatif1 Jun 18, 2025
1f26fcc
chore: enable input format again
adiologydev Jun 18, 2025
d9fb76c
fix: process the input made on api calls with proper extraction
adiologydev Jun 18, 2025
93a1d99
feat: add json-object for ai generation for response block and others
adiologydev Jun 18, 2025
ae5e56e
chore: add documentation for response block
adiologydev Jun 18, 2025
9188f78
Merge branch 'main' of github.com:simstudioai/sim into feat/structure…
adiologydev Jun 18, 2025
1157c4d
chore: rollback temp fix and uncomment original input handler
adiologydev Jun 18, 2025
69a96ec
chore: add missing mock for response handler
adiologydev Jun 18, 2025
52578b8
chore: add missing mock
adiologydev Jun 18, 2025
98d7d9c
chore: greptile recommendations
adiologydev Jun 18, 2025
e81afa5
added cost tracking for router & evaluator blocks, consolidated model…
waleedlatif1 Jun 19, 2025
b67b0f1
fix(deployState): deploy not persisting bug (#518)
icecrasher321 Jun 19, 2025
cd4d20e
fix decimal entry issues
Jun 19, 2025
5009217
remove unused files
Jun 19, 2025
c1487af
fix(db): decimal position entry issues (#520)
icecrasher321 Jun 19, 2025
ab77f4c
fix lint
Jun 19, 2025
a078afd
Merge branch 'main' into fix/normalized-tables-type-bug
icecrasher321 Jun 19, 2025
2f9a935
fix test
Jun 19, 2025
ecece02
Merge branch 'fix/normalized-tables-type-bug' of github.com:simstudio…
Jun 19, 2025
cc74921
Merge pull request #521 from simstudioai/fix/normalized-tables-type-bug
icecrasher321 Jun 19, 2025
bd07f80
improvement(kb): added configurability for chunks, query across multi…
emir-karabeg Jun 20, 2025
a0c00bc
fix(models): remove temp from models that don't support it
waleedlatif1 Jun 20, 2025
a6e67ee
feat(sdk): added ts and python SDKs + docs (#524)
waleedlatif1 Jun 20, 2025
127e70e
fixed issue where it goes to random workspace when you click reload
SHARKYBOY1248 Jun 20, 2025
c4f3987
Merge pull request #526 from simstudioai/fix/workflow-reload
icecrasher321 Jun 20, 2025
657e072
feat: better response builder + doc update
adiologydev Jun 20, 2025
f663a12
fix(auth): added preview URLs to list of trusted origins (#525)
SHARKYBOY1248 Jun 21, 2025
ef865a5
fix(sdk): remove dev script from SDK
waleedlatif1 Jun 21, 2025
0ed370b
PR: changes for migration
SHARKYBOY1248 Jun 21, 2025
8cf0b76
add changes on top of db migration changes
SHARKYBOY1248 Jun 21, 2025
609ce5c
Merge pull request #528 from simstudioai/feature/migration-access-con…
icecrasher321 Jun 21, 2025
190f3f9
Merge pull request #529 from simstudioai/feature/else-access-control-…
icecrasher321 Jun 21, 2025
143f206
fix: allow removing single input field
adiologydev Jun 23, 2025
226e6ab
Merge branch 'main' of github.com:simstudioai/sim into feat/structure…
adiologydev Jun 23, 2025
bdf316e
Merge pull request #510 from adiologydev/feat/structured-response
icecrasher321 Jun 23, 2025
f2e74b5
improvement(permissions): workspace permissions improvements, added p…
waleedlatif1 Jun 23, 2025
bc502d0
improvement(tests): parallelized tests and build fixes (#531)
waleedlatif1 Jun 23, 2025
ac99d42
fix(kb): reduced params in kb block, added advanced mode to starter b…
waleedlatif1 Jun 23, 2025
05481f1
feat(realtime): sockets + normalized tables + deprecate sync (#523)
icecrasher321 Jun 24, 2025
fc6be73
fix(sockets): updated CSP
waleedlatif1 Jun 24, 2025
eec8c18
remove unecessary logs
Jun 24, 2025
842d032
fix lint
Jun 24, 2025
ca134eb
Merge pull request #532 from simstudioai/fix/realtime
icecrasher321 Jun 24, 2025
09dc384
refactor: get started with workspace id in url
adiologydev Jun 24, 2025
82905db
refactor: get rid of the old local way of storing active workspace an…
adiologydev Jun 24, 2025
f748630
fix: import path
adiologydev Jun 24, 2025
f144059
fix: missing function and type issue
adiologydev Jun 24, 2025
a856539
chore: requested changes
adiologydev Jun 24, 2025
8194e87
chore: refactor /w/[id] to /w/[workflowId]
adiologydev Jun 24, 2025
c1a7ca6
refactor: move knowledge base, logs, marketplace to workspace
adiologydev Jun 24, 2025
4e55571
fix: on creation redirect to new workflow, on delete redirect to last…
adiologydev Jun 25, 2025
73e116e
replace generic loading spinner with loading agent on workspace init
waleedlatif1 Jun 25, 2025
0397102
chore: cleanup leftover component
adiologydev Jun 25, 2025
47b1161
rebased w staging
waleedlatif1 Jun 25, 2025
58fa165
rm html socket test
waleedlatif1 Jun 25, 2025
94d3bef
fix in sidebar
waleedlatif1 Jun 25, 2025
dd402b9
more sidebar fix
waleedlatif1 Jun 25, 2025
c0cb06a
fixed string interpolation issues
waleedlatif1 Jun 25, 2025
f1140de
fixed broken invite route
waleedlatif1 Jun 25, 2025
735b6c8
fixed broken invite route
waleedlatif1 Jun 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions apps/sim/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Database (Required)
DATABASE_URL="postgresql://postgres:password@localhost:5432/postgres"

# Authentication (Required)
BETTER_AUTH_SECRET=your_secret_key # Use `openssl rand -hex 32` to generate, or visit https://www.better-auth.com/docs/installation
BETTER_AUTH_URL=http://localhost:3000

# NextJS (Required)
NEXT_PUBLIC_APP_URL=http://localhost:3000

# Security (Required)
ENCRYPTION_KEY=your_encryption_key # Use `openssl rand -hex 32` to generate

# Email Provider (Optional)
# RESEND_API_KEY= # Uncomment and add your key from https://resend.com to send actual emails
# If left commented out, emails will be logged to console instead

# Freestyle API Key (Required for sandboxed code execution for functions/custom-tools)
# FREESTYLE_API_KEY= # Uncomment and add your key from https://docs.freestyle.sh/Getting-Started/run
2 changes: 1 addition & 1 deletion apps/sim/app/(auth)/components/social-login-buttons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ interface SocialLoginButtonsProps {
export function SocialLoginButtons({
githubAvailable,
googleAvailable,
callbackURL = '/w',
callbackURL = '/workspace',
isProduction,
}: SocialLoginButtonsProps) {
const [isGithubLoading, setIsGithubLoading] = useState(false)
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/(auth)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import Image from 'next/image'
import Link from 'next/link'
import { GridPattern } from '../(landing)/components/grid-pattern'
import { NotificationList } from '../w/[id]/components/notifications/notifications'
import { NotificationList } from '../workspace/[workspaceId]/w/[workflowId]/components/notifications/notifications'

export default function AuthLayout({ children }: { children: React.ReactNode }) {
return (
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/(auth)/login/login-form.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ describe('LoginPage', () => {
{
email: 'test@example.com',
password: 'password123',
callbackURL: '/w',
callbackURL: '/workspace',
},
expect.objectContaining({
onError: expect.any(Function),
Expand Down
6 changes: 3 additions & 3 deletions apps/sim/app/(auth)/login/login-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ export default function LoginPage({
const [showValidationError, setShowValidationError] = useState(false)

// Initialize state for URL parameters
const [callbackUrl, setCallbackUrl] = useState('/w')
const [callbackUrl, setCallbackUrl] = useState('/workspace')
const [isInviteFlow, setIsInviteFlow] = useState(false)

// Forgot password states
Expand Down Expand Up @@ -155,7 +155,7 @@ export default function LoginPage({
setCallbackUrl(callback)
} else {
logger.warn('Invalid callback URL detected and blocked:', { url: callback })
// Keep the default safe value ('/w')
// Keep the default safe value ('/workspace')
}
}

Expand Down Expand Up @@ -222,7 +222,7 @@ export default function LoginPage({

try {
// Final validation before submission
const safeCallbackUrl = validateCallbackUrl(callbackUrl) ? callbackUrl : '/w'
const safeCallbackUrl = validateCallbackUrl(callbackUrl) ? callbackUrl : '/workspace'

const result = await client.signIn.email(
{
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/(auth)/signup/signup-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ function SignupFormContent({
<SocialLoginButtons
githubAvailable={githubAvailable}
googleAvailable={googleAvailable}
callbackURL={redirectUrl || '/w'}
callbackURL={redirectUrl || '/workspace'}
isProduction={isProduction}
/>

Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/(auth)/verify/use-verification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ export function useVerification({
router.push(redirectUrl)
} else {
// Default redirect to dashboard
router.push('/w')
router.push('/workspace')
}
}, 2000)
} else {
Expand Down Expand Up @@ -233,7 +233,7 @@ export function useVerification({
if (isDevOrDocker || !hasResendKey) {
setIsVerified(true)
const timeoutId = setTimeout(() => {
router.push('/w')
router.push('/workspace')
}, 1000)

return () => clearTimeout(timeoutId)
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/(landing)/components/sections/footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ function Footer() {
if (typeof window !== 'undefined') {
// Check if user has an active session
if (isAuthenticated) {
router.push('/w')
router.push('/workspace')
} else {
// Check if user has logged in before
const hasLoggedInBefore =
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/(landing)/components/sections/hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function Hero() {
if (typeof window !== 'undefined') {
// Check if user has an active session
if (isAuthenticated) {
router.push('/w')
router.push('/workspace')
} else {
// Check if user has logged in before
const hasLoggedInBefore =
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/api/marketplace/workflows/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { desc, eq, sql } from 'drizzle-orm'
import { type NextRequest, NextResponse } from 'next/server'
import { createLogger } from '@/lib/logs/console-logger'
import { createErrorResponse, createSuccessResponse } from '@/app/api/workflows/utils'
import { CATEGORIES } from '@/app/w/marketplace/constants/categories'
import { CATEGORIES } from '@/app/workspace/[workspaceId]/marketplace/constants/categories'
import { db } from '@/db'
import * as schema from '@/db/schema'

Expand Down
10 changes: 8 additions & 2 deletions apps/sim/app/api/workspaces/invitations/accept/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,10 @@ export async function GET(req: NextRequest) {
.where(eq(workspaceInvitation.id, invitation.id))

return NextResponse.redirect(
new URL(`/w/${invitation.workspaceId}`, env.NEXT_PUBLIC_APP_URL || 'https://simstudio.ai')
new URL(
`/workspace/${invitation.workspaceId}/w`,
env.NEXT_PUBLIC_APP_URL || 'https://simstudio.ai'
)
)
}

Expand Down Expand Up @@ -194,7 +197,10 @@ export async function GET(req: NextRequest) {

// Redirect to the workspace
return NextResponse.redirect(
new URL(`/w/${invitation.workspaceId}`, env.NEXT_PUBLIC_APP_URL || 'https://simstudio.ai')
new URL(
`/workspace/${invitation.workspaceId}/w`,
env.NEXT_PUBLIC_APP_URL || 'https://simstudio.ai'
)
)
} catch (error) {
console.error('Error accepting invitation:', error)
Expand Down
4 changes: 2 additions & 2 deletions apps/sim/app/invite/[id]/invite.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export default function Invite() {

// Redirect to workspace after a brief delay
setTimeout(() => {
router.push('/w')
router.push('/workspace')
}, 2000)
} else {
// For organization invites, use the client API
Expand All @@ -153,7 +153,7 @@ export default function Invite() {

// Redirect to workspace after a brief delay
setTimeout(() => {
router.push('/w')
router.push('/workspace')
}, 2000)
}
} catch (err: any) {
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/app/invite/invite-error/invite-error.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export default function InviteError() {
<p className='mb-6 text-muted-foreground'>{displayMessage}</p>

<div className='flex w-full flex-col gap-4'>
<Link href='/w' passHref>
<Link href='/workspace' passHref>
<Button variant='default' className='w-full'>
Go to Dashboard
</Button>
Expand Down
5 changes: 0 additions & 5 deletions apps/sim/app/w/error.tsx

This file was deleted.

5 changes: 0 additions & 5 deletions apps/sim/app/w/global-error.tsx

This file was deleted.

5 changes: 5 additions & 0 deletions apps/sim/app/workspace/[workspaceId]/error.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use client'

import { NextError } from './w/[workflowId]/components/error'

export default NextError
5 changes: 5 additions & 0 deletions apps/sim/app/workspace/[workspaceId]/global-error.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use client'

import { NextGlobalError } from './w/[workflowId]/components/error'

export default NextGlobalError
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ export function DocumentLoading({
{
id: 'knowledge-root',
label: 'Knowledge',
href: '/w/knowledge',
href: '/knowledge',
},
{
id: `knowledge-base-${knowledgeBaseId}`,
label: knowledgeBaseName,
href: `/w/knowledge/${knowledgeBaseId}`,
href: `/knowledge/${knowledgeBaseId}`,
},
{
id: `document-${knowledgeBaseId}-${documentName}`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { Button } from '@/components/ui/button'
import { Checkbox } from '@/components/ui/checkbox'
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
import { createLogger } from '@/lib/logs/console-logger'
import { ActionBar } from '@/app/w/knowledge/[id]/components/action-bar/action-bar'
import { ActionBar } from '@/app/workspace/[workspaceId]/knowledge/[id]/components/action-bar/action-bar'
import { useDocumentChunks } from '@/hooks/use-knowledge'
import { type ChunkData, type DocumentData, useKnowledgeStore } from '@/stores/knowledge/store'
import { useSidebarStore } from '@/stores/sidebar/store'
Expand Down Expand Up @@ -170,10 +170,10 @@ export function Document({
const effectiveDocumentName = document?.filename || documentName || 'Document'

const breadcrumbs = [
{ label: 'Knowledge', href: '/w/knowledge' },
{ label: 'Knowledge', href: '/knowledge' },
{
label: effectiveKnowledgeBaseName,
href: `/w/knowledge/${knowledgeBaseId}`,
href: `/knowledge/${knowledgeBaseId}`,
},
{ label: effectiveDocumentName },
]
Expand Down Expand Up @@ -360,10 +360,10 @@ export function Document({

if (combinedError && !isLoadingChunks) {
const errorBreadcrumbs = [
{ label: 'Knowledge', href: '/w/knowledge' },
{ label: 'Knowledge', href: '/knowledge' },
{
label: effectiveKnowledgeBaseName,
href: `/w/knowledge/${knowledgeBaseId}`,
href: `/knowledge/${knowledgeBaseId}`,
},
{ label: 'Error' },
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
Trash2,
X,
} from 'lucide-react'
import { useRouter } from 'next/navigation'
import { useParams, useRouter } from 'next/navigation'
import {
AlertDialog,
AlertDialogAction,
Expand All @@ -28,10 +28,10 @@ import { Button } from '@/components/ui/button'
import { Checkbox } from '@/components/ui/checkbox'
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
import { createLogger } from '@/lib/logs/console-logger'
import { ActionBar } from '@/app/w/knowledge/[id]/components/action-bar/action-bar'
import { getDocumentIcon } from '@/app/w/knowledge/components/icons/document-icons'
import { PrimaryButton } from '@/app/w/knowledge/components/primary-button/primary-button'
import { SearchInput } from '@/app/w/knowledge/components/search-input/search-input'
import { ActionBar } from '@/app/workspace/[workspaceId]/knowledge/[id]/components/action-bar/action-bar'
import { getDocumentIcon } from '@/app/workspace/[workspaceId]/knowledge/components/icons/document-icons'
import { PrimaryButton } from '@/app/workspace/[workspaceId]/knowledge/components/primary-button/primary-button'
import { SearchInput } from '@/app/workspace/[workspaceId]/knowledge/components/search-input/search-input'
import { useKnowledgeBase, useKnowledgeBaseDocuments } from '@/hooks/use-knowledge'
import { type DocumentData, useKnowledgeStore } from '@/stores/knowledge/store'
import { useSidebarStore } from '@/stores/sidebar/store'
Expand Down Expand Up @@ -122,6 +122,8 @@ export function KnowledgeBase({
}: KnowledgeBaseProps) {
const { mode, isExpanded } = useSidebarStore()
const { removeKnowledgeBase } = useKnowledgeStore()
const params = useParams()
const workspaceId = params.workspaceId as string
const {
knowledgeBase,
isLoading: isLoadingKnowledgeBase,
Expand Down Expand Up @@ -402,11 +404,11 @@ export function KnowledgeBase({
const handleDocumentClick = (docId: string) => {
// Find the document to get its filename
const document = documents.find((doc) => doc.id === docId)
const params = new URLSearchParams({
const urlParams = new URLSearchParams({
kbName: knowledgeBaseName, // Use the instantly available name
docName: document?.filename || 'Document',
})
router.push(`/w/knowledge/${id}/${docId}?${params.toString()}`)
router.push(`/workspace/${workspaceId}/knowledge/${id}/${docId}?${urlParams.toString()}`)
}

const handleDeleteKnowledgeBase = async () => {
Expand All @@ -428,7 +430,7 @@ export function KnowledgeBase({
if (result.success) {
// Remove from store and redirect to knowledge bases list
removeKnowledgeBase(id)
router.push('/w/knowledge')
router.push(`/workspace/${workspaceId}/knowledge`)
} else {
throw new Error(result.error || 'Failed to delete knowledge base')
}
Expand Down Expand Up @@ -741,7 +743,7 @@ export function KnowledgeBase({
{
id: 'knowledge-root',
label: 'Knowledge',
href: '/w/knowledge',
href: '/knowledge',
},
{
id: `knowledge-base-${id}`,
Expand All @@ -760,7 +762,7 @@ export function KnowledgeBase({
{
id: 'knowledge-root',
label: 'Knowledge',
href: '/w/knowledge',
href: '/knowledge',
},
{
id: 'error',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export function KnowledgeBaseLoading({ knowledgeBaseName }: KnowledgeBaseLoading
{
id: 'knowledge-root',
label: 'Knowledge',
href: '/w/knowledge',
href: '/knowledge',
},
{
id: 'knowledge-base-loading',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export function BaseOverview({ id, title, docCount, description }: BaseOverviewP
const params = new URLSearchParams({
kbName: title,
})
const href = `/w/knowledge/${id || title.toLowerCase().replace(/\s+/g, '-')}?${params.toString()}`
const href = `/knowledge/${id || title.toLowerCase().replace(/\s+/g, '-')}?${params.toString()}`

const handleCopy = async (e: React.MouseEvent) => {
e.preventDefault()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import { Textarea } from '@/components/ui/textarea'
import { createLogger } from '@/lib/logs/console-logger'
import { getDocumentIcon } from '@/app/w/knowledge/components/icons/document-icons'
import { getDocumentIcon } from '@/app/workspace/[workspaceId]/knowledge/components/icons/document-icons'
import type { DocumentData, KnowledgeBaseData } from '@/stores/knowledge/store'
import { useKnowledgeStore } from '@/stores/knowledge/store'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { WorkspaceProvider } from '@/providers/workspace-provider'
import Providers from './components/providers/providers'
import { Sidebar } from './components/sidebar/sidebar'
import Providers from './w/components/providers/providers'
import { Sidebar } from './w/components/sidebar/sidebar'

export default function WorkspaceLayout({ children }: { children: React.ReactNode }) {
return (
Expand Down
Loading