diff --git a/Makefile b/Makefile index 2803641fa..b60cd161d 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,6 @@ endif yarn install yarn build:joi yarn build:core - yarn build:server yarn build:extensions check-file-counts: install-and-build @@ -42,7 +41,7 @@ dev: check-file-counts dev-tauri: check-file-counts yarn install:cortex yarn download:bin - yarn dev:tauri + CLEAN=true yarn dev:tauri # Linting lint: check-file-counts diff --git a/core/package.json b/core/package.json index d63fedb98..1e6291375 100644 --- a/core/package.json +++ b/core/package.json @@ -8,31 +8,13 @@ ], "homepage": "https://jan.ai", "license": "AGPL-3.0", - "browser": "dist/index.js", "main": "dist/index.js", - "module": "dist/node/index.cjs.js", "typings": "dist/types/index.d.ts", "files": [ "dist", "types" ], "author": "Jan ", - "exports": { - ".": "./dist/index.js", - "./node": "./dist/node/index.cjs.js" - }, - "typesVersions": { - "*": { - ".": [ - "./dist/index.js.map", - "./dist/types/index.d.ts" - ], - "node": [ - "./dist/node/index.cjs.js.map", - "./dist/types/node/index.d.ts" - ] - } - }, "scripts": { "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "test": "jest", diff --git a/core/src/browser/fs.ts b/core/src/browser/fs.ts index 18f937037..1bbaeb32b 100644 --- a/core/src/browser/fs.ts +++ b/core/src/browser/fs.ts @@ -80,10 +80,8 @@ const getGgufFiles: (paths: string[]) => Promise = (paths) => * @param outsideJanDataFolder - Whether the file is outside the Jan data folder. * @returns {Promise} - A promise that resolves with the file's stats. */ -const fileStat: (path: string, outsideJanDataFolder?: boolean) => Promise = ( - path, - outsideJanDataFolder -) => globalThis.core.api?.fileStat(path, outsideJanDataFolder) +const fileStat: (path: string) => Promise = (path) => + globalThis.core.api?.fileStat({ args: path }) // TODO: Export `dummy` fs functions automatically // Currently adding these manually diff --git a/core/src/browser/models/manager.ts b/core/src/browser/models/manager.ts index d5afe83d5..2c4c8750d 100644 --- a/core/src/browser/models/manager.ts +++ b/core/src/browser/models/manager.ts @@ -38,10 +38,13 @@ export class ModelManager { return this.models.get(id) as T | undefined } + /** - * The instance of the tool manager. + * Shared instance of ExtensionManager. */ - static instance(): ModelManager { - return (window.core?.modelManager as ModelManager) ?? new ModelManager() + static instance() { + if (!window.core.modelManager) + window.core.modelManager = new ModelManager() + return window.core.modelManager as ModelManager } } diff --git a/extensions/engine-management-extension/src/index.ts b/extensions/engine-management-extension/src/index.ts index 029c54646..e0b218880 100644 --- a/extensions/engine-management-extension/src/index.ts +++ b/extensions/engine-management-extension/src/index.ts @@ -56,9 +56,6 @@ export default class JanEngineManagementExtension extends EngineManagementExtens // Update default local engine this.updateDefaultEngine() - // Populate default remote engines - this.populateDefaultRemoteEngines() - // Migrate this.migrate() } diff --git a/extensions/inference-cortex-extension/resources/default_settings.json b/extensions/inference-cortex-extension/resources/default_settings.json index 945f32729..79ca05527 100644 --- a/extensions/inference-cortex-extension/resources/default_settings.json +++ b/extensions/inference-cortex-extension/resources/default_settings.json @@ -26,12 +26,23 @@ "description": "Number of CPU cores used for model processing when running without GPU.", "controllerType": "input", "controllerProps": { - "value": "", + "value": "-1", "placeholder": "Number of CPU threads", "type": "number", "textAlign": "right" } }, + { + "key": "threads_batch", + "title": "Threads (Batch)", + "description": "Number of threads for batch and prompt processing (default: same as Threads).", + "controllerType": "input", + "controllerProps": { + "value": -1, + "placeholder": "-1 (same as Threads)", + "type": "number" + } + }, { "key": "flash_attn", "title": "Flash Attention", diff --git a/extensions/yarn.lock b/extensions/yarn.lock index b87f2b047..1a8e45497 100644 --- a/extensions/yarn.lock +++ b/extensions/yarn.lock @@ -15,23 +15,6 @@ __metadata: languageName: node linkType: hard -"@anthropic-ai/sdk@npm:^0.9.1": - version: 0.9.1 - resolution: "@anthropic-ai/sdk@npm:0.9.1" - dependencies: - "@types/node": "npm:^18.11.18" - "@types/node-fetch": "npm:^2.6.4" - abort-controller: "npm:^3.0.0" - agentkeepalive: "npm:^4.2.1" - digest-fetch: "npm:^1.3.0" - form-data-encoder: "npm:1.7.2" - formdata-node: "npm:^4.3.2" - node-fetch: "npm:^2.6.7" - web-streams-polyfill: "npm:^3.2.1" - checksum: 10c0/de00ec551a5731a30254e9a3a3ed76f05c0865da6cddf32d4010659f72ca2d25985dff7173af850f92ede1e3695e00105f9689aeb875f0e82dc93f1597be0d05 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" @@ -652,13 +635,7 @@ __metadata: resolution: "@janhq/assistant-extension@workspace:assistant-extension" dependencies: "@janhq/core": ../../core/package.tgz - "@langchain/community": "npm:0.0.13" - "@types/pdf-parse": "npm:^1.1.4" cpx: "npm:^1.5.0" - hnswlib-node: "npm:^1.4.2" - langchain: "npm:^0.0.214" - node-gyp: "npm:^11.0.0" - pdf-parse: "npm:^1.1.1" rimraf: "npm:^3.0.2" rolldown: "npm:1.0.0-beta.1" run-script-os: "npm:^1.1.6" @@ -673,8 +650,6 @@ __metadata: dependencies: "@janhq/core": ../../core/package.tgz cpx: "npm:^1.5.0" - ky: "npm:^1.7.2" - p-queue: "npm:^8.0.1" rimraf: "npm:^3.0.2" rolldown: "npm:1.0.0-beta.1" ts-loader: "npm:^9.5.0" @@ -684,61 +659,61 @@ __metadata: "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=704042&locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=5531aa&locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/4c53e86e66a5aa291b56a7257a90b31cd06e624d56a1d114d05b2bed46eaa39da5d9ebc5a86131867b2ebda51089b09bdd8a0ed97f329630e1d35d3463e1ba37 + checksum: 10c0/ee7fe21267cf795dba890781d1e7807a6cb3ecb915ce9ecbd3a8386a2ebc916a8b70a775ce5d9d9f74d2ec29e20b65cea4ef6cdd0ea250a8ff2d5e6bd2237b1e languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=704042&locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=5531aa&locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/4c53e86e66a5aa291b56a7257a90b31cd06e624d56a1d114d05b2bed46eaa39da5d9ebc5a86131867b2ebda51089b09bdd8a0ed97f329630e1d35d3463e1ba37 + checksum: 10c0/ee7fe21267cf795dba890781d1e7807a6cb3ecb915ce9ecbd3a8386a2ebc916a8b70a775ce5d9d9f74d2ec29e20b65cea4ef6cdd0ea250a8ff2d5e6bd2237b1e languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=704042&locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=5531aa&locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/4c53e86e66a5aa291b56a7257a90b31cd06e624d56a1d114d05b2bed46eaa39da5d9ebc5a86131867b2ebda51089b09bdd8a0ed97f329630e1d35d3463e1ba37 + checksum: 10c0/ee7fe21267cf795dba890781d1e7807a6cb3ecb915ce9ecbd3a8386a2ebc916a8b70a775ce5d9d9f74d2ec29e20b65cea4ef6cdd0ea250a8ff2d5e6bd2237b1e languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fhardware-management-extension%40workspace%3Ahardware-management-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=704042&locator=%40janhq%2Fhardware-management-extension%40workspace%3Ahardware-management-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=5531aa&locator=%40janhq%2Fhardware-management-extension%40workspace%3Ahardware-management-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/4c53e86e66a5aa291b56a7257a90b31cd06e624d56a1d114d05b2bed46eaa39da5d9ebc5a86131867b2ebda51089b09bdd8a0ed97f329630e1d35d3463e1ba37 + checksum: 10c0/ee7fe21267cf795dba890781d1e7807a6cb3ecb915ce9ecbd3a8386a2ebc916a8b70a775ce5d9d9f74d2ec29e20b65cea4ef6cdd0ea250a8ff2d5e6bd2237b1e languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=704042&locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=5531aa&locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/4c53e86e66a5aa291b56a7257a90b31cd06e624d56a1d114d05b2bed46eaa39da5d9ebc5a86131867b2ebda51089b09bdd8a0ed97f329630e1d35d3463e1ba37 + checksum: 10c0/ee7fe21267cf795dba890781d1e7807a6cb3ecb915ce9ecbd3a8386a2ebc916a8b70a775ce5d9d9f74d2ec29e20b65cea4ef6cdd0ea250a8ff2d5e6bd2237b1e languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=704042&locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=5531aa&locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/4c53e86e66a5aa291b56a7257a90b31cd06e624d56a1d114d05b2bed46eaa39da5d9ebc5a86131867b2ebda51089b09bdd8a0ed97f329630e1d35d3463e1ba37 + checksum: 10c0/ee7fe21267cf795dba890781d1e7807a6cb3ecb915ce9ecbd3a8386a2ebc916a8b70a775ce5d9d9f74d2ec29e20b65cea4ef6cdd0ea250a8ff2d5e6bd2237b1e languageName: node linkType: hard @@ -764,7 +739,6 @@ __metadata: resolution: "@janhq/hardware-management-extension@workspace:hardware-management-extension" dependencies: "@janhq/core": ../../core/package.tgz - cpu-instructions: "npm:^0.0.13" cpx: "npm:^1.5.0" ky: "npm:^1.7.2" p-queue: "npm:^8.0.1" @@ -1092,605 +1066,6 @@ __metadata: languageName: node linkType: hard -"@langchain/community@npm:0.0.13": - version: 0.0.13 - resolution: "@langchain/community@npm:0.0.13" - dependencies: - "@langchain/core": "npm:~0.1.5" - "@langchain/openai": "npm:~0.0.9" - flat: "npm:^5.0.2" - langsmith: "npm:~0.0.48" - uuid: "npm:^9.0.0" - zod: "npm:^3.22.3" - peerDependencies: - "@aws-crypto/sha256-js": ^5.0.0 - "@aws-sdk/client-bedrock-runtime": ^3.422.0 - "@aws-sdk/client-dynamodb": ^3.310.0 - "@aws-sdk/client-kendra": ^3.352.0 - "@aws-sdk/client-lambda": ^3.310.0 - "@aws-sdk/client-sagemaker-runtime": ^3.310.0 - "@aws-sdk/client-sfn": ^3.310.0 - "@aws-sdk/credential-provider-node": ^3.388.0 - "@clickhouse/client": ^0.2.5 - "@cloudflare/ai": ^1.0.12 - "@datastax/astra-db-ts": 0.1.2 - "@elastic/elasticsearch": ^8.4.0 - "@getmetal/metal-sdk": "*" - "@getzep/zep-js": ^0.9.0 - "@gomomento/sdk": ^1.51.1 - "@gomomento/sdk-core": ^1.51.1 - "@google-ai/generativelanguage": ^0.2.1 - "@gradientai/nodejs-sdk": ^1.2.0 - "@huggingface/inference": ^2.6.4 - "@mozilla/readability": "*" - "@opensearch-project/opensearch": "*" - "@pinecone-database/pinecone": ^1.1.0 - "@planetscale/database": ^1.8.0 - "@qdrant/js-client-rest": ^1.2.0 - "@raycast/api": ^1.55.2 - "@rockset/client": ^0.9.1 - "@smithy/eventstream-codec": ^2.0.5 - "@smithy/protocol-http": ^3.0.6 - "@smithy/signature-v4": ^2.0.10 - "@smithy/util-utf8": ^2.0.0 - "@supabase/postgrest-js": ^1.1.1 - "@supabase/supabase-js": ^2.10.0 - "@tensorflow-models/universal-sentence-encoder": "*" - "@tensorflow/tfjs-converter": "*" - "@tensorflow/tfjs-core": "*" - "@upstash/redis": ^1.20.6 - "@vercel/kv": ^0.2.3 - "@vercel/postgres": ^0.5.0 - "@writerai/writer-sdk": ^0.40.2 - "@xata.io/client": ^0.28.0 - "@xenova/transformers": ^2.5.4 - "@zilliz/milvus2-sdk-node": ">=2.2.7" - cassandra-driver: ^4.7.2 - chromadb: "*" - closevector-common: 0.1.0-alpha.1 - closevector-node: 0.1.0-alpha.10 - closevector-web: 0.1.0-alpha.16 - cohere-ai: ">=6.0.0" - convex: ^1.3.1 - discord.js: ^14.14.1 - faiss-node: ^0.5.1 - firebase-admin: ^11.9.0 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - hnswlib-node: ^1.4.2 - html-to-text: ^9.0.5 - ioredis: ^5.3.2 - jsdom: "*" - llmonitor: ^0.5.9 - lodash: ^4.17.21 - mongodb: ^5.2.0 - mysql2: ^3.3.3 - neo4j-driver: "*" - node-llama-cpp: "*" - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.2.1 - portkey-ai: ^0.1.11 - redis: ^4.6.4 - replicate: ^0.18.0 - typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 - vectordb: ^0.1.4 - voy-search: 0.6.2 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - ws: ^8.14.2 - peerDependenciesMeta: - "@aws-crypto/sha256-js": - optional: true - "@aws-sdk/client-bedrock-runtime": - optional: true - "@aws-sdk/client-dynamodb": - optional: true - "@aws-sdk/client-kendra": - optional: true - "@aws-sdk/client-lambda": - optional: true - "@aws-sdk/client-sagemaker-runtime": - optional: true - "@aws-sdk/client-sfn": - optional: true - "@aws-sdk/credential-provider-node": - optional: true - "@clickhouse/client": - optional: true - "@cloudflare/ai": - optional: true - "@datastax/astra-db-ts": - optional: true - "@elastic/elasticsearch": - optional: true - "@getmetal/metal-sdk": - optional: true - "@getzep/zep-js": - optional: true - "@gomomento/sdk": - optional: true - "@gomomento/sdk-core": - optional: true - "@google-ai/generativelanguage": - optional: true - "@gradientai/nodejs-sdk": - optional: true - "@huggingface/inference": - optional: true - "@mozilla/readability": - optional: true - "@opensearch-project/opensearch": - optional: true - "@pinecone-database/pinecone": - optional: true - "@planetscale/database": - optional: true - "@qdrant/js-client-rest": - optional: true - "@raycast/api": - optional: true - "@rockset/client": - optional: true - "@smithy/eventstream-codec": - optional: true - "@smithy/protocol-http": - optional: true - "@smithy/signature-v4": - optional: true - "@smithy/util-utf8": - optional: true - "@supabase/postgrest-js": - optional: true - "@supabase/supabase-js": - optional: true - "@tensorflow-models/universal-sentence-encoder": - optional: true - "@tensorflow/tfjs-converter": - optional: true - "@tensorflow/tfjs-core": - optional: true - "@upstash/redis": - optional: true - "@vercel/kv": - optional: true - "@vercel/postgres": - optional: true - "@writerai/writer-sdk": - optional: true - "@xata.io/client": - optional: true - "@xenova/transformers": - optional: true - "@zilliz/milvus2-sdk-node": - optional: true - cassandra-driver: - optional: true - chromadb: - optional: true - closevector-common: - optional: true - closevector-node: - optional: true - closevector-web: - optional: true - cohere-ai: - optional: true - convex: - optional: true - discord.js: - optional: true - faiss-node: - optional: true - firebase-admin: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - hnswlib-node: - optional: true - html-to-text: - optional: true - ioredis: - optional: true - jsdom: - optional: true - llmonitor: - optional: true - lodash: - optional: true - mongodb: - optional: true - mysql2: - optional: true - neo4j-driver: - optional: true - node-llama-cpp: - optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true - portkey-ai: - optional: true - redis: - optional: true - replicate: - optional: true - typeorm: - optional: true - typesense: - optional: true - usearch: - optional: true - vectordb: - optional: true - voy-search: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - checksum: 10c0/384926b577f9815cd24f2afea175a256d2e4deb09ac767e76daf293689870bef9c4c4bd3909428878b997de6cadd277cf3c585bb3f6f7e0672d57119a31c5b47 - languageName: node - linkType: hard - -"@langchain/community@npm:~0.0.13": - version: 0.0.57 - resolution: "@langchain/community@npm:0.0.57" - dependencies: - "@langchain/core": "npm:~0.1.60" - "@langchain/openai": "npm:~0.0.28" - expr-eval: "npm:^2.0.2" - flat: "npm:^5.0.2" - langsmith: "npm:~0.1.1" - uuid: "npm:^9.0.0" - zod: "npm:^3.22.3" - zod-to-json-schema: "npm:^3.22.5" - peerDependencies: - "@aws-crypto/sha256-js": ^5.0.0 - "@aws-sdk/client-bedrock-agent-runtime": ^3.485.0 - "@aws-sdk/client-bedrock-runtime": ^3.422.0 - "@aws-sdk/client-dynamodb": ^3.310.0 - "@aws-sdk/client-kendra": ^3.352.0 - "@aws-sdk/client-lambda": ^3.310.0 - "@aws-sdk/client-sagemaker-runtime": ^3.310.0 - "@aws-sdk/client-sfn": ^3.310.0 - "@aws-sdk/credential-provider-node": ^3.388.0 - "@azure/search-documents": ^12.0.0 - "@clickhouse/client": ^0.2.5 - "@cloudflare/ai": "*" - "@datastax/astra-db-ts": ^1.0.0 - "@elastic/elasticsearch": ^8.4.0 - "@getmetal/metal-sdk": "*" - "@getzep/zep-js": ^0.9.0 - "@gomomento/sdk": ^1.51.1 - "@gomomento/sdk-core": ^1.51.1 - "@google-ai/generativelanguage": ^0.2.1 - "@gradientai/nodejs-sdk": ^1.2.0 - "@huggingface/inference": ^2.6.4 - "@mlc-ai/web-llm": ^0.2.35 - "@mozilla/readability": "*" - "@neondatabase/serverless": "*" - "@opensearch-project/opensearch": "*" - "@pinecone-database/pinecone": "*" - "@planetscale/database": ^1.8.0 - "@premai/prem-sdk": ^0.3.25 - "@qdrant/js-client-rest": ^1.8.2 - "@raycast/api": ^1.55.2 - "@rockset/client": ^0.9.1 - "@smithy/eventstream-codec": ^2.0.5 - "@smithy/protocol-http": ^3.0.6 - "@smithy/signature-v4": ^2.0.10 - "@smithy/util-utf8": ^2.0.0 - "@supabase/postgrest-js": ^1.1.1 - "@supabase/supabase-js": ^2.10.0 - "@tensorflow-models/universal-sentence-encoder": "*" - "@tensorflow/tfjs-converter": "*" - "@tensorflow/tfjs-core": "*" - "@upstash/redis": ^1.20.6 - "@upstash/vector": ^1.0.7 - "@vercel/kv": ^0.2.3 - "@vercel/postgres": ^0.5.0 - "@writerai/writer-sdk": ^0.40.2 - "@xata.io/client": ^0.28.0 - "@xenova/transformers": ^2.5.4 - "@zilliz/milvus2-sdk-node": ">=2.2.7" - better-sqlite3: ^9.4.0 - cassandra-driver: ^4.7.2 - cborg: ^4.1.1 - chromadb: "*" - closevector-common: 0.1.3 - closevector-node: 0.1.6 - closevector-web: 0.1.6 - cohere-ai: "*" - convex: ^1.3.1 - couchbase: ^4.3.0 - discord.js: ^14.14.1 - dria: ^0.0.3 - duck-duck-scrape: ^2.2.5 - faiss-node: ^0.5.1 - firebase-admin: ^11.9.0 || ^12.0.0 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - hnswlib-node: ^3.0.0 - html-to-text: ^9.0.5 - interface-datastore: ^8.2.11 - ioredis: ^5.3.2 - it-all: ^3.0.4 - jsdom: "*" - jsonwebtoken: ^9.0.2 - llmonitor: ^0.5.9 - lodash: ^4.17.21 - lunary: ^0.6.11 - mongodb: ">=5.2.0" - mysql2: ^3.3.3 - neo4j-driver: "*" - node-llama-cpp: "*" - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.2.1 - portkey-ai: ^0.1.11 - redis: "*" - replicate: ^0.18.0 - typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 - vectordb: ^0.1.4 - voy-search: 0.6.2 - weaviate-ts-client: "*" - web-auth-library: ^1.0.3 - ws: ^8.14.2 - peerDependenciesMeta: - "@aws-crypto/sha256-js": - optional: true - "@aws-sdk/client-bedrock-agent-runtime": - optional: true - "@aws-sdk/client-bedrock-runtime": - optional: true - "@aws-sdk/client-dynamodb": - optional: true - "@aws-sdk/client-kendra": - optional: true - "@aws-sdk/client-lambda": - optional: true - "@aws-sdk/client-sagemaker-runtime": - optional: true - "@aws-sdk/client-sfn": - optional: true - "@aws-sdk/credential-provider-node": - optional: true - "@azure/search-documents": - optional: true - "@clickhouse/client": - optional: true - "@cloudflare/ai": - optional: true - "@datastax/astra-db-ts": - optional: true - "@elastic/elasticsearch": - optional: true - "@getmetal/metal-sdk": - optional: true - "@getzep/zep-js": - optional: true - "@gomomento/sdk": - optional: true - "@gomomento/sdk-core": - optional: true - "@google-ai/generativelanguage": - optional: true - "@gradientai/nodejs-sdk": - optional: true - "@huggingface/inference": - optional: true - "@mlc-ai/web-llm": - optional: true - "@mozilla/readability": - optional: true - "@neondatabase/serverless": - optional: true - "@opensearch-project/opensearch": - optional: true - "@pinecone-database/pinecone": - optional: true - "@planetscale/database": - optional: true - "@premai/prem-sdk": - optional: true - "@qdrant/js-client-rest": - optional: true - "@raycast/api": - optional: true - "@rockset/client": - optional: true - "@smithy/eventstream-codec": - optional: true - "@smithy/protocol-http": - optional: true - "@smithy/signature-v4": - optional: true - "@smithy/util-utf8": - optional: true - "@supabase/postgrest-js": - optional: true - "@supabase/supabase-js": - optional: true - "@tensorflow-models/universal-sentence-encoder": - optional: true - "@tensorflow/tfjs-converter": - optional: true - "@tensorflow/tfjs-core": - optional: true - "@upstash/redis": - optional: true - "@upstash/vector": - optional: true - "@vercel/kv": - optional: true - "@vercel/postgres": - optional: true - "@writerai/writer-sdk": - optional: true - "@xata.io/client": - optional: true - "@xenova/transformers": - optional: true - "@zilliz/milvus2-sdk-node": - optional: true - better-sqlite3: - optional: true - cassandra-driver: - optional: true - cborg: - optional: true - chromadb: - optional: true - closevector-common: - optional: true - closevector-node: - optional: true - closevector-web: - optional: true - cohere-ai: - optional: true - convex: - optional: true - couchbase: - optional: true - discord.js: - optional: true - dria: - optional: true - duck-duck-scrape: - optional: true - faiss-node: - optional: true - firebase-admin: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - hnswlib-node: - optional: true - html-to-text: - optional: true - interface-datastore: - optional: true - ioredis: - optional: true - it-all: - optional: true - jsdom: - optional: true - jsonwebtoken: - optional: true - llmonitor: - optional: true - lodash: - optional: true - lunary: - optional: true - mongodb: - optional: true - mysql2: - optional: true - neo4j-driver: - optional: true - node-llama-cpp: - optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true - portkey-ai: - optional: true - redis: - optional: true - replicate: - optional: true - typeorm: - optional: true - typesense: - optional: true - usearch: - optional: true - vectordb: - optional: true - voy-search: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - checksum: 10c0/7d42470c5c42d97c9e9b4925de3fa8a558d785e2c96c347d4a48f97f6396c64e54f3730340c2d262e09440fc664ef44496a9ce09894e75b2e4362017e6bc478c - languageName: node - linkType: hard - -"@langchain/core@npm:>0.1.56 <0.3.0": - version: 0.2.36 - resolution: "@langchain/core@npm:0.2.36" - dependencies: - ansi-styles: "npm:^5.0.0" - camelcase: "npm:6" - decamelize: "npm:1.2.0" - js-tiktoken: "npm:^1.0.12" - langsmith: "npm:^0.1.56-rc.1" - mustache: "npm:^4.2.0" - p-queue: "npm:^6.6.2" - p-retry: "npm:4" - uuid: "npm:^10.0.0" - zod: "npm:^3.22.4" - zod-to-json-schema: "npm:^3.22.3" - checksum: 10c0/ff49119a295e9605258c5e4fbb0628824f6532937f4f5ca4d141f2f5a10856f3d0890be0fc12b0ebba7ab84d9e66839094780d8e6299f46ddce8751fd8a96d1f - languageName: node - linkType: hard - -"@langchain/core@npm:~0.1.5, @langchain/core@npm:~0.1.60": - version: 0.1.63 - resolution: "@langchain/core@npm:0.1.63" - dependencies: - ansi-styles: "npm:^5.0.0" - camelcase: "npm:6" - decamelize: "npm:1.2.0" - js-tiktoken: "npm:^1.0.12" - langsmith: "npm:~0.1.7" - ml-distance: "npm:^4.0.0" - mustache: "npm:^4.2.0" - p-queue: "npm:^6.6.2" - p-retry: "npm:4" - uuid: "npm:^9.0.0" - zod: "npm:^3.22.4" - zod-to-json-schema: "npm:^3.22.3" - checksum: 10c0/44f8b0846439f55e2137fe150275682978b91cf4c2516320c1a17b3180558c3fb709eafc974d5b23dd356006bed542390f52bc7b5a10f8f4284836556a921614 - languageName: node - linkType: hard - -"@langchain/openai@npm:~0.0.28, @langchain/openai@npm:~0.0.9": - version: 0.0.34 - resolution: "@langchain/openai@npm:0.0.34" - dependencies: - "@langchain/core": "npm:>0.1.56 <0.3.0" - js-tiktoken: "npm:^1.0.12" - openai: "npm:^4.41.1" - zod: "npm:^3.22.4" - zod-to-json-schema: "npm:^3.22.3" - checksum: 10c0/16a909b23340d680f3b1de09a56868b0cf00123e992412287987d39e5bf92c40c4247c7113b491f99a98623d12f1c578c3e874a4011d0af5e57212637ceb6328 - languageName: node - linkType: hard - "@napi-rs/wasm-runtime@npm:^0.2.4": version: 0.2.6 resolution: "@napi-rs/wasm-runtime@npm:0.2.6" @@ -2180,16 +1555,6 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.6.4": - version: 2.6.12 - resolution: "@types/node-fetch@npm:2.6.12" - dependencies: - "@types/node": "npm:*" - form-data: "npm:^4.0.0" - checksum: 10c0/7693acad5499b7df2d1727d46cff092a63896dc04645f36b973dd6dd754a59a7faba76fcb777bdaa35d80625c6a9dd7257cca9c401a4bab03b04480cda7fd1af - languageName: node - linkType: hard - "@types/node@npm:*": version: 22.10.2 resolution: "@types/node@npm:22.10.2" @@ -2199,15 +1564,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.11.18": - version: 18.19.68 - resolution: "@types/node@npm:18.19.68" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/8c7f01be218c6e3c1e643173662af27e9a2b568f36c0fe83e4295cf7674fe2a0abb4a1c5d7c7abd3345b9114581387dfd3f14b6d0338daebdce9273cd7ba59ab - languageName: node - linkType: hard - "@types/node@npm:^20.11.4": version: 20.17.10 resolution: "@types/node@npm:20.17.10" @@ -2224,13 +1580,6 @@ __metadata: languageName: node linkType: hard -"@types/pdf-parse@npm:^1.1.4": - version: 1.1.4 - resolution: "@types/pdf-parse@npm:1.1.4" - checksum: 10c0/1192e0a40bae935428a7f02a56d1313474f0d735820824e1d00f06a0330cf89cc18e34d63864202ae997fbd7806952fa68a47a1f0cbc81f8d03000f942543d5c - languageName: node - linkType: hard - "@types/responselike@npm:^1.0.0": version: 1.0.3 resolution: "@types/responselike@npm:1.0.3" @@ -2240,13 +1589,6 @@ __metadata: languageName: node linkType: hard -"@types/retry@npm:0.12.0": - version: 0.12.0 - resolution: "@types/retry@npm:0.12.0" - checksum: 10c0/7c5c9086369826f569b83a4683661557cab1361bac0897a1cefa1a915ff739acd10ca0d62b01071046fe3f5a3f7f2aec80785fe283b75602dc6726781ea3e328 - languageName: node - linkType: hard - "@types/stack-utils@npm:^2.0.0": version: 2.0.3 resolution: "@types/stack-utils@npm:2.0.3" @@ -2261,20 +1603,6 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:^10.0.0": - version: 10.0.0 - resolution: "@types/uuid@npm:10.0.0" - checksum: 10c0/9a1404bf287164481cb9b97f6bb638f78f955be57c40c6513b7655160beb29df6f84c915aaf4089a1559c216557dc4d2f79b48d978742d3ae10b937420ddac60 - languageName: node - linkType: hard - -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: 10c0/b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 21.0.3 resolution: "@types/yargs-parser@npm:21.0.3" @@ -2460,15 +1788,6 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: "npm:^5.0.0" - checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 - languageName: node - linkType: hard - "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.3 resolution: "agent-base@npm:7.1.3" @@ -2476,15 +1795,6 @@ __metadata: languageName: node linkType: hard -"agentkeepalive@npm:^4.2.1": - version: 4.5.0 - resolution: "agentkeepalive@npm:4.5.0" - dependencies: - humanize-ms: "npm:^1.2.1" - checksum: 10c0/394ea19f9710f230722996e156607f48fdf3a345133b0b1823244b7989426c16019a428b56c82d3eabef616e938812981d9009f4792ecc66bd6a59e991c62612 - languageName: node - linkType: hard - "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -2560,13 +1870,6 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - "arr-diff@npm:^2.0.0": version: 2.0.0 resolution: "arr-diff@npm:2.0.0" @@ -2646,13 +1949,6 @@ __metadata: languageName: node linkType: hard -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d - languageName: node - linkType: hard - "atob@npm:^2.1.2": version: 2.1.2 resolution: "atob@npm:2.1.2" @@ -2758,14 +2054,7 @@ __metadata: languageName: node linkType: hard -"base-64@npm:^0.1.0": - version: 0.1.0 - resolution: "base-64@npm:0.1.0" - checksum: 10c0/fe0dcf076e823f04db7ee9b02495be08a91c445fbc6db03cb9913be9680e2fcc0af8b74459041fe08ad16800b1f65a549501d8f08696a8a6d32880789b7de69d - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf @@ -2794,20 +2083,6 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.2.0": - version: 2.3.0 - resolution: "binary-extensions@npm:2.3.0" - checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 - languageName: node - linkType: hard - -"binary-search@npm:^1.3.5": - version: 1.3.6 - resolution: "binary-search@npm:1.3.6" - checksum: 10c0/786a770e3411cf563c9c7829e2854d79583a207b8faaa5022f93352893e1d06035ae5d80de1b168dcbd9d346fdb0dd2e3d7fcdf309b3a63dc027e92624da32a0 - languageName: node - linkType: hard - "bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" @@ -2827,17 +2102,6 @@ __metadata: languageName: node linkType: hard -"bl@npm:^4.0.3": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: "npm:^5.5.0" - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.4.0" - checksum: 10c0/02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f - languageName: node - linkType: hard - "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -2965,7 +2229,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.2.1, buffer@npm:^5.5.0": +"buffer@npm:^5.2.1": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -3036,13 +2300,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:6, camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 - languageName: node - linkType: hard - "camelcase@npm:^2.0.0": version: 2.1.1 resolution: "camelcase@npm:2.1.1" @@ -3057,6 +2314,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001688": version: 1.0.30001690 resolution: "caniuse-lite@npm:1.0.30001690" @@ -3106,13 +2370,6 @@ __metadata: languageName: node linkType: hard -"charenc@npm:0.0.2": - version: 0.0.2 - resolution: "charenc@npm:0.0.2" - checksum: 10c0/a45ec39363a16799d0f9365c8dd0c78e711415113c6f14787a22462ef451f5013efae8a28f1c058f81fc01f2a6a16955f7a5fd0cd56247ce94a45349c89877d8 - languageName: node - linkType: hard - "check-error@npm:^2.1.1": version: 2.1.1 resolution: "check-error@npm:2.1.1" @@ -3140,13 +2397,6 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^1.1.1": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db - languageName: node - linkType: hard - "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -3231,22 +2481,6 @@ __metadata: languageName: node linkType: hard -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 - languageName: node - linkType: hard - -"commander@npm:^10.0.1": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 10c0/53f33d8927758a911094adadda4b2cbac111a5b377d8706700587650fd8f45b0bbe336de4b5c3fe47fd61f420a3d9bd452b6e0e6e5600a7e74d7bf0174f6efe3 - languageName: node - linkType: hard - "commander@npm:^2.8.1": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -3315,20 +2549,6 @@ __metadata: languageName: node linkType: hard -"cpu-instructions@npm:^0.0.13": - version: 0.0.13 - resolution: "cpu-instructions@npm:0.0.13" - dependencies: - bindings: "npm:^1.5.0" - node-addon-api: "npm:^8.0.0" - node-gyp-build: "npm:^4.8.1" - prebuildify: "npm:^6.0.1" - peerDependencies: - node-gyp: ^10 - checksum: 10c0/60860df7eee1d4f9c7cd710e634c9f0fdb461a5e90ce2a563e691ed23a290eeb9957562bf5149bf72dea8d2ddaacfdc8b0a824754faae8bc397dccc2902839a5 - languageName: node - linkType: hard - "cpx@npm:^1.5.0": version: 1.5.0 resolution: "cpx@npm:1.5.0" @@ -3378,13 +2598,6 @@ __metadata: languageName: node linkType: hard -"crypt@npm:0.0.2": - version: 0.0.2 - resolution: "crypt@npm:0.0.2" - checksum: 10c0/adbf263441dd801665d5425f044647533f39f4612544071b1471962209d235042fb703c27eea2795c7c53e1dfc242405173003f83cf4f4761a633d11f9653f18 - languageName: node - linkType: hard - "currently-unhandled@npm:^0.4.1": version: 0.4.1 resolution: "currently-unhandled@npm:0.4.1" @@ -3415,16 +2628,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.1.0": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a - languageName: node - linkType: hard - -"decamelize@npm:1.2.0, decamelize@npm:^1.1.2": +"decamelize@npm:^1.1.2": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2 @@ -3564,13 +2768,6 @@ __metadata: languageName: node linkType: hard -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 - languageName: node - linkType: hard - "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -3585,16 +2782,6 @@ __metadata: languageName: node linkType: hard -"digest-fetch@npm:^1.3.0": - version: 1.3.0 - resolution: "digest-fetch@npm:1.3.0" - dependencies: - base-64: "npm:^0.1.0" - md5: "npm:^2.3.0" - checksum: 10c0/0fb389e33b9c6baf5e6a9ed287aa9d0d8b373d59b49d49c62c261e1ab24eaaf1d5aea3a105c1b31ba4a23e29e129365d839ce4c5974fa004a85d1a4568bc3585 - languageName: node - linkType: hard - "download-cli@npm:^1.1.1": version: 1.1.1 resolution: "download-cli@npm:1.1.1" @@ -3695,7 +2882,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": +"end-of-stream@npm:^1.0.0": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: @@ -3870,20 +3057,6 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b - languageName: node - linkType: hard - -"eventemitter3@npm:^4.0.4": - version: 4.0.7 - resolution: "eventemitter3@npm:4.0.7" - checksum: 10c0/5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b - languageName: node - linkType: hard - "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" @@ -3975,13 +3148,6 @@ __metadata: languageName: node linkType: hard -"expr-eval@npm:^2.0.2": - version: 2.0.2 - resolution: "expr-eval@npm:2.0.2" - checksum: 10c0/642f112ff28ea34574c595c3ad73ccd8e638498879a4dd28620c4dabebab2e11987a851266ba81883dae85a5800e0c93b3d06f81718b71a215f831534646e4f2 - languageName: node - linkType: hard - "ext-list@npm:^2.0.0": version: 2.2.2 resolution: "ext-list@npm:2.2.2" @@ -4200,15 +3366,6 @@ __metadata: languageName: node linkType: hard -"flat@npm:^5.0.2": - version: 5.0.2 - resolution: "flat@npm:5.0.2" - bin: - flat: cli.js - checksum: 10c0/f178b13482f0cd80c7fede05f4d10585b1f2fdebf26e12edc138e32d3150c6ea6482b7f12813a1091143bad52bb6d3596bca51a162257a21163c0ff438baa5fe - languageName: node - linkType: hard - "for-in@npm:^1.0.1, for-in@npm:^1.0.2": version: 1.0.2 resolution: "for-in@npm:1.0.2" @@ -4235,34 +3392,6 @@ __metadata: languageName: node linkType: hard -"form-data-encoder@npm:1.7.2": - version: 1.7.2 - resolution: "form-data-encoder@npm:1.7.2" - checksum: 10c0/56553768037b6d55d9de524f97fe70555f0e415e781cb56fc457a68263de3d40fadea2304d4beef2d40b1a851269bd7854e42c362107071892cb5238debe9464 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.1 - resolution: "form-data@npm:4.0.1" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - mime-types: "npm:^2.1.12" - checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8 - languageName: node - linkType: hard - -"formdata-node@npm:^4.3.2": - version: 4.4.1 - resolution: "formdata-node@npm:4.4.1" - dependencies: - node-domexception: "npm:1.0.0" - web-streams-polyfill: "npm:4.0.0-beta.3" - checksum: 10c0/74151e7b228ffb33b565cec69182694ad07cc3fdd9126a8240468bb70a8ba66e97e097072b60bcb08729b24c7ce3fd3e0bd7f1f80df6f9f662b9656786e76f6a - languageName: node - linkType: hard - "fragment-cache@npm:^0.2.1": version: 0.2.1 resolution: "fragment-cache@npm:0.2.1" @@ -4575,17 +3704,6 @@ __metadata: languageName: node linkType: hard -"hnswlib-node@npm:^1.4.2": - version: 1.4.2 - resolution: "hnswlib-node@npm:1.4.2" - dependencies: - bindings: "npm:^1.5.0" - node-addon-api: "npm:^6.0.0" - node-gyp: "npm:latest" - checksum: 10c0/562946c2bfa803080f8b5f67e9e7dd519a3ce5bf8de311bb247fd141eaa43a064d70d7ad5f6f85f98f1d78d6970e4ae2912d0a73039f7968328605c14184f953 - languageName: node - linkType: hard - "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -4634,15 +3752,6 @@ __metadata: languageName: node linkType: hard -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: "npm:^2.0.0" - checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a - languageName: node - linkType: hard - "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -4697,7 +3806,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -4730,13 +3839,6 @@ __metadata: languageName: node linkType: hard -"is-any-array@npm:^2.0.0": - version: 2.0.1 - resolution: "is-any-array@npm:2.0.1" - checksum: 10c0/f9807458a51e63ca1ac27fd6f3a3ace8200f077094e00d9b05b24cfbc9d5594d586d6ecf3416271f26939d5cb93fc52ca869cb5744e77318c3f53ec70b08d61f - languageName: node - linkType: hard - "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -4753,7 +3855,7 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:^1.1.5, is-buffer@npm:~1.1.6": +"is-buffer@npm:^1.1.5": version: 1.1.6 resolution: "is-buffer@npm:1.1.6" checksum: 10c0/ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234 @@ -5556,15 +4658,6 @@ __metadata: languageName: node linkType: hard -"js-tiktoken@npm:^1.0.12, js-tiktoken@npm:^1.0.7": - version: 1.0.16 - resolution: "js-tiktoken@npm:1.0.16" - dependencies: - base64-js: "npm:^1.5.1" - checksum: 10c0/9c3b7ff9b675334eb939f97fb83da31bb499b2a34cc7da42ee7c1a72f4286b40d2c78c7dca375eece5cc20c35a00f2b6b343387fa14f2472e615cf09b755cfdd - languageName: node - linkType: hard - "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -5584,17 +4677,6 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f - languageName: node - linkType: hard - "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0" @@ -5627,13 +4709,6 @@ __metadata: languageName: node linkType: hard -"jsonpointer@npm:^5.0.1": - version: 5.0.1 - resolution: "jsonpointer@npm:5.0.1" - checksum: 10c0/89929e58b400fcb96928c0504fcf4fc3f919d81e9543ceb055df125538470ee25290bb4984251e172e6ef8fcc55761eb998c118da763a82051ad89d4cb073fe7 - languageName: node - linkType: hard - "kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": version: 3.2.2 resolution: "kind-of@npm:3.2.2" @@ -5673,227 +4748,6 @@ __metadata: languageName: node linkType: hard -"langchain@npm:^0.0.214": - version: 0.0.214 - resolution: "langchain@npm:0.0.214" - dependencies: - "@anthropic-ai/sdk": "npm:^0.9.1" - "@langchain/community": "npm:~0.0.13" - "@langchain/core": "npm:~0.1.5" - "@langchain/openai": "npm:~0.0.9" - binary-extensions: "npm:^2.2.0" - expr-eval: "npm:^2.0.2" - js-tiktoken: "npm:^1.0.7" - js-yaml: "npm:^4.1.0" - jsonpointer: "npm:^5.0.1" - langchainhub: "npm:~0.0.6" - langsmith: "npm:~0.0.48" - ml-distance: "npm:^4.0.0" - openapi-types: "npm:^12.1.3" - p-retry: "npm:4" - uuid: "npm:^9.0.0" - yaml: "npm:^2.2.1" - zod: "npm:^3.22.3" - zod-to-json-schema: "npm:3.20.3" - peerDependencies: - "@aws-sdk/client-s3": ^3.310.0 - "@aws-sdk/client-sagemaker-runtime": ^3.310.0 - "@aws-sdk/client-sfn": ^3.310.0 - "@aws-sdk/credential-provider-node": ^3.388.0 - "@azure/storage-blob": ^12.15.0 - "@gomomento/sdk": ^1.51.1 - "@gomomento/sdk-core": ^1.51.1 - "@gomomento/sdk-web": ^1.51.1 - "@google-ai/generativelanguage": ^0.2.1 - "@google-cloud/storage": ^6.10.1 - "@notionhq/client": ^2.2.10 - "@pinecone-database/pinecone": ^1.1.0 - "@supabase/supabase-js": ^2.10.0 - "@vercel/kv": ^0.2.3 - "@xata.io/client": ^0.28.0 - apify-client: ^2.7.1 - assemblyai: ^4.0.0 - axios: "*" - cheerio: ^1.0.0-rc.12 - chromadb: "*" - convex: ^1.3.1 - d3-dsv: ^2.0.0 - epub2: ^3.0.1 - fast-xml-parser: ^4.2.7 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - html-to-text: ^9.0.5 - ignore: ^5.2.0 - ioredis: ^5.3.2 - jsdom: "*" - mammoth: ^1.6.0 - mongodb: ^5.2.0 - node-llama-cpp: "*" - notion-to-md: ^3.1.0 - officeparser: ^4.0.4 - pdf-parse: 1.1.1 - peggy: ^3.0.2 - playwright: ^1.32.1 - puppeteer: ^19.7.2 - pyodide: ^0.24.1 - redis: ^4.6.4 - sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.2 - typeorm: ^0.3.12 - vectordb: ^0.1.4 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - ws: ^8.14.2 - youtube-transcript: ^1.0.6 - youtubei.js: ^5.8.0 - peerDependenciesMeta: - "@aws-sdk/client-s3": - optional: true - "@aws-sdk/client-sagemaker-runtime": - optional: true - "@aws-sdk/client-sfn": - optional: true - "@aws-sdk/credential-provider-node": - optional: true - "@azure/storage-blob": - optional: true - "@gomomento/sdk": - optional: true - "@gomomento/sdk-core": - optional: true - "@gomomento/sdk-web": - optional: true - "@google-ai/generativelanguage": - optional: true - "@google-cloud/storage": - optional: true - "@notionhq/client": - optional: true - "@pinecone-database/pinecone": - optional: true - "@supabase/supabase-js": - optional: true - "@vercel/kv": - optional: true - "@xata.io/client": - optional: true - apify-client: - optional: true - assemblyai: - optional: true - axios: - optional: true - cheerio: - optional: true - chromadb: - optional: true - convex: - optional: true - d3-dsv: - optional: true - epub2: - optional: true - faiss-node: - optional: true - fast-xml-parser: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - html-to-text: - optional: true - ignore: - optional: true - ioredis: - optional: true - jsdom: - optional: true - mammoth: - optional: true - mongodb: - optional: true - node-llama-cpp: - optional: true - notion-to-md: - optional: true - officeparser: - optional: true - pdf-parse: - optional: true - peggy: - optional: true - playwright: - optional: true - puppeteer: - optional: true - pyodide: - optional: true - redis: - optional: true - sonix-speech-recognition: - optional: true - srt-parser-2: - optional: true - typeorm: - optional: true - vectordb: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true - checksum: 10c0/4c70acd1d7ad8b999a7fa2b86bba15ebe4de74339cba0028141e03f8d38f08f1ee5369a707a5597044321d36e4bafe72eed95c04ebb410aa7e881e833d87c201 - languageName: node - linkType: hard - -"langchainhub@npm:~0.0.6": - version: 0.0.11 - resolution: "langchainhub@npm:0.0.11" - checksum: 10c0/6ed781b9e8165bfb5cedc822a25bc70df0f3fc02662061d19a5e2044243cfae797857a05d139de8f326539b1f3fe03f2662060eed82669e405181f1f0f435c47 - languageName: node - linkType: hard - -"langsmith@npm:^0.1.56-rc.1, langsmith@npm:~0.1.1, langsmith@npm:~0.1.7": - version: 0.1.68 - resolution: "langsmith@npm:0.1.68" - dependencies: - "@types/uuid": "npm:^10.0.0" - commander: "npm:^10.0.1" - p-queue: "npm:^6.6.2" - p-retry: "npm:4" - semver: "npm:^7.6.3" - uuid: "npm:^10.0.0" - peerDependencies: - openai: "*" - peerDependenciesMeta: - openai: - optional: true - checksum: 10c0/ec5f70155ce7c95f2326a3d38b313c404debe954890c1623aa07be3db25aa3d7f5381267ed5f456a2bd814ab7bdebdf467ad5dc89bbc78bcc74f5a60e93c09c1 - languageName: node - linkType: hard - -"langsmith@npm:~0.0.48": - version: 0.0.70 - resolution: "langsmith@npm:0.0.70" - dependencies: - "@types/uuid": "npm:^9.0.1" - commander: "npm:^10.0.1" - p-queue: "npm:^6.6.2" - p-retry: "npm:4" - uuid: "npm:^9.0.0" - bin: - langsmith: dist/cli/main.cjs - checksum: 10c0/54e35456db842630e9a3b93b372636bf5f0ffce0af1711dd647095d9359650cfac7d5f1a0e13a1b7d691ae1dd4884d9e2e85373883542da50e1339ad3ccd1f34 - languageName: node - linkType: hard - "layerr@npm:^3.0.0": version: 3.0.0 resolution: "layerr@npm:3.0.0" @@ -6076,17 +4930,6 @@ __metadata: languageName: node linkType: hard -"md5@npm:^2.3.0": - version: 2.3.0 - resolution: "md5@npm:2.3.0" - dependencies: - charenc: "npm:0.0.2" - crypt: "npm:0.0.2" - is-buffer: "npm:~1.1.6" - checksum: 10c0/14a21d597d92e5b738255fbe7fe379905b8cb97e0a49d44a20b58526a646ec5518c337b817ce0094ca94d3e81a3313879c4c7b510d250c282d53afbbdede9110 - languageName: node - linkType: hard - "meow@npm:^3.3.0": version: 3.7.0 resolution: "meow@npm:3.7.0" @@ -6164,13 +5007,6 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - "mime-db@npm:^1.28.0": version: 1.53.0 resolution: "mime-db@npm:1.53.0" @@ -6178,15 +5014,6 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -6228,7 +5055,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.1.0, minimist@npm:^1.1.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6": +"minimist@npm:^1.1.0, minimist@npm:^1.1.3, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -6322,13 +5149,6 @@ __metadata: languageName: node linkType: hard -"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": - version: 0.5.3 - resolution: "mkdirp-classic@npm:0.5.3" - checksum: 10c0/95371d831d196960ddc3833cc6907e6b8f67ac5501a6582f47dfae5eb0f092e9f8ce88e0d83afcae95d6e2b61a01741ba03714eeafb6f7a6e9dcc158ac85b168 - languageName: node - linkType: hard - "mkdirp@npm:^0.5.1": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" @@ -6349,52 +5169,6 @@ __metadata: languageName: node linkType: hard -"ml-array-mean@npm:^1.1.6": - version: 1.1.6 - resolution: "ml-array-mean@npm:1.1.6" - dependencies: - ml-array-sum: "npm:^1.1.6" - checksum: 10c0/41ab68308e3472702f775a49c8ab9ee1e678e01cd59dbc59424c0f1017a37df1bb638e702831305f0e6366300eca48353f526773ab8f4d8d142a64d0461f9944 - languageName: node - linkType: hard - -"ml-array-sum@npm:^1.1.6": - version: 1.1.6 - resolution: "ml-array-sum@npm:1.1.6" - dependencies: - is-any-array: "npm:^2.0.0" - checksum: 10c0/fb3973ce2bfa19ab4f5e657f722494425b57025547657d332bf5bafe3e4e7e4bd1e082dfb970bcc0bfa87efa345b80a20a596dbb204be7b4802b52c35fd6cf77 - languageName: node - linkType: hard - -"ml-distance-euclidean@npm:^2.0.0": - version: 2.0.0 - resolution: "ml-distance-euclidean@npm:2.0.0" - checksum: 10c0/877aef472e134f79be9540b02f889b2a27976ca45d77f5d4ef7d8dd24058a60cf4637365b40a5aba1ab5490348a0fb1b3803143b25af88cdc66137fbfd665442 - languageName: node - linkType: hard - -"ml-distance@npm:^4.0.0": - version: 4.0.1 - resolution: "ml-distance@npm:4.0.1" - dependencies: - ml-array-mean: "npm:^1.1.6" - ml-distance-euclidean: "npm:^2.0.0" - ml-tree-similarity: "npm:^1.0.0" - checksum: 10c0/8c2eb077d2ba61437f2414f3b9ca1091c43fcabe2282ecc31d8ebf9e083c1df068e43c67f59a4674e7c8f473201ace4f02779b446427d6169a5d669cae94c816 - languageName: node - linkType: hard - -"ml-tree-similarity@npm:^1.0.0": - version: 1.0.0 - resolution: "ml-tree-similarity@npm:1.0.0" - dependencies: - binary-search: "npm:^1.3.5" - num-sort: "npm:^2.0.0" - checksum: 10c0/e3ecd07bead5d18bc7b6fed1dfefbe65aea4008d5556181b94b7d70550fba543d2501b224f12a9f5197c1d23d95faef2accc7fd265c5afd15ef55a38190ffc6e - languageName: node - linkType: hard - "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -6402,22 +5176,13 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 languageName: node linkType: hard -"mustache@npm:^4.2.0": - version: 4.2.0 - resolution: "mustache@npm:4.2.0" - bin: - mustache: bin/mustache - checksum: 10c0/1f8197e8a19e63645a786581d58c41df7853da26702dbc005193e2437c98ca49b255345c173d50c08fe4b4dbb363e53cb655ecc570791f8deb09887248dd34a2 - languageName: node - linkType: hard - "nan@npm:^2.12.1": version: 2.22.0 resolution: "nan@npm:2.22.0" @@ -6469,73 +5234,7 @@ __metadata: languageName: node linkType: hard -"node-abi@npm:^3.3.0": - version: 3.71.0 - resolution: "node-abi@npm:3.71.0" - dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/dbd0792ea729329cd9d099f28a5681ff9e8a6db48cf64e1437bf6a7fd669009d1e758a784619a1c4cc8bfd1ed17162f042c787654edf19a1f64b5018457c9c1f - languageName: node - linkType: hard - -"node-addon-api@npm:^6.0.0": - version: 6.1.0 - resolution: "node-addon-api@npm:6.1.0" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/d2699c4ad15740fd31482a3b6fca789af7723ab9d393adc6ac45250faaee72edad8f0b10b2b9d087df0de93f1bdc16d97afdd179b26b9ebc9ed68b569faa4bac - languageName: node - linkType: hard - -"node-addon-api@npm:^8.0.0": - version: 8.3.0 - resolution: "node-addon-api@npm:8.3.0" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/0ed4206cb68921b33fc637c6f7ffcb91fcde85aea88ea60fadb7b0537bf177226a5600584eac9db2aff93600041d42796fb20576b3299b9be6ff7539592b2180 - languageName: node - linkType: hard - -"node-domexception@npm:1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b - languageName: node - linkType: hard - -"node-ensure@npm:^0.0.0": - version: 0.0.0 - resolution: "node-ensure@npm:0.0.0" - checksum: 10c0/7af391aee024a8b7df77c239ed8b90417e3f2539824fa06b60f243ce14c75ee455766464c7c3ba9407d5b1e4d1d74ed5cf5f8af10c67b0fc05aa6e29f5d2462b - languageName: node - linkType: hard - -"node-fetch@npm:^2.6.7": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 - languageName: node - linkType: hard - -"node-gyp-build@npm:^4.8.1": - version: 4.8.4 - resolution: "node-gyp-build@npm:4.8.4" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: 10c0/444e189907ece2081fe60e75368784f7782cfddb554b60123743dfb89509df89f1f29c03bbfa16b3a3e0be3f48799a4783f487da6203245fa5bed239ba7407e1 - languageName: node - linkType: hard - -"node-gyp@npm:^11.0.0, node-gyp@npm:latest": +"node-gyp@npm:latest": version: 11.0.0 resolution: "node-gyp@npm:11.0.0" dependencies: @@ -6618,15 +5317,6 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^3.1.0": - version: 3.1.0 - resolution: "npm-run-path@npm:3.1.0" - dependencies: - path-key: "npm:^3.0.0" - checksum: 10c0/8399f01239e9a5bf5a10bddbc71ecac97e0b7890e5b78abe9731fc759db48865b0686cc86ec079cd254a98ba119a3fa08f1b23f9de1a5428c19007bbc7b5a728 - languageName: node - linkType: hard - "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -6636,13 +5326,6 @@ __metadata: languageName: node linkType: hard -"num-sort@npm:^2.0.0": - version: 2.1.0 - resolution: "num-sort@npm:2.1.0" - checksum: 10c0/cc1d43adbc9adfd5d208a8eb653827277376ff2e6eb75379f96e6a23d481040e317e63505e075b84ce49e19b9d960570646096428a715d12c5ef1381504d5135 - languageName: node - linkType: hard - "object-assign@npm:^4.0.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -6689,7 +5372,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": +"once@npm:^1.3.0, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -6707,35 +5390,6 @@ __metadata: languageName: node linkType: hard -"openai@npm:^4.41.1": - version: 4.77.0 - resolution: "openai@npm:4.77.0" - dependencies: - "@types/node": "npm:^18.11.18" - "@types/node-fetch": "npm:^2.6.4" - abort-controller: "npm:^3.0.0" - agentkeepalive: "npm:^4.2.1" - form-data-encoder: "npm:1.7.2" - formdata-node: "npm:^4.3.2" - node-fetch: "npm:^2.6.7" - peerDependencies: - zod: ^3.23.8 - peerDependenciesMeta: - zod: - optional: true - bin: - openai: bin/cli - checksum: 10c0/438e5acbcdc592ff192f294e936c10a8b71edf898b53afacb937da45f8d4e221e041bfcc84d6174c8dcb9ed4080b32760f8d94de1fcec7ab889046f1e1173f68 - languageName: node - linkType: hard - -"openapi-types@npm:^12.1.3": - version: 12.1.3 - resolution: "openapi-types@npm:12.1.3" - checksum: 10c0/4ad4eb91ea834c237edfa6ab31394e87e00c888fc2918009763389c00d02342345195d6f302d61c3fd807f17723cd48df29b47b538b68375b3827b3758cd520f - languageName: node - linkType: hard - "p-cancelable@npm:^0.3.0": version: 0.3.0 resolution: "p-cancelable@npm:0.3.0" @@ -6793,16 +5447,6 @@ __metadata: languageName: node linkType: hard -"p-queue@npm:^6.6.2": - version: 6.6.2 - resolution: "p-queue@npm:6.6.2" - dependencies: - eventemitter3: "npm:^4.0.4" - p-timeout: "npm:^3.2.0" - checksum: 10c0/5739ecf5806bbeadf8e463793d5e3004d08bb3f6177bd1a44a005da8fd81bb90f80e4633e1fb6f1dfd35ee663a5c0229abe26aebb36f547ad5a858347c7b0d3e - languageName: node - linkType: hard - "p-queue@npm:^8.0.1": version: 8.0.1 resolution: "p-queue@npm:8.0.1" @@ -6813,16 +5457,6 @@ __metadata: languageName: node linkType: hard -"p-retry@npm:4": - version: 4.6.2 - resolution: "p-retry@npm:4.6.2" - dependencies: - "@types/retry": "npm:0.12.0" - retry: "npm:^0.13.1" - checksum: 10c0/d58512f120f1590cfedb4c2e0c42cb3fa66f3cea8a4646632fcb834c56055bb7a6f138aa57b20cc236fb207c9d694e362e0b5c2b14d9b062f67e8925580c73b0 - languageName: node - linkType: hard - "p-timeout@npm:^1.1.1": version: 1.2.1 resolution: "p-timeout@npm:1.2.1" @@ -6832,15 +5466,6 @@ __metadata: languageName: node linkType: hard -"p-timeout@npm:^3.2.0": - version: 3.2.0 - resolution: "p-timeout@npm:3.2.0" - dependencies: - p-finally: "npm:^1.0.0" - checksum: 10c0/524b393711a6ba8e1d48137c5924749f29c93d70b671e6db761afa784726572ca06149c715632da8f70c090073afb2af1c05730303f915604fd38ee207b70a61 - languageName: node - linkType: hard - "p-timeout@npm:^6.1.2": version: 6.1.3 resolution: "p-timeout@npm:6.1.3" @@ -6974,16 +5599,6 @@ __metadata: languageName: node linkType: hard -"pdf-parse@npm:^1.1.1": - version: 1.1.1 - resolution: "pdf-parse@npm:1.1.1" - dependencies: - debug: "npm:^3.1.0" - node-ensure: "npm:^0.0.0" - checksum: 10c0/cba2b6ddfbfa73d94ff0cd342cbe8ef2ef0501863ada687eddf99487a4d06766e00fc44525c40cef3b01f04376cb99d5873ab789bd3e2379a28c3ae5377f3298 - languageName: node - linkType: hard - "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -7069,22 +5684,6 @@ __metadata: languageName: node linkType: hard -"prebuildify@npm:^6.0.1": - version: 6.0.1 - resolution: "prebuildify@npm:6.0.1" - dependencies: - minimist: "npm:^1.2.5" - mkdirp-classic: "npm:^0.5.3" - node-abi: "npm:^3.3.0" - npm-run-path: "npm:^3.1.0" - pump: "npm:^3.0.0" - tar-fs: "npm:^2.1.0" - bin: - prebuildify: bin.js - checksum: 10c0/869a02fefe17ac5263194fa16db903640eeaaf2af68d52957016dbcfff6718cdf7909f3146bb420d39653f06d19edf9770a461226682304f743b9ddbb49c14a3 - languageName: node - linkType: hard - "prepend-http@npm:^1.0.1": version: 1.0.4 resolution: "prepend-http@npm:1.0.4" @@ -7151,16 +5750,6 @@ __metadata: languageName: node linkType: hard -"pump@npm:^3.0.0": - version: 3.0.2 - resolution: "pump@npm:3.0.2" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f - languageName: node - linkType: hard - "pure-rand@npm:^6.0.0": version: 6.1.0 resolution: "pure-rand@npm:6.1.0" @@ -7222,17 +5811,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 - languageName: node - linkType: hard - "readdirp@npm:^2.0.0": version: 2.2.1 resolution: "readdirp@npm:2.2.1" @@ -7387,13 +5965,6 @@ __metadata: languageName: node linkType: hard -"retry@npm:^0.13.1": - version: 0.13.1 - resolution: "retry@npm:0.13.1" - checksum: 10c0/9ae822ee19db2163497e074ea919780b1efa00431d197c7afdb950e42bf109196774b92a49fc9821f0b8b328a98eea6017410bfc5e8a0fc19c85c6d11adb3772 - languageName: node - linkType: hard - "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -7619,7 +6190,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -8029,15 +6600,6 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d - languageName: node - linkType: hard - "string_decoder@npm:~1.1.1": version: 1.1.1 resolution: "string_decoder@npm:1.1.1" @@ -8165,18 +6727,6 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:^2.1.0": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" - dependencies: - chownr: "npm:^1.1.1" - mkdirp-classic: "npm:^0.5.2" - pump: "npm:^3.0.0" - tar-stream: "npm:^2.1.4" - checksum: 10c0/871d26a934bfb7beeae4c4d8a09689f530b565f79bd0cf489823ff0efa3705da01278160da10bb006d1a793fa0425cf316cec029b32a9159eacbeaff4965fb6d - languageName: node - linkType: hard - "tar-stream@npm:^1.5.2": version: 1.6.2 resolution: "tar-stream@npm:1.6.2" @@ -8192,19 +6742,6 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^2.1.4": - version: 2.2.0 - resolution: "tar-stream@npm:2.2.0" - dependencies: - bl: "npm:^4.0.3" - end-of-stream: "npm:^1.4.1" - fs-constants: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^3.1.1" - checksum: 10c0/2f4c910b3ee7196502e1ff015a7ba321ec6ea837667220d7bcb8d0852d51cb04b87f7ae471008a6fb8f5b1a1b5078f62f3a82d30c706f20ada1238ac797e7692 - languageName: node - linkType: hard - "tar@npm:^7.4.3": version: 7.4.3 resolution: "tar@npm:7.4.3" @@ -8333,13 +6870,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 - languageName: node - linkType: hard - "trim-newlines@npm:^1.0.0": version: 1.0.0 resolution: "trim-newlines@npm:1.0.0" @@ -8498,13 +7028,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 - languageName: node - linkType: hard - "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" @@ -8603,31 +7126,13 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 languageName: node linkType: hard -"uuid@npm:^10.0.0": - version: 10.0.0 - resolution: "uuid@npm:10.0.0" - bin: - uuid: dist/bin/uuid - checksum: 10c0/eab18c27fe4ab9fb9709a5d5f40119b45f2ec8314f8d4cf12ce27e4c6f4ffa4a6321dc7db6c515068fa373c075b49691ba969f0010bf37f44c37ca40cd6bf7fe - languageName: node - linkType: hard - -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -8846,37 +7351,6 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:4.0.0-beta.3": - version: 4.0.0-beta.3 - resolution: "web-streams-polyfill@npm:4.0.0-beta.3" - checksum: 10c0/a9596779db2766990117ed3a158e0b0e9f69b887a6d6ba0779940259e95f99dc3922e534acc3e5a117b5f5905300f527d6fbf8a9f0957faf1d8e585ce3452e8e - languageName: node - linkType: hard - -"web-streams-polyfill@npm:^3.2.1": - version: 3.3.3 - resolution: "web-streams-polyfill@npm:3.3.3" - checksum: 10c0/64e855c47f6c8330b5436147db1c75cb7e7474d924166800e8e2aab5eb6c76aac4981a84261dd2982b3e754490900b99791c80ae1407a9fa0dcff74f82ea3a7f - languageName: node - linkType: hard - -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: "npm:~0.0.3" - webidl-conversions: "npm:^3.0.0" - checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 - languageName: node - linkType: hard - "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -8985,15 +7459,6 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.2.1": - version: 2.6.1 - resolution: "yaml@npm:2.6.1" - bin: - yaml: bin.mjs - checksum: 10c0/aebf07f61c72b38c74d2b60c3a3ccf89ee4da45bcd94b2bfb7899ba07a5257625a7c9f717c65a6fc511563d48001e01deb1d9e55f0133f3e2edf86039c8c1be7 - languageName: node - linkType: hard - "yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" @@ -9033,25 +7498,7 @@ __metadata: languageName: node linkType: hard -"zod-to-json-schema@npm:3.20.3": - version: 3.20.3 - resolution: "zod-to-json-schema@npm:3.20.3" - peerDependencies: - zod: ^3.20.0 - checksum: 10c0/02e343df79936323482fd153c4e4ab68c0ced02fc2fdd8711cb6b21d158179e44202aa490c66bcd0bece99080fcd4ca5993d08a7bf2dcf4dcff2502239c5e6a0 - languageName: node - linkType: hard - -"zod-to-json-schema@npm:^3.22.3, zod-to-json-schema@npm:^3.22.5": - version: 3.24.1 - resolution: "zod-to-json-schema@npm:3.24.1" - peerDependencies: - zod: ^3.24.1 - checksum: 10c0/dd4e72085003e41a3f532bd00061f27041418a4eb176aa6ce33042db08d141bd37707017ee9117d97738ae3f22fc3e1404ea44e6354634ac5da79d7d3173b4ee - languageName: node - linkType: hard - -"zod@npm:^3.22.3, zod@npm:^3.22.4, zod@npm:^3.23.8": +"zod@npm:^3.23.8": version: 3.24.1 resolution: "zod@npm:3.24.1" checksum: 10c0/0223d21dbaa15d8928fe0da3b54696391d8e3e1e2d0283a1a070b5980a1dbba945ce631c2d1eccc088fdbad0f2dfa40155590bf83732d3ac4fcca2cc9237591b diff --git a/package.json b/package.json index dcbf93831..d434e5cb8 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "core", "electron", "web", + "web-app", "server" ] }, @@ -20,7 +21,7 @@ "copy:assets:tauri": "cpx \"pre-install/*.tgz\" \"src-tauri/resources/pre-install/\" && cpx \"themes/**\" \"src-tauri/resources/themes\"", "dev:electron": "yarn copy:assets && yarn workspace jan dev", "dev:web:standalone": "concurrently \"yarn workspace @janhq/web dev\" \"wait-on http://localhost:3000 && rsync -av --prune-empty-dirs --include '*/' --include 'dist/***' --include 'package.json' --include 'tsconfig.json' --exclude '*' ./extensions/ web/.next/static/extensions/\"", - "dev:web": "yarn workspace @janhq/web dev", + "dev:web": "yarn workspace @janhq/web-app dev", "dev:server": "yarn workspace @janhq/server dev", "dev": "concurrently -n \"NEXT,ELECTRON\" -c \"yellow,blue\" --kill-others \"yarn dev:web\" \"yarn dev:electron\"", "install:cortex:linux:darwin": "cd src-tauri/binaries && ./download.sh", @@ -34,7 +35,7 @@ "build:icon": "tauri icon ./src-tauri/icons/icon.png", "build:server": "cd server && yarn build", "build:core": "cd core && yarn build && yarn pack", - "build:web": "yarn workspace @janhq/web build && cpx \"web/out/**\" \"electron/renderer/\"", + "build:web": "yarn workspace @janhq/web-app build", "build:electron": "yarn copy:assets && yarn workspace jan build", "build:electron:test": "yarn workspace jan build:test", "build:extensions": "rimraf ./pre-install/*.tgz || true && yarn workspace @janhq/core build && cd extensions && yarn install && yarn workspaces foreach -Apt run build:publish", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 5ed527678..01a7f3030 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -19,11 +19,12 @@ tauri-build = { version = "2.0.2", features = [] } serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } log = "0.4" -tauri = { version = "2.1.0", features = [ "protocol-asset", "macos-private-api", +tauri = { version = "2.4.0", features = [ "protocol-asset", "macos-private-api", "test", ] } tauri-plugin-log = "2.0.0-rc" tauri-plugin-shell = "2.2.0" +tauri-plugin-os = "2.2.1" flate2 = "1.0" tar = "0.4" rand = "0.8" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index fd73a02b3..9bf874d1a 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -9,9 +9,14 @@ "permissions": [ "core:default", "core:window:allow-start-dragging", + "core:window:allow-set-theme", "shell:allow-spawn", "shell:allow-open", + "core:app:allow-set-app-theme", + "core:window:allow-set-focus", + "os:default", "log:default", + "core:webview:allow-create-webview-window", { "identifier": "http:default", "allow": [ diff --git a/src-tauri/capabilities/logs-window.json b/src-tauri/capabilities/logs-window.json new file mode 100644 index 000000000..ef56e6f75 --- /dev/null +++ b/src-tauri/capabilities/logs-window.json @@ -0,0 +1,14 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "logs-window", + "description": "enables permissions for the logs window", + "windows": ["logs-window-local-api-server"], + "permissions": [ + "core:default", + "core:window:allow-start-dragging", + "core:window:allow-set-theme", + "log:default", + "core:webview:allow-create-webview-window", + "core:window:allow-set-focus" + ] +} diff --git a/src-tauri/src/core/fs.rs b/src-tauri/src/core/fs.rs index 66486cf0a..b633f965b 100644 --- a/src-tauri/src/core/fs.rs +++ b/src-tauri/src/core/fs.rs @@ -50,6 +50,27 @@ pub fn exists_sync( Ok(path.exists()) } +#[tauri::command] +pub fn file_stat( + app_handle: tauri::AppHandle, + args: String, +) -> Result { + if args.is_empty() { + return Err("file_stat error: Invalid argument".to_string()); + } + + let path = resolve_path(app_handle, &args); + let metadata = fs::metadata(&path).map_err(|e| e.to_string())?; + let is_directory = metadata.is_dir(); + let file_size = if is_directory { 0 } else { metadata.len() }; + // return { isDirectory, fileSize } object + let result = format!( + "{{\"isDirectory\": {}, \"fileSize\": {}}}", + is_directory, file_size + ); + Ok(result) +} + #[tauri::command] pub fn read_file_sync( app_handle: tauri::AppHandle, diff --git a/src-tauri/src/core/setup.rs b/src-tauri/src/core/setup.rs index d70af1c70..4001fac19 100644 --- a/src-tauri/src/core/setup.rs +++ b/src-tauri/src/core/setup.rs @@ -33,9 +33,6 @@ pub fn install_extensions(app: tauri::AppHandle, force: bool) -> Result<(), Stri .clone() .unwrap_or_else(|| "".to_string()); - if !force && stored_version == app_version { - return Ok(()); - } let extensions_path = get_jan_extensions_path(app.clone()); let pre_install_path = app .path() @@ -44,6 +41,16 @@ pub fn install_extensions(app: tauri::AppHandle, force: bool) -> Result<(), Stri .join("resources") .join("pre-install"); + let mut clean_up = force; + + // Check CLEAN environment variable to optionally skip extension install + if std::env::var("CLEAN").is_ok() { + clean_up = true; + } + if !clean_up && stored_version == app_version && extensions_path.exists() { + return Ok(()); + } + // Attempt to remove extensions folder if extensions_path.exists() { fs::remove_dir_all(&extensions_path).unwrap_or_else(|_| { @@ -51,10 +58,6 @@ pub fn install_extensions(app: tauri::AppHandle, force: bool) -> Result<(), Stri }); } - if !force { - return Ok(()); - }; - // Attempt to create it again if !extensions_path.exists() { fs::create_dir_all(&extensions_path).map_err(|e| e.to_string())?; @@ -197,7 +200,9 @@ pub fn setup_mcp(app: &App) { if let Err(e) = run_mcp_commands(app_path_str, servers).await { log::error!("Failed to run mcp commands: {}", e); } - app_handle.emit("mcp-update", "MCP servers updated").unwrap(); + app_handle + .emit("mcp-update", "MCP servers updated") + .unwrap(); }); } @@ -217,7 +222,7 @@ pub fn setup_sidecar(app: &App) -> Result<(), String> { "--cors", "ON", "--allowed_origins", - "http://localhost:3000,tauri://localhost,http://tauri.localhost", + "http://localhost:3000,http://localhost:1420", "config", "--api_keys", app_state.inner().app_token.as_deref().unwrap_or(""), diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index afe5dc735..0709a6a2a 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -14,6 +14,7 @@ use reqwest::blocking::Client; #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() + .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_http::init()) .plugin(tauri_plugin_store::Builder::new().build()) .plugin(tauri_plugin_shell::init()) @@ -25,6 +26,7 @@ pub fn run() { core::fs::readdir_sync, core::fs::read_file_sync, core::fs::rm, + core::fs::file_stat, // App commands core::cmd::get_themes, core::cmd::get_app_configurations, diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 35e7b1fa5..add04d07b 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -4,8 +4,8 @@ "version": "0.5.16", "identifier": "jan.ai.app", "build": { - "frontendDist": "../web/out", - "devUrl": "http://localhost:3000", + "frontendDist": "../web-app/dist", + "devUrl": "http://localhost:1420", "beforeDevCommand": "cross-env IS_TAURI=true yarn dev:web", "beforeBuildCommand": "cross-env IS_TAURI=true yarn build:web" }, @@ -13,22 +13,25 @@ "macOSPrivateApi": true, "windows": [ { + "label": "main", "title": "Jan", "width": 1024, - "height": 768, + "height": 800, "resizable": true, "fullscreen": false, + "center": true, "hiddenTitle": true, "transparent": true, + "trafficLightPosition": { + "x": 12, + "y": 22 + }, + "decorations": true, "titleBarStyle": "Overlay", "windowEffects": { - "effects": [ - "fullScreenUI", - "mica", - "blur", - "acrylic" - ], - "state": "active" + "effects": ["fullScreenUI", "mica", "blur", "acrylic"], + "state": "active", + "radius": 8 } } ], @@ -55,6 +58,10 @@ } }, "plugins": { + "os": { + "version": "latest", + "resolve": true + }, "updater": { "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDJFNDEzMEVCMUEzNUFENDQKUldSRXJUVWE2ekJCTGc1Mm1BVXgrWmtES3huUlBFR0lCdG5qbWFvMzgyNDhGN3VTTko5Q1NtTW0K", "endpoints": [ diff --git a/web-app/.gitignore b/web-app/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/web-app/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/web-app/README.md b/web-app/README.md new file mode 100644 index 000000000..40ede56ea --- /dev/null +++ b/web-app/README.md @@ -0,0 +1,54 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default tseslint.config({ + extends: [ + // Remove ...tseslint.configs.recommended and replace with this + ...tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + ...tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + ...tseslint.configs.stylisticTypeChecked, + ], + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default tseslint.config({ + plugins: { + // Add the react-x and react-dom plugins + 'react-x': reactX, + 'react-dom': reactDom, + }, + rules: { + // other rules... + // Enable its recommended typescript rules + ...reactX.configs['recommended-typescript'].rules, + ...reactDom.configs.recommended.rules, + }, +}) +``` diff --git a/web-app/components.json b/web-app/components.json new file mode 100644 index 000000000..73afbdbcc --- /dev/null +++ b/web-app/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/web-app/eslint.config.js b/web-app/eslint.config.js new file mode 100644 index 000000000..092408a9f --- /dev/null +++ b/web-app/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/web-app/index.html b/web-app/index.html new file mode 100644 index 000000000..e4b78eae1 --- /dev/null +++ b/web-app/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/web-app/package.json b/web-app/package.json new file mode 100644 index 000000000..06bb5bfc0 --- /dev/null +++ b/web-app/package.json @@ -0,0 +1,87 @@ +{ + "name": "@janhq/web-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@janhq/core": "link:../core", + "@radix-ui/react-accordion": "^1.2.10", + "@radix-ui/react-dialog": "^1.1.11", + "@radix-ui/react-dropdown-menu": "^2.1.11", + "@radix-ui/react-hover-card": "^1.1.11", + "@radix-ui/react-popover": "^1.1.13", + "@radix-ui/react-progress": "^1.1.4", + "@radix-ui/react-slider": "^1.3.2", + "@radix-ui/react-slot": "^1.2.0", + "@radix-ui/react-switch": "^1.2.2", + "@radix-ui/react-tooltip": "^1.2.4", + "@tabler/icons-react": "^3.31.0", + "@tailwindcss/vite": "^4.1.4", + "@tanstack/react-router": "^1.116.0", + "@tanstack/react-router-devtools": "^1.116.0", + "@tauri-apps/api": "^2.5.0", + "@tauri-apps/plugin-os": "^2.2.1", + "@types/react-syntax-highlighter": "^15.5.13", + "@types/uuid": "^10.0.0", + "@uiw/react-textarea-code-editor": "^3.1.1", + "class-variance-authority": "^0.7.1", + "culori": "^4.0.1", + "fuse.js": "^7.1.0", + "i18next": "^25.0.1", + "katex": "^0.16.22", + "lodash.debounce": "^4.0.8", + "lucide-react": "^0.503.0", + "motion": "^12.10.5", + "next-themes": "^0.4.6", + "react": "^19.0.0", + "react-colorful": "^5.6.1", + "react-dom": "^19.0.0", + "react-i18next": "^15.5.1", + "react-markdown": "^10.1.0", + "react-syntax-highlighter": "^15.6.1", + "react-syntax-highlighter-virtualized-renderer": "^1.1.0", + "react-textarea-autosize": "^8.5.9", + "rehype-katex": "^7.0.1", + "rehype-raw": "^7.0.0", + "remark-emoji": "^5.0.1", + "remark-gfm": "^4.0.1", + "remark-math": "^6.0.0", + "sonner": "^2.0.3", + "tailwindcss": "^4.1.4", + "token.js": "npm:token.js-fork@0.7.5", + "tw-animate-css": "^1.2.7", + "ulidx": "^2.4.1", + "unified": "^11.0.5", + "uuid": "^11.1.0", + "zustand": "^5.0.3" + }, + "devDependencies": { + "@eslint/js": "^9.22.0", + "@tanstack/router-plugin": "^1.116.1", + "@types/culori": "^2.1.1", + "@types/lodash.debounce": "^4", + "@types/node": "^22.14.1", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "clsx": "^2.1.1", + "eslint": "^9.22.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "tailwind-merge": "^3.2.0", + "typescript": "~5.7.2", + "typescript-eslint": "^8.26.1", + "vite": "^6.3.0", + "vite-plugin-node-polyfills": "^0.23.0" + } +} diff --git a/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Regular.otf b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Regular.otf new file mode 100644 index 000000000..778c9025d Binary files /dev/null and b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Regular.otf differ diff --git a/web-app/public/fonts/PPEditorialNew/PPEditorialNew-RegularItalic.otf b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-RegularItalic.otf new file mode 100644 index 000000000..d20c33a63 Binary files /dev/null and b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-RegularItalic.otf differ diff --git a/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Ultrabold.otf b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Ultrabold.otf new file mode 100644 index 000000000..507b09150 Binary files /dev/null and b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Ultrabold.otf differ diff --git a/web-app/public/fonts/PPEditorialNew/PPEditorialNew-UltraboldItalic.otf b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-UltraboldItalic.otf new file mode 100644 index 000000000..58282cceb Binary files /dev/null and b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-UltraboldItalic.otf differ diff --git a/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Ultralight.otf b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Ultralight.otf new file mode 100644 index 000000000..59addeb80 Binary files /dev/null and b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-Ultralight.otf differ diff --git a/web-app/public/fonts/PPEditorialNew/PPEditorialNew-UltralightItalic.otf b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-UltralightItalic.otf new file mode 100644 index 000000000..d3e636b53 Binary files /dev/null and b/web-app/public/fonts/PPEditorialNew/PPEditorialNew-UltralightItalic.otf differ diff --git a/web-app/public/images/model-provider/anthropic.svg b/web-app/public/images/model-provider/anthropic.svg new file mode 100644 index 000000000..1f3f18dcf --- /dev/null +++ b/web-app/public/images/model-provider/anthropic.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web-app/public/images/model-provider/cohere.svg b/web-app/public/images/model-provider/cohere.svg new file mode 100644 index 000000000..0ff4f0029 --- /dev/null +++ b/web-app/public/images/model-provider/cohere.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web-app/public/images/model-provider/cortex.svg b/web-app/public/images/model-provider/cortex.svg new file mode 100644 index 000000000..c0ebd58bf --- /dev/null +++ b/web-app/public/images/model-provider/cortex.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/web-app/public/images/model-provider/deepseek.svg b/web-app/public/images/model-provider/deepseek.svg new file mode 100644 index 000000000..6f4b775d3 --- /dev/null +++ b/web-app/public/images/model-provider/deepseek.svg @@ -0,0 +1,25 @@ + + + + +Created with Pixso. + + diff --git a/web-app/public/images/model-provider/dot.svg b/web-app/public/images/model-provider/dot.svg new file mode 100644 index 000000000..f667c20b1 --- /dev/null +++ b/web-app/public/images/model-provider/dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/web-app/public/images/model-provider/gemini.svg b/web-app/public/images/model-provider/gemini.svg new file mode 100644 index 000000000..787c83710 --- /dev/null +++ b/web-app/public/images/model-provider/gemini.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web-app/public/images/model-provider/google-gemini.svg b/web-app/public/images/model-provider/google-gemini.svg new file mode 100644 index 000000000..787c83710 --- /dev/null +++ b/web-app/public/images/model-provider/google-gemini.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web-app/public/images/model-provider/google.svg b/web-app/public/images/model-provider/google.svg new file mode 100644 index 000000000..1c44dd330 --- /dev/null +++ b/web-app/public/images/model-provider/google.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web-app/public/images/model-provider/groq.svg b/web-app/public/images/model-provider/groq.svg new file mode 100644 index 000000000..9c2e0a34a --- /dev/null +++ b/web-app/public/images/model-provider/groq.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web-app/public/images/model-provider/hugging-face.svg b/web-app/public/images/model-provider/hugging-face.svg new file mode 100644 index 000000000..9ac72080a --- /dev/null +++ b/web-app/public/images/model-provider/hugging-face.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/web-app/public/images/model-provider/llamacpp.svg b/web-app/public/images/model-provider/llamacpp.svg new file mode 100644 index 000000000..b54b58925 --- /dev/null +++ b/web-app/public/images/model-provider/llamacpp.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web-app/public/images/model-provider/martian.svg b/web-app/public/images/model-provider/martian.svg new file mode 100644 index 000000000..b5ceacdf8 --- /dev/null +++ b/web-app/public/images/model-provider/martian.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/web-app/public/images/model-provider/meta.svg b/web-app/public/images/model-provider/meta.svg new file mode 100644 index 000000000..91bdf9783 --- /dev/null +++ b/web-app/public/images/model-provider/meta.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web-app/public/images/model-provider/mistral.svg b/web-app/public/images/model-provider/mistral.svg new file mode 100644 index 000000000..22233c55c --- /dev/null +++ b/web-app/public/images/model-provider/mistral.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web-app/public/images/model-provider/nitro.svg b/web-app/public/images/model-provider/nitro.svg new file mode 100644 index 000000000..775517a75 --- /dev/null +++ b/web-app/public/images/model-provider/nitro.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/web-app/public/images/model-provider/nvidia.svg b/web-app/public/images/model-provider/nvidia.svg new file mode 100644 index 000000000..09c2194ec --- /dev/null +++ b/web-app/public/images/model-provider/nvidia.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/web-app/public/images/model-provider/openRouter.svg b/web-app/public/images/model-provider/openRouter.svg new file mode 100644 index 000000000..62ff2b424 --- /dev/null +++ b/web-app/public/images/model-provider/openRouter.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/web-app/public/images/model-provider/openai.svg b/web-app/public/images/model-provider/openai.svg new file mode 100644 index 000000000..8f0785415 --- /dev/null +++ b/web-app/public/images/model-provider/openai.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web-app/public/images/model-provider/send.svg b/web-app/public/images/model-provider/send.svg new file mode 100644 index 000000000..28d30299f --- /dev/null +++ b/web-app/public/images/model-provider/send.svg @@ -0,0 +1,3 @@ + + + diff --git a/web-app/src/components/ui/button.tsx b/web-app/src/components/ui/button.tsx new file mode 100644 index 000000000..fc78d306b --- /dev/null +++ b/web-app/src/components/ui/button.tsx @@ -0,0 +1,53 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva, type VariantProps } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer", + { + variants: { + variant: { + default: 'bg-primary text-primary-fg shadow-xs hover:bg-primary/90', + destructive: + 'bg-destructive shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive-fg', + link: 'underline-offset-4 hover:underline', + }, + size: { + default: 'h-7 px-3 py-2 has-[>svg]:px-3 rounded-sm', + sm: 'h-6 rounded gap-1.5 px-2 has-[>svg]:px-2.5', + lg: 'h-9 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-8', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + } +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<'button'> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : 'button' + + return ( + + ) +} + +// eslint-disable-next-line react-refresh/only-export-components +export { Button, buttonVariants } diff --git a/web-app/src/components/ui/dialog.tsx b/web-app/src/components/ui/dialog.tsx new file mode 100644 index 000000000..cb2391c81 --- /dev/null +++ b/web-app/src/components/ui/dialog.tsx @@ -0,0 +1,133 @@ +import * as React from 'react' +import * as DialogPrimitive from '@radix-ui/react-dialog' +import { XIcon } from 'lucide-react' + +import { cn } from '@/lib/utils' + +function Dialog({ + ...props +}: React.ComponentProps) { + return +} + +function DialogTrigger({ + ...props +}: React.ComponentProps) { + return +} + +function DialogPortal({ + ...props +}: React.ComponentProps) { + return +} + +function DialogClose({ + ...props +}: React.ComponentProps) { + return +} + +function DialogOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DialogContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + {children} + + + Close + + + + ) +} + +function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function DialogFooter({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function DialogTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DialogDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogOverlay, + DialogPortal, + DialogTitle, + DialogTrigger, +} diff --git a/web-app/src/components/ui/dropdown-menu.tsx b/web-app/src/components/ui/dropdown-menu.tsx new file mode 100644 index 000000000..aaf562d13 --- /dev/null +++ b/web-app/src/components/ui/dropdown-menu.tsx @@ -0,0 +1,250 @@ +import * as React from 'react' +import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu' +import { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react' + +import { cn } from '@/lib/utils' + +function DropdownMenu({ + ...props +}: React.ComponentProps) { + return +} + +function DropdownMenuPortal({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DropdownMenuTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DropdownMenuContent({ + className, + sideOffset = 4, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function DropdownMenuGroup({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DropdownMenuItem({ + className, + inset, + ...props +}: React.ComponentProps & { + inset?: boolean +}) { + return ( + + ) +} + +function DropdownMenuCheckboxItem({ + className, + children, + checked, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function DropdownMenuRadioGroup({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DropdownMenuRadioItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function DropdownMenuLabel({ + className, + inset, + ...props +}: React.ComponentProps & { + inset?: boolean +}) { + return ( + + ) +} + +function DropdownMenuSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DropdownMenuShortcut({ + className, + ...props +}: React.ComponentProps<'span'>) { + return ( + + ) +} + +function DropdownMenuSub({ + ...props +}: React.ComponentProps) { + return +} + +function DropdownMenuSubTrigger({ + className, + inset, + children, + ...props +}: React.ComponentProps & { + inset?: boolean +}) { + return ( + + {children} + + + ) +} + +function DropdownMenuSubContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { + DropdownMenu, + DropdownMenuPortal, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuLabel, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuSub, + DropdownMenuSubTrigger, + DropdownMenuSubContent, +} diff --git a/web-app/src/components/ui/hover-card.tsx b/web-app/src/components/ui/hover-card.tsx new file mode 100644 index 000000000..00236b08a --- /dev/null +++ b/web-app/src/components/ui/hover-card.tsx @@ -0,0 +1,42 @@ +import * as React from 'react' +import * as HoverCardPrimitive from '@radix-ui/react-hover-card' + +import { cn } from '@/lib/utils' + +function HoverCard({ + ...props +}: React.ComponentProps) { + return +} + +function HoverCardTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function HoverCardContent({ + className, + align = 'center', + sideOffset = 4, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { HoverCard, HoverCardTrigger, HoverCardContent } diff --git a/web-app/src/components/ui/input.tsx b/web-app/src/components/ui/input.tsx new file mode 100644 index 000000000..1d7dd9120 --- /dev/null +++ b/web-app/src/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +function Input({ className, type, ...props }: React.ComponentProps<'input'>) { + return ( + + ) +} + +export { Input } diff --git a/web-app/src/components/ui/popover.tsx b/web-app/src/components/ui/popover.tsx new file mode 100644 index 000000000..01aeb7580 --- /dev/null +++ b/web-app/src/components/ui/popover.tsx @@ -0,0 +1,46 @@ +import * as React from 'react' +import * as PopoverPrimitive from '@radix-ui/react-popover' + +import { cn } from '@/lib/utils' + +function Popover({ + ...props +}: React.ComponentProps) { + return +} + +function PopoverTrigger({ + ...props +}: React.ComponentProps) { + return +} + +function PopoverContent({ + className, + align = 'center', + sideOffset = 4, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function PopoverAnchor({ + ...props +}: React.ComponentProps) { + return +} + +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/web-app/src/components/ui/progress.tsx b/web-app/src/components/ui/progress.tsx new file mode 100644 index 000000000..e8b378c97 --- /dev/null +++ b/web-app/src/components/ui/progress.tsx @@ -0,0 +1,29 @@ +import * as React from 'react' +import * as ProgressPrimitive from '@radix-ui/react-progress' + +import { cn } from '@/lib/utils' + +function Progress({ + className, + value, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { Progress } diff --git a/web-app/src/components/ui/sheet.tsx b/web-app/src/components/ui/sheet.tsx new file mode 100644 index 000000000..bc09f428d --- /dev/null +++ b/web-app/src/components/ui/sheet.tsx @@ -0,0 +1,137 @@ +import * as React from 'react' +import * as SheetPrimitive from '@radix-ui/react-dialog' +import { XIcon } from 'lucide-react' + +import { cn } from '@/lib/utils' + +function Sheet({ ...props }: React.ComponentProps) { + return +} + +function SheetTrigger({ + ...props +}: React.ComponentProps) { + return +} + +function SheetClose({ + ...props +}: React.ComponentProps) { + return +} + +function SheetPortal({ + ...props +}: React.ComponentProps) { + return +} + +function SheetOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SheetContent({ + className, + children, + side = 'right', + ...props +}: React.ComponentProps & { + side?: 'top' | 'right' | 'bottom' | 'left' +}) { + return ( + + + + {children} + + + Close + + + + ) +} + +function SheetHeader({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function SheetFooter({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function SheetTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SheetDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { + Sheet, + SheetTrigger, + SheetClose, + SheetContent, + SheetHeader, + SheetFooter, + SheetTitle, + SheetDescription, +} diff --git a/web-app/src/components/ui/slider.tsx b/web-app/src/components/ui/slider.tsx new file mode 100644 index 000000000..74c8ebe05 --- /dev/null +++ b/web-app/src/components/ui/slider.tsx @@ -0,0 +1,61 @@ +import * as React from 'react' +import * as SliderPrimitive from '@radix-ui/react-slider' + +import { cn } from '@/lib/utils' + +function Slider({ + className, + defaultValue, + value, + min = 0, + max = 100, + ...props +}: React.ComponentProps) { + const _values = React.useMemo( + () => + Array.isArray(value) + ? value + : Array.isArray(defaultValue) + ? defaultValue + : [min, max], + [value, defaultValue, min, max] + ) + + return ( + + + + + {Array.from({ length: _values.length }, (_, index) => ( + + ))} + + ) +} + +export { Slider } diff --git a/web-app/src/components/ui/sonner.tsx b/web-app/src/components/ui/sonner.tsx new file mode 100644 index 000000000..ea7312970 --- /dev/null +++ b/web-app/src/components/ui/sonner.tsx @@ -0,0 +1,20 @@ +import { Toaster as Sonner, ToasterProps } from 'sonner' + +const Toaster = ({ ...props }: ToasterProps) => { + return ( + + ) +} + +export { Toaster } diff --git a/web-app/src/components/ui/switch.tsx b/web-app/src/components/ui/switch.tsx new file mode 100644 index 000000000..866d5d88e --- /dev/null +++ b/web-app/src/components/ui/switch.tsx @@ -0,0 +1,29 @@ +import * as React from 'react' +import * as SwitchPrimitive from '@radix-ui/react-switch' + +import { cn } from '@/lib/utils' + +function Switch({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { Switch } diff --git a/web-app/src/components/ui/textarea.tsx b/web-app/src/components/ui/textarea.tsx new file mode 100644 index 000000000..fbe9d8f32 --- /dev/null +++ b/web-app/src/components/ui/textarea.tsx @@ -0,0 +1,19 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) { + return ( +