diff --git a/c1-chat-artifact/pnpm-lock.yaml b/c1-chat-artifact/pnpm-lock.yaml index 8a71a65..f2d2f36 100644 --- a/c1-chat-artifact/pnpm-lock.yaml +++ b/c1-chat-artifact/pnpm-lock.yaml @@ -16,7 +16,10 @@ importers: version: 0.6.4(zod-to-json-schema@3.24.6(zod@3.25.76))(zod@3.25.76) '@thesysai/genui-sdk': specifier: 0.7.1 - version: 0.7.1(d63qjhk3p2ddsy7ljhvptwetlu) + version: 0.7.1(c6547ce775e526902b1d9d6585b7dcb8) + nanoid: + specifier: ^5.1.6 + version: 5.1.6 next: specifier: 15.5.2 version: 15.5.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -29,6 +32,12 @@ importers: react-dom: specifier: 19.1.0 version: 19.1.0(react@19.1.0) + zod: + specifier: ^3.25.76 + version: 3.25.76 + zod-to-json-schema: + specifier: ^3.24.6 + version: 3.24.6(zod@3.25.76) devDependencies: '@eslint/eslintrc': specifier: ^3 @@ -2450,6 +2459,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.1.6: + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + engines: {node: ^18 || >=20} + hasBin: true + napi-postinstall@0.3.3: resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -4036,7 +4050,7 @@ snapshots: '@tanstack/table-core@8.21.3': {} - '@thesysai/genui-sdk@0.7.1(d63qjhk3p2ddsy7ljhvptwetlu)': + '@thesysai/genui-sdk@0.7.1(c6547ce775e526902b1d9d6585b7dcb8)': dependencies: '@crayonai/react-core': 0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.6(zod@3.25.76))(zod@3.25.76))(eventsource-parser@3.0.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.13))(tiny-invariant@1.3.3)(zustand@4.5.7(@types/react@19.1.12)(immer@10.2.0)(react@19.1.0)) '@crayonai/react-ui': 0.9.1(@crayonai/react-core@0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.6(zod@3.25.76))(zod@3.25.76))(eventsource-parser@3.0.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.13))(tiny-invariant@1.3.3)(zustand@4.5.7(@types/react@19.1.12)(immer@10.2.0)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.6(zod@3.25.76))(zod@3.25.76))(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@4.5.7(@types/react@19.1.12)(immer@10.2.0)(react@19.1.0)) @@ -4795,7 +4809,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: @@ -4817,7 +4831,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.34.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -5906,6 +5920,8 @@ snapshots: nanoid@3.3.11: {} + nanoid@5.1.6: {} + napi-postinstall@0.3.3: {} natural-compare@1.4.0: {} diff --git a/mcp-with-c1-chat/package.json b/mcp-with-c1-chat/package.json index 363debf..057b57c 100644 --- a/mcp-with-c1-chat/package.json +++ b/mcp-with-c1-chat/package.json @@ -9,10 +9,11 @@ "lint": "next lint" }, "dependencies": { - "@crayonai/react-ui": "0.8.14", + "@crayonai/react-core": "~0.7.6", + "@crayonai/react-ui": "0.9.2", "@crayonai/stream": "0.6.4", - "@thesysai/genui-sdk": "0.6.27", "@modelcontextprotocol/sdk": "^1.12.1", + "@thesysai/genui-sdk": "0.7.3", "next": "15.2.4", "openai": "^4.91.1", "react": "^19.0.0", diff --git a/mcp-with-c1-chat/pnpm-lock.yaml b/mcp-with-c1-chat/pnpm-lock.yaml index 81d8e13..b096958 100644 --- a/mcp-with-c1-chat/pnpm-lock.yaml +++ b/mcp-with-c1-chat/pnpm-lock.yaml @@ -8,18 +8,21 @@ importers: .: dependencies: + '@crayonai/react-core': + specifier: ~0.7.6 + version: 0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)) '@crayonai/react-ui': - specifier: ^0.7.10 - version: 0.7.14(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)) + specifier: 0.9.2 + version: 0.9.2(@crayonai/react-core@0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)) '@crayonai/stream': - specifier: ^0.6.4 + specifier: 0.6.4 version: 0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51) '@modelcontextprotocol/sdk': specifier: ^1.12.1 version: 1.12.1 '@thesysai/genui-sdk': - specifier: ^0.6.18 - version: 0.6.18(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/react-ui@0.7.14(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(lucide-react@0.469.0(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 0.7.3 + version: 0.7.3(fbd1f15420bab8786086b4d0f1099960) next: specifier: 15.2.4 version: 15.2.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -75,24 +78,26 @@ packages: resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} - '@crayonai/react-core@0.7.5': - resolution: {integrity: sha512-HUtinYReVFx4rhBcyGqsLq08p6TfY6L1x0OZr0LVB8tiLvaHG6a4cwH6cEmwQnwBailP+hUer8Ohoe0IsU1LbA==} + '@crayonai/react-core@0.7.6': + resolution: {integrity: sha512-UstAJiSIE6AqDbTJWphX2ep7mGXioHxhKRvKyKXPBf+T5De7ZXIbI81ez6kBIJWzo66YShJuTjUyvQc/8rWKIg==} peerDependencies: '@crayonai/stream': ^0.6.4 eventsource-parser: ^3.0.0 - react: '>=18.0.0' - react-dom: '>=18.0.0' + react: '>=17.0.0' + react-dom: '>=17.0.0' + tailwind-merge: ^2.5.4 + tailwindcss-animate: ^1.0.7 tiny-invariant: ^1.3.3 - zustand: ^5.0.2 + zustand: ^4.5.5 - '@crayonai/react-ui@0.7.14': - resolution: {integrity: sha512-gaB49F/f83j5bvc7Xz9l1ZPkLjWOMknrOGEJnxRUE42Emv7pe9tdHhpqOmi2Y2j6YgZoxR6AIMA2R02vU4QTLA==} + '@crayonai/react-ui@0.9.2': + resolution: {integrity: sha512-c2Emfly/QpdrvO2zkjUYqoWoxQEB23TUMgQTvSoyXSuGBgbNbcjddNYXibmi6vM+QACK3Z71CRzr7mkPYev9mA==} peerDependencies: - '@crayonai/react-core': ^0.7.5 + '@crayonai/react-core': ^0.7.6 '@crayonai/stream': ^0.6.4 - react: '>=18.0.0' - react-dom: '>=18.0.0' - zustand: ^5.0.2 + react: '>=17.0.0' + react-dom: '>=17.0.0' + zustand: ^4.5.5 '@crayonai/stream@0.6.4': resolution: {integrity: sha512-+FpUTBsdx06M3TPcqBS3RxIqhOM1d5MMWgccH/tbFPl5dtg2aYB2XEjMUMEBHBWN/2Ql/NKIjemiQWw80XwPOg==} @@ -395,6 +400,9 @@ packages: '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/react-accordion@1.2.11': resolution: {integrity: sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==} peerDependencies: @@ -491,6 +499,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-direction@1.1.1': resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: @@ -513,6 +534,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-dropdown-menu@2.1.15': resolution: {integrity: sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==} peerDependencies: @@ -535,6 +569,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-focus-scope@1.1.7': resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: @@ -596,6 +639,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-portal@1.1.9': resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: @@ -622,6 +678,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.1.3': resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: @@ -635,6 +704,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.4': + resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-radio-group@1.3.7': resolution: {integrity: sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==} peerDependencies: @@ -674,6 +756,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-separator@1.1.8': + resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-slider@1.3.5': resolution: {integrity: sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==} peerDependencies: @@ -696,6 +791,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-switch@1.2.5': resolution: {integrity: sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==} peerDependencies: @@ -748,6 +852,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: @@ -940,14 +1057,26 @@ packages: '@tailwindcss/postcss@4.1.8': resolution: {integrity: sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==} - '@thesysai/genui-sdk@0.6.18': - resolution: {integrity: sha512-UefEBzZd1G1VcJ3/PS4rlQSjiiw/1iik06hcneceULK8appME8pxpvm/1qud18GVhUGd3DyVkfFF7X7C6+mbEg==} + '@tanstack/react-table@8.21.3': + resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} + engines: {node: '>=12'} peerDependencies: - '@crayonai/react-core': ^0.7.3 - '@crayonai/react-ui': ^0.7.13 + react: '>=16.8' + react-dom: '>=16.8' + + '@tanstack/table-core@8.21.3': + resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} + engines: {node: '>=12'} + + '@thesysai/genui-sdk@0.7.3': + resolution: {integrity: sha512-Pwy+Af/QymOLhGTktjg2R8vOkyj5ZSn6OQ8F8aTBA0rHpFSfdgjFX3IuUl3HcHX+7ikkF7DoByVmmXiwNljJKg==} + peerDependencies: + '@crayonai/react-core': ^0.7.6 + '@crayonai/react-ui': ^0.9.0 + '@radix-ui/react-dialog': ^1.1.15 lucide-react: ^0.469.0 - react: '>=18.3.1' - react-dom: '>=18.3.1' + react: '>=17.0.0' + react-dom: '>=17.0.0' '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -2029,6 +2158,9 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + immer@10.2.0: + resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -2854,8 +2986,8 @@ packages: recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} - recharts@2.15.3: - resolution: {integrity: sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==} + recharts@2.15.4: + resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==} engines: {node: '>=14'} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3098,6 +3230,14 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + tailwind-merge@2.6.0: + resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + tailwindcss@4.1.8: resolution: {integrity: sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==} @@ -3351,19 +3491,21 @@ snapshots: '@babel/runtime@7.27.6': {} - '@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0))': + '@crayonai/react-core@0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0))': dependencies: '@crayonai/stream': 0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51) eventsource-parser: 3.0.2 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) + tailwind-merge: 2.6.0 + tailwindcss-animate: 1.0.7(tailwindcss@4.1.8) tiny-invariant: 1.3.3 zod: 3.25.51 - zustand: 5.0.5(@types/react@19.1.6)(react@19.1.0) + zustand: 5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0) - '@crayonai/react-ui@0.7.14(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0))': + '@crayonai/react-ui@0.9.2(@crayonai/react-core@0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0))': dependencies: - '@crayonai/react-core': 0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)) + '@crayonai/react-core': 0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)) '@crayonai/stream': 0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51) '@floating-ui/react-dom': 2.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-accordion': 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -3373,10 +3515,12 @@ snapshots: '@radix-ui/react-label': 2.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-radio-group': 1.3.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-select': 2.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-separator': 1.1.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slider': 1.3.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-switch': 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tabs': 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-toggle-group': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) clsx: 2.1.1 date-fns: 4.1.0 lodash-es: 4.17.21 @@ -3386,14 +3530,14 @@ snapshots: react-dom: 19.1.0(react@19.1.0) react-markdown: 10.1.0(@types/react@19.1.6)(react@19.1.0) react-syntax-highlighter: 15.6.1(react@19.1.0) - recharts: 2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + recharts: 2.15.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) rehype-katex: 7.0.1 remark-breaks: 4.0.0 remark-emoji: 5.0.1 remark-gfm: 4.0.1 remark-math: 6.0.0 tiny-invariant: 1.3.3 - zustand: 5.0.5(@types/react@19.1.6)(react@19.1.0) + zustand: 5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -3666,6 +3810,8 @@ snapshots: '@radix-ui/primitive@1.1.2': {} + '@radix-ui/primitive@1.1.3': {} + '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -3757,6 +3903,28 @@ snapshots: optionalDependencies: '@types/react': 19.1.6 + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + aria-hidden: 1.2.6 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.1(@types/react@19.1.6)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-direction@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 @@ -3776,6 +3944,19 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.6)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -3797,6 +3978,12 @@ snapshots: optionalDependencies: '@types/react': 19.1.6 + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.6)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.6 + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) @@ -3868,6 +4055,24 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -3888,6 +4093,16 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) @@ -3897,6 +4112,15 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.4(@types/react@19.1.6)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -3961,6 +4185,15 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-separator@1.1.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-slider@1.3.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 @@ -3987,6 +4220,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.6 + '@radix-ui/react-slot@1.2.4(@types/react@19.1.6)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.6 + '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -4044,6 +4284,26 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.6 + '@types/react-dom': 19.1.6(@types/react@19.1.6) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 @@ -4193,12 +4453,25 @@ snapshots: postcss: 8.5.4 tailwindcss: 4.1.8 - '@thesysai/genui-sdk@0.6.18(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/react-ui@0.7.14(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(lucide-react@0.469.0(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@tanstack/react-table@8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@crayonai/react-core': 0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)) - '@crayonai/react-ui': 0.7.14(@crayonai/react-core@0.7.5(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(react@19.1.0)) + '@tanstack/table-core': 8.21.3 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@tanstack/table-core@8.21.3': {} + + '@thesysai/genui-sdk@0.7.3(fbd1f15420bab8786086b4d0f1099960)': + dependencies: + '@crayonai/react-core': 0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)) + '@crayonai/react-ui': 0.9.2(@crayonai/react-core@0.7.6(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(eventsource-parser@3.0.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwind-merge@2.6.0)(tailwindcss-animate@1.0.7(tailwindcss@4.1.8))(tiny-invariant@1.3.3)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)))(@crayonai/stream@0.6.4(zod-to-json-schema@3.24.5(zod@3.25.51))(zod@3.25.51))(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0)) + '@radix-ui/react-accordion': 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.1.6(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/react-table': 8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) clsx: 2.1.1 htmlparser2: 10.0.0 + immer: 10.2.0 lodash: 4.17.21 lucide-react: 0.469.0(react@19.1.0) react: 19.1.0 @@ -4211,6 +4484,8 @@ snapshots: tiny-invariant: 1.3.3 zod: 3.25.51 transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' - supports-color '@tybys/wasm-util@0.9.0': @@ -5520,6 +5795,8 @@ snapshots: ignore@7.0.5: {} + immer@10.2.0: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -6561,7 +6838,7 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.15.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + recharts@2.15.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 @@ -6942,6 +7219,12 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + tailwind-merge@2.6.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@4.1.8): + dependencies: + tailwindcss: 4.1.8 + tailwindcss@4.1.8: {} tapable@2.2.2: {} @@ -7237,9 +7520,10 @@ snapshots: zod@3.25.51: {} - zustand@5.0.5(@types/react@19.1.6)(react@19.1.0): + zustand@5.0.5(@types/react@19.1.6)(immer@10.2.0)(react@19.1.0): optionalDependencies: '@types/react': 19.1.6 + immer: 10.2.0 react: 19.1.0 zwitch@2.0.4: {} diff --git a/mcp-with-c1-chat/src/app/api/chat/mcp.ts b/mcp-with-c1-chat/src/app/api/chat/mcp.ts index ae80fb7..c141fe7 100644 --- a/mcp-with-c1-chat/src/app/api/chat/mcp.ts +++ b/mcp-with-c1-chat/src/app/api/chat/mcp.ts @@ -1,5 +1,5 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js"; -import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; +import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; import OpenAI from "openai"; export interface MCPTool { @@ -10,52 +10,65 @@ export interface MCPTool { export class MCPClient { private mcp: Client; - private transport: StdioClientTransport | null = null; + private transport: StreamableHTTPClientTransport | null = null; public tools: OpenAI.ChatCompletionTool[] = []; + private currentServerUrl: string | null = null; constructor() { - this.mcp = new Client({ name: "c1-chat-mcp-client", version: "1.0.0" }); + this.mcp = new Client({ name: "supabase", version: "1.0.0" }); } - async connect() { + async connect(serverUrl: string) { try { - if (process.platform === "win32") { - throw new Error("Windows platform not fully tested"); + // Reuse existing transport if connecting to the same server + if (this.transport && this.currentServerUrl === serverUrl) { + return; } - // Connect to filesystem MCP server (no authentication required) - const command = "pnpx"; - const args = [ - "@modelcontextprotocol/server-filesystem@latest", - process.cwd(), - ]; + // Close existing transport if switching servers + if (this.transport) { + await this.transport.close(); + this.transport = null; + } - console.log("Connecting to filesystem MCP server..."); + console.log(`Connecting to MCP server at ${serverUrl}...`); - this.transport = new StdioClientTransport({ - command, - args, + // Create transport without authentication + this.transport = new StreamableHTTPClientTransport(new URL(serverUrl), { + requestInit: { + headers: { + Authorization: `Bearer ${process.env.SUPABASE_ACCESS_TOKEN}`, + }, + }, }); await this.mcp.connect(this.transport); + this.currentServerUrl = serverUrl; // List available tools from the MCP server const toolsResult = await this.mcp.listTools(); - this.tools = toolsResult.tools.map((tool) => ({ - type: "function" as const, - function: { - name: tool.name, - description: tool.description, - parameters: tool.inputSchema, - }, - })); + this.tools = toolsResult.tools.map( + (tool: { + name: string; + description?: string; + inputSchema: Record; + }) => ({ + type: "function" as const, + function: { + name: tool.name, + description: tool.description, + parameters: tool.inputSchema, + }, + }) + ); console.log( - `Connected to filesystem MCP server with ${this.tools.length} tools:`, + `Connected to MCP server with ${this.tools.length} tools:`, this.tools.map((t) => t.function.name).join(", ") ); } catch (e) { console.error("Failed to connect to MCP server:", e); + throw e; } } @@ -95,8 +108,13 @@ export class MCPClient { } async disconnect() { + if (this.mcp) { + await this.mcp.close(); + } if (this.transport) { await this.transport.close(); + this.transport = null; } + this.currentServerUrl = null; } } diff --git a/mcp-with-c1-chat/src/app/api/chat/route.ts b/mcp-with-c1-chat/src/app/api/chat/route.ts index ffc7de5..c7be9c0 100644 --- a/mcp-with-c1-chat/src/app/api/chat/route.ts +++ b/mcp-with-c1-chat/src/app/api/chat/route.ts @@ -20,7 +20,11 @@ interface RequestBody { */ async function ensureMCPConnection(): Promise { if (mcpClient.tools.length === 0) { - await mcpClient.connect(); + const serverUrl = process.env.MCP_SERVER_URL; + if (!serverUrl) { + throw new Error("MCP_SERVER_URL environment variable is required"); + } + await mcpClient.connect(serverUrl); } } @@ -51,7 +55,7 @@ export async function POST(req: NextRequest): Promise { }); const llmStream = await client.beta.chat.completions.runTools({ - model: "c1/anthropic/claude-3.5-sonnet/v-20250617", // available models: https://docs.thesys.dev/guides/models-pricing#model-table + model: "c1/anthropic/claude-sonnet-4/v-20250930", // available models: https://docs.thesys.dev/guides/models-pricing#model-table messages: messages, tools: mcpClient.tools.map((tool) => ({ type: "function",