diff --git a/src/compute/pnpm-lock.yaml b/src/compute/pnpm-lock.yaml index 2eea7010d4..b76e26231a 100644 --- a/src/compute/pnpm-lock.yaml +++ b/src/compute/pnpm-lock.yaml @@ -61,8 +61,8 @@ importers: specifier: ^18.16.14 version: 18.16.14 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.7.3 + version: 5.7.3 packages: @@ -259,8 +259,8 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} hasBin: true @@ -486,7 +486,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - typescript@5.6.3: {} + typescript@5.7.3: {} util-deprecate@1.0.2: {} diff --git a/src/packages/backend/sha1.test.ts b/src/packages/backend/sha1.test.ts index fa5ce1fa35..1404ce3bad 100644 --- a/src/packages/backend/sha1.test.ts +++ b/src/packages/backend/sha1.test.ts @@ -1,19 +1,31 @@ import { sha1, uuidsha1 } from "./sha1"; +const cocalc = "CoCalc"; +const hash = "c898c97dca68742a5a6331f9fa0ca02483cbfd25"; +const uuid = "c898c97d-ca68-4742-a5a6-331f9fa0ca02"; + describe("compute some sha1 hashes", () => { - it("computes sha1 hash of old SageMathCloud", () => { + it("SageMathCloud/string", () => { expect(sha1("SageMathCloud")).toBe( - "31acd8ca91346abcf6a49d2b1d88333f439d57a6" + "31acd8ca91346abcf6a49d2b1d88333f439d57a6", ); }); - it("computes sha1 hash of new CoCalc", () => { - expect(sha1("CoCalc")).toBe("c898c97dca68742a5a6331f9fa0ca02483cbfd25"); + it("CoCalc/string", () => { + expect(sha1(cocalc)).toBe(hash); + }); + + it("CoCalc/Buffer", () => { + expect(sha1(Buffer.from(cocalc))).toBe(hash); }); }); -describe("compute some uuids", () => { - it("computes uuid associated to 'CoCalc'", () => { - expect(uuidsha1("CoCalc")).toBe("c898c97d-ca68-4742-a5a6-331f9fa0ca02"); +describe("UUIDs", () => { + it("CoCalc/string", () => { + expect(uuidsha1(cocalc)).toBe(uuid); + }); + + it("CoCalc/Buffer", () => { + expect(uuidsha1(Buffer.from(cocalc))).toBe(uuid); }); }); diff --git a/src/packages/frontend/account/public-paths/public-paths.tsx b/src/packages/frontend/account/public-paths/public-paths.tsx index 057b99a8da..4b3810fe3f 100644 --- a/src/packages/frontend/account/public-paths/public-paths.tsx +++ b/src/packages/frontend/account/public-paths/public-paths.tsx @@ -6,6 +6,7 @@ import { Alert, Button, Checkbox, Space, Spin, Table } from "antd"; import { join } from "path"; import { FormattedMessage, useIntl } from "react-intl"; + import { React, redux, @@ -298,7 +299,7 @@ function ComputeImage({ compute_image, project_id, path, setError }) { <> { setSelectedImage(img); diff --git a/src/packages/frontend/app/verify-email-banner.tsx b/src/packages/frontend/app/verify-email-banner.tsx index eea5343f5c..c29b870565 100644 --- a/src/packages/frontend/app/verify-email-banner.tsx +++ b/src/packages/frontend/app/verify-email-banner.tsx @@ -75,7 +75,7 @@ export function VerifyEmail() { {email}}}`} values={{ sent, diff --git a/src/packages/frontend/codemirror/css.js b/src/packages/frontend/codemirror/css.js index 50ab62462d..276ae1449d 100644 --- a/src/packages/frontend/codemirror/css.js +++ b/src/packages/frontend/codemirror/css.js @@ -6,9 +6,12 @@ require("codemirror/lib/codemirror.css"); require("codemirror/theme/3024-day.css"); require("codemirror/theme/3024-night.css"); +require("codemirror/theme/abbott.css"); require("codemirror/theme/abcdef.css"); //require('codemirror/theme/ambiance-mobile.css') # doesn't highlight python, confusing require("codemirror/theme/ambiance.css"); +require("codemirror/theme/ayu-dark.css"); +require("codemirror/theme/ayu-mirage.css"); require("codemirror/theme/base16-dark.css"); require("codemirror/theme/base16-light.css"); require("codemirror/theme/bespin.css"); @@ -27,9 +30,13 @@ require("codemirror/theme/hopscotch.css"); require("codemirror/theme/icecoder.css"); require("codemirror/theme/idea.css"); require("codemirror/theme/isotope.css"); +require("codemirror/theme/juejin.css"); require("codemirror/theme/lesser-dark.css"); require("codemirror/theme/liquibyte.css"); require("codemirror/theme/lucario.css"); +require("codemirror/theme/material-darker.css"); +require("codemirror/theme/material-ocean.css"); +require("codemirror/theme/material-palenight.css"); require("codemirror/theme/material.css"); require("codemirror/theme/mbo.css"); require("codemirror/theme/mdn-like.css"); @@ -58,6 +65,7 @@ require("codemirror/theme/vibrant-ink.css"); require("codemirror/theme/xq-dark.css"); require("codemirror/theme/xq-light.css"); require("codemirror/theme/yeti.css"); +require("codemirror/theme/yonce.css"); require("codemirror/theme/zenburn.css"); require("./mode/mediawiki/mediawiki.css"); diff --git a/src/packages/frontend/components/password.tsx b/src/packages/frontend/components/password.tsx index 7ea903efda..8336658fc5 100644 --- a/src/packages/frontend/components/password.tsx +++ b/src/packages/frontend/components/password.tsx @@ -3,14 +3,14 @@ This is like Antd's Input.Password but the input does NOT have type='password' The motivation is that we want to store lots of information in admin config that is displayed like a password, i.e., hidden by default, but if you have -an input with type='password', then your password manager may aggresively +an input with type='password', then your password manager may aggressively autofill your password into these fields, thus leaking your personal top secret password... which is VERY VERY VERY BAD. If you really are actually creating a react component to enter the usual password, e.g., a sign in page, then use antd's Input.Password, not this. -NOTE: A huge advantage of this is that we have another component here +NOTE: A huge advantage of this is that we have another component here PasswordTextArea that works like a multiline text area, but also allows hiding the input like a password, which is somethign that Input.Password doesn't provide, as is useful for any secret config that is multiline, diff --git a/src/packages/frontend/cspell.json b/src/packages/frontend/cspell.json new file mode 100644 index 0000000000..957bf5d174 --- /dev/null +++ b/src/packages/frontend/cspell.json @@ -0,0 +1,44 @@ +{ + "version": "0.2", + "language": "en", + "enabled": true, + "words": [ + "CoCalc", + "dplyr", + "ggplot", + "ipywidgets", + "katex", + "kucalc", + "mathjax", + "nbconvert", + "nbgrader", + "nbviewer", + "Ollama", + "onprem", + "plotly", + "rereturn", + "respawns", + "Rmarkdown", + "Sagemath", + "sagews", + "syncdb", + "syncstring", + "timetravel", + "undelete", + "undeleting" + ], + "ignoreWords": [ + "antd", + "ipynb", + "kernelspec", + "mistralai", + "Popconfirm", + "vertexai", + "vfill" + ], + "flagWords": [], + "ignorePaths": ["node_modules/**", "dist/**", "dist-ts/**", "build/**"], + "allowCompoundWords": false, + "ignoreRegExpList": ["/import\\s+.*?\\s+from\\s+['\"].*?['\"]/g"], + "import": ["@cspell/dict-typescript/cspell-ext.json"] +} diff --git a/src/packages/frontend/custom-software/selector.tsx b/src/packages/frontend/custom-software/selector.tsx index 0a53403d36..247637e0be 100644 --- a/src/packages/frontend/custom-software/selector.tsx +++ b/src/packages/frontend/custom-software/selector.tsx @@ -3,8 +3,12 @@ * License: MS-RSL – see LICENSE.md for details */ -import { Col, Row, Alert, Button, Divider, List, Radio } from "antd"; +// cSpell:ignore descr disp dflt + +import { Alert, Button, Col, Divider, List, Radio, Row } from "antd"; import { join } from "path"; +import { FormattedMessage, useIntl } from "react-intl"; + import { CSS, React, @@ -27,6 +31,7 @@ import { SiteName, } from "@cocalc/frontend/customize"; import { appBasePath } from "@cocalc/frontend/customize/app-base-path"; +import { labels } from "@cocalc/frontend/i18n"; import { ComputeImageSelector } from "@cocalc/frontend/project/settings/compute-image-selector"; import { KUCALC_COCALC_COM } from "@cocalc/util/db-schema/site-defaults"; import { unreachable } from "@cocalc/util/misc"; @@ -101,7 +106,7 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { "compute_images", "images", ); - + const intl = useIntl(); const customize_kucalc = useTypedRedux("customize", "kucalc"); const onCoCalcCom = customize_kucalc === KUCALC_COCALC_COM; const customize_software = useTypedRedux("customize", "software"); @@ -152,7 +157,7 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { } else { // must be standard image const img = software_images.get(default_image); - const display = img != null ? (img.get("title") ?? "") : ""; + const display = img != null ? img.get("title") ?? "" : ""; set_state(default_image, display, "standard"); } }, []); @@ -242,21 +247,26 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { - The selected custom software environment stays with the - project. Create a new project to work in a different software - environment. You can always{" "} - - copy files between projects - {" "} - as well. - - } + message={intl.formatMessage( + { + id: "custom-software.selector.message", + defaultMessage: `The selected custom software environment stays with the project. + Create a new project to work in a different software environment. + You can always copy files between projects as well. + `, + }, + { + A: (c) => ( + + {c} + + ), + }, + )} /> ); @@ -324,15 +334,18 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { return ( <> - Select the software enviornment. Either go with the default - environment, or select one of the more specialized ones. Whatever you - pick, you can change it later in Project Settings → Control → Software - Environment at any time. + { const display = software_images.get(img)?.get("title"); @@ -345,9 +358,15 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { - You've selected a non-standard image:{" "} + {intl.formatMessage({ + id: "custom-software.selector.non-standard", + defaultMessage: + "You selected a non-standard software environment", + })} + :{" "} } @@ -497,7 +516,7 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { return ( { const display = software_images.get(img)?.get("title"); @@ -513,7 +532,9 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { function render_type_selection() { return ( <> - {showTitle ?
Software environment
: undefined} + {showTitle ? ( +
{intl.formatMessage(labels.software_environment)}
+ ) : undefined} {onCoCalcCom ? (
@@ -532,7 +553,7 @@ export const SoftwareEnvironment: React.FC = (props: Props) => { if (image_type === "default") return; return ( - Configuration + {intl.formatMessage(labels.configuration)} ); } diff --git a/src/packages/frontend/i18n/common.ts b/src/packages/frontend/i18n/common.ts index 479f9fefb8..96295b5eab 100644 --- a/src/packages/frontend/i18n/common.ts +++ b/src/packages/frontend/i18n/common.ts @@ -5,6 +5,8 @@ import { defineMessages } from "react-intl"; +// cSpell:ignore noconf collabs nostop + export const labels = defineMessages({ unique_id_is_missing: { defaultMessage: "unique id missing", @@ -34,7 +36,7 @@ export const labels = defineMessages({ on: { id: "labels.on", defaultMessage: "on", - description: "single word, somthing 'on' something else", + description: "single word, something 'on' something else", }, project: { id: "labels.project", @@ -81,17 +83,17 @@ export const labels = defineMessages({ description: "Label for Account/Last name:", }, account_password: { - id: "labels.acconut.password", + id: "labels.account.password", defaultMessage: "Password", description: "The label of the password field", }, account_password_change: { - id: "labels.acconut.password.change", + id: "labels.account.password.change", defaultMessage: "Change Password", description: "Button label for changing the password", }, account_password_forgot: { - id: "labels.acconut.password.forgot", + id: "labels.account.password.forgot", defaultMessage: "Forgot Password?", description: "Label on link to reset password", }, @@ -142,7 +144,10 @@ export const labels = defineMessages({ }, preferences: { id: "labels.preferences", defaultMessage: "Preferences" }, purchases: { id: "labels.purchases", defaultMessage: "Purchases" }, - subscriptions: { id: "labels.subscriptons", defaultMessage: "Subscriptions" }, + subscriptions: { + id: "labels.subscriptions", + defaultMessage: "Subscriptions", + }, statements: { id: "labels.statements", defaultMessage: "Statements", @@ -304,13 +309,13 @@ export const labels = defineMessages({ id: "labels.ai_generate_label", defaultMessage: "Help me write...", description: - "Label on the menu enty to open the AI Assistant for generating documents", + "Label on the menu entry to open the AI Assistant for generating documents", }, ai_generate_title: { id: "labels.ai_generate_title", defaultMessage: "Create a new file with the help of AI", description: - "Tooltip on the menu enty to open the AI Assistant for generating documents", + "Tooltip on the menu entry to open the AI Assistant for generating documents", }, stop: { id: "labels.stop", @@ -623,7 +628,7 @@ export const labels = defineMessages({ description: "Short label for showing 'more information' about something", }, message_plural: { - id: "labels.messsage.plural", + id: "labels.message.plural", defaultMessage: "{num, plural, one {message} other {messages}}", }, reconnect: { @@ -639,11 +644,11 @@ export const labels = defineMessages({ defaultMessage: "Config", }, configuration: { - id: "labels.configuraion", + id: "labels.configuration", defaultMessage: "Configuration", }, configuration_short: { - id: "labels.configuraion.short", + id: "labels.configuration.short", defaultMessage: "Config", }, title: { @@ -670,6 +675,12 @@ export const labels = defineMessages({ id: "labels.nbgrader", defaultMessage: "NBgrader", }, + name: { id: "labels.name", defaultMessage: "Name" }, + description: { id: "labels.description", defaultMessage: "Description" }, + no_description: { + id: "labels.no_description", + defaultMessage: "no description", + }, software: { id: "labels.software", defaultMessage: "Software", diff --git a/src/packages/frontend/i18n/trans/ar_EG.json b/src/packages/frontend/i18n/trans/ar_EG.json index 38e44d9ba3..c2aa5b78ee 100644 --- a/src/packages/frontend/i18n/trans/ar_EG.json +++ b/src/packages/frontend/i18n/trans/ar_EG.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(غير متاح)", "custom-software.reset-bar.info": "

النقر على \"إعادة تعيين\" ينسخ جميع الملفات المصاحبة لبيئة البرمجيات المخصصة هذه إلى دليل المنزل الخاص بك. تم تنفيذ ذلك مرة واحدة عند إنشاء هذا المشروع ويمكنك تكرار هذا الإجراء الآن. إذا تم تحديث هذه الملفات المصاحبة المستضافة على {NAME} في هذه الأثناء، ستتلقى الإصدارات الأحدث.

لاحظ أن هذا سيؤدي إلى الكتابة فوق أي تغييرات قمت بها على هذه الملفات المصاحبة، ولكنه لن يعدل أو يحذف أي ملفات أخرى. ومع ذلك، لن يُفقد شيء: لا يزال بإمكانك الوصول إلى الإصدار السابق عبر النسخ الاحتياطية السريعة أو السفر عبر الزمن.

سيؤدي هذا الإجراء أيضًا إلى إعادة تشغيل مشروعك!

", "custom-software.reset-bar.reset-and-restart": "إعادة التعيين وإعادة التشغيل", + "custom-software.selector.explanation": "اختر بيئة البرمجيات. يمكنك إما اختيار البيئة الافتراضية، أو اختيار واحدة من البيئات الأكثر تخصصًا. مهما كان اختيارك، يمكنك تغييره لاحقًا في إعدادات المشروع → التحكم → بيئة البرمجيات في أي وقت.", + "custom-software.selector.message": "يبقى البيئة البرمجية المخصصة المختارة مع المشروع. قم بإنشاء مشروع جديد للعمل في بيئة برمجية مختلفة. يمكنك دائمًا نسخ الملفات بين المشاريع أيضًا.", + "custom-software.selector.non-standard": "لقد اخترت بيئة برمجيات غير قياسية", "customize.footer.name": "{name} بواسطة {organizationName}", "customize.footer.system-status": "حالة النظام", "editor.build_control_and_log.title": "البناء والتحكم والسجل", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "في انتظار توفر معلومات الخادم...", "labels.about": "عن", "labels.absolute": "مطلق", - "labels.acconut.password": "كلمة المرور", - "labels.acconut.password.change": "تغيير كلمة المرور", - "labels.acconut.password.forgot": "هل نسيت كلمة المرور؟", "labels.account": "الحساب", "labels.account.first_name": "الاسم الأول", "labels.account.language_tooltip": "تغيير لغة واجهة المستخدم", "labels.account.last_name": "الاسم الأخير", + "labels.account.password": "كلمة المرور", + "labels.account.password.change": "تغيير كلمة المرور", + "labels.account.password.forgot": "هل نسيت كلمة المرور؟", "labels.activity": "النشاط", "labels.admin": "مسؤول", "labels.ai_generate_label": "ساعدني في الكتابة...", @@ -887,8 +890,8 @@ "labels.code_folding": "طي الكود", "labels.color": "لون", "labels.config": "الإعدادات", - "labels.configuraion": "تكوين", - "labels.configuraion.short": "الإعدادات", + "labels.configuration": "التكوين", + "labels.configuration.short": "الإعدادات", "labels.connecting": "الاتصال", "labels.connection": "الاتصال", "labels.copied": "تم النسخ", @@ -902,6 +905,7 @@ "labels.delete": "حذف", "labels.delete_forever": "احذف نهائياً", "labels.deleted": "محذوف", + "labels.description": "الوصف", "labels.disconnected": "غير متصل", "labels.documentation": "التوثيق", "labels.download": "تنزيل", @@ -939,6 +943,7 @@ "labels.loading": "جار التحميل...", "labels.log": "تسجيل", "labels.masked_files": "{masked, select, true {إخفاء الملفات المخفية} other {إظهار الملفات المخفية}}. الملفات المخفية هي ملفات تم إنشاؤها تلقائيًا أو ملفات مؤقتة، ولا يُقصد تحريرها. ستكون باللون الرمادي.", + "labels.message.plural": "{num, plural, one {رسالة} other {رسائل}}", "labels.messages": "رسائل", "labels.messages.all_messages": "جميع الرسائل", "labels.messages.archive": "أرشيف", @@ -951,14 +956,15 @@ "labels.messages.to": "إلى", "labels.messages.to_inbox": "إلى الوارد", "labels.messages.unread": "غير مقروء", - "labels.messsage.plural": "{num, plural, one {رسالة} other {رسائل}}", "labels.more_info": "مزيد من المعلومات", "labels.moved": "نُقل", "labels.n_of_m": "{n} من {m}", + "labels.name": "الاسم", "labels.nbgrader": "NBgrader", "labels.new_dots": "جديد...", "labels.new.file": "جديد", "labels.new.file.tooltip": "إنشاء ملف جديد", + "labels.no_description": "لا يوجد وصف", "labels.not_implemented": "لم يتم التنفيذ", "labels.notifications": "الإشعارات", "labels.on": "على", @@ -1015,7 +1021,7 @@ "labels.statements": "البيانات", "labels.status": "الحالة", "labels.stop": "توقف", - "labels.subscriptons": "الاشتراكات", + "labels.subscriptions": "الاشتراكات", "labels.support": "الدعم", "labels.tabs": "علامات التبويب", "labels.terminal": "طرفية", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "صورة (اختياري)", "project.settings.about-box.name.label": "الاسم (اختياري)", "project.settings.about-box.title.label": "العنوان", + "project.settings.compute-image-selector.button.save-restart": "حفظ وإعادة التشغيل", + "project.settings.compute-image-selector.doubt": "{default, select, true {هذا هو الاختيار الافتراضي} other {ملاحظة: في حالة الشك، اختر \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "يوفر بيئة البرامج المختارة كل البرامج التي يمكن لهذا المشروع استخدامها. إذا كنت بحاجة إلى برامج إضافية، يمكنك إما تثبيتها في المشروع أو الاتصال بالدعم. تعرف على تثبيت حزم Python، نواة Python Jupyter، حزم R و حزم Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "تعرف على المزيد حول البيئات المحددة في مخزون البرامج. تتوفر لقطات مما كان متاحًا في نقطة زمنية محددة لكل خط من البيئات. يتم تحديث البيئة الافتراضية الحالية فقط بانتظام.", "project.settings.control.cpu_usage.info": "استخدمت {cpu_str} من وقت وحدة المعالجة المركزية منذ بدء المشروع", "project.settings.control.cpu_usage.label": "استخدام وحدة المعالجة المركزية", "project.settings.control.idle_timeout.always_running.info": "سيتم تشغيل المشروع تلقائيًا إذا توقف لأي سبب (سيقوم بتشغيل أي برامج تهيئة).", diff --git a/src/packages/frontend/i18n/trans/de_DE.json b/src/packages/frontend/i18n/trans/de_DE.json index a9e8b68e9d..5d2975f210 100644 --- a/src/packages/frontend/i18n/trans/de_DE.json +++ b/src/packages/frontend/i18n/trans/de_DE.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(nicht verfügbar)", "custom-software.reset-bar.info": "

Durch Klicken auf \"Zurücksetzen\" werden alle begleitenden Dateien dieser benutzerdefinierten Softwareumgebung in Ihr Home-Verzeichnis kopiert. Dies wurde einmal beim Erstellen dieses Projekts durchgeführt und Sie können diese Aktion jetzt wiederholen. Falls diese begleitenden Dateien, die auf {NAME} gehostet sind, zwischenzeitlich aktualisiert wurden, erhalten Sie die neueren Versionen.

Beachten Sie, dass dadurch alle Änderungen, die Sie an diesen begleitenden Dateien vorgenommen haben, überschrieben werden, aber keine anderen Dateien geändert oder gelöscht werden. Allerdings geht nichts verloren: Sie können auf die vorherige Version weiterhin über Snapshot Backups oder TimeTravel zugreifen.

Diese Aktion wird auch Ihr Projekt neu starten!

", "custom-software.reset-bar.reset-and-restart": "Zurücksetzen und Neustarten", + "custom-software.selector.explanation": "Wählen Sie die Softwareumgebung aus. Entweder wählen Sie die Standardumgebung oder eine der spezialisierteren. Unabhängig von Ihrer Wahl können Sie diese später jederzeit in den Projekteinstellungen → Steuerung → Softwareumgebung ändern.", + "custom-software.selector.message": "Die ausgewählte benutzerdefinierte Softwareumgebung bleibt beim Projekt. Erstellen Sie ein neues Projekt, um in einer anderen Softwareumgebung zu arbeiten. Sie können auch jederzeit Dateien zwischen Projekten kopieren.", + "custom-software.selector.non-standard": "Sie haben eine nicht standardmäßige Softwareumgebung ausgewählt", "customize.footer.name": "{name} von {organizationName}", "customize.footer.system-status": "Systemstatus", "editor.build_control_and_log.title": "Kompiler-Steuerung und Protokoll", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Warten auf verfügbare Serverinformationen...", "labels.about": "Über", "labels.absolute": "Absolut", - "labels.acconut.password": "Passwort", - "labels.acconut.password.change": "Passwort Ändern", - "labels.acconut.password.forgot": "Passwort vergessen?", "labels.account": "Konto", "labels.account.first_name": "Vorname", "labels.account.language_tooltip": "Ändern Sie die Sprache der Applikation.", "labels.account.last_name": "Nachname", + "labels.account.password": "Passwort", + "labels.account.password.change": "Passwort ändern", + "labels.account.password.forgot": "Passwort vergessen?", "labels.activity": "Aktivität", "labels.admin": "Admin", "labels.ai_generate_label": "Hilf mir Schreiben...", @@ -887,8 +890,8 @@ "labels.code_folding": "Code-Faltung", "labels.color": "Farbe", "labels.config": "Konfiguration", - "labels.configuraion": "Konfiguration", - "labels.configuraion.short": "Konfiguration", + "labels.configuration": "Konfiguration", + "labels.configuration.short": "Konfig", "labels.connecting": "Verbinde", "labels.connection": "Verbindung", "labels.copied": "kopiert", @@ -902,6 +905,7 @@ "labels.delete": "Löschen", "labels.delete_forever": "Für immer löschen", "labels.deleted": "gelöscht", + "labels.description": "Beschreibung", "labels.disconnected": "Getrennt", "labels.documentation": "Dokumentation", "labels.download": "herunterladen", @@ -939,6 +943,7 @@ "labels.loading": "Laden...", "labels.log": "Protokoll", "labels.masked_files": "{masked, select, true {Maskierte Dateien verbergen} other {Maskierte Dateien anzeigen}}. Maskierte Dateien sind automatisch generierte oder temporäre Dateien, die nicht bearbeitet werden sollen. Sie werden ausgegraut.", + "labels.message.plural": "{num, plural, one {Nachricht} other {Nachrichten}}", "labels.messages": "Nachrichten", "labels.messages.all_messages": "Alle Nachrichten", "labels.messages.archive": "Archivieren", @@ -951,14 +956,15 @@ "labels.messages.to": "An", "labels.messages.to_inbox": "In den Posteingang", "labels.messages.unread": "Ungelesen", - "labels.messsage.plural": "{num, plural, one {Nachricht} other {Nachrichten}}", "labels.more_info": "Mehr Infos", "labels.moved": "verschoben", "labels.n_of_m": "{n} von {m}", + "labels.name": "Name", "labels.nbgrader": "NBgrader", "labels.new_dots": "Neu...", "labels.new.file": "Neu", "labels.new.file.tooltip": "Erstelle eine neue Datei", + "labels.no_description": "keine Beschreibung", "labels.not_implemented": "nicht implementiert", "labels.notifications": "Benachrichtigungen", "labels.on": "auf", @@ -1015,7 +1021,7 @@ "labels.statements": "Belege", "labels.status": "Status", "labels.stop": "Stop", - "labels.subscriptons": "Abonnements", + "labels.subscriptions": "Abonnements", "labels.support": "Unterstützung", "labels.tabs": "Tabs", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Bild (optional)", "project.settings.about-box.name.label": "Name (optional)", "project.settings.about-box.title.label": "Titel", + "project.settings.compute-image-selector.button.save-restart": "Speichern und Neustarten", + "project.settings.compute-image-selector.doubt": "{default, select, true {Dies ist die Standardauswahl} other {Hinweis: im Zweifelsfall \"{default_title}\" auswählen}}", + "project.settings.compute-image-selector.software-env-info": "Die ausgewählte Softwareumgebung stellt alle Software bereit, die dieses Projekt nutzen kann. Wenn Sie zusätzliche Software benötigen, können Sie sie entweder im Projekt installieren oder den Support kontaktieren. Erfahren Sie mehr über Installation von Python-Paketen, Python Jupyter Kernel, R-Pakete und Julia-Pakete.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Erfahren Sie mehr über spezifische Umgebungen im Software-Inventar. Momentaufnahmen dessen, was zu einem bestimmten Zeitpunkt verfügbar war, sind für jede Linie von Umgebungen verfügbar. Nur die aktuelle Standardumgebung wird regelmäßig aktualisiert.", "project.settings.control.cpu_usage.info": "benutzte {cpu_str} CPU-Zeit seit Projektstart", "project.settings.control.cpu_usage.label": "CPU-Nutzung", "project.settings.control.idle_timeout.always_running.info": "Das Projekt wird automatisch gestartet, wenn es aus irgendeinem Grund stoppt (es werden alle Init-Skripte ausgeführt).", diff --git a/src/packages/frontend/i18n/trans/es_ES.json b/src/packages/frontend/i18n/trans/es_ES.json index ba22aaf59c..04b2f3f770 100644 --- a/src/packages/frontend/i18n/trans/es_ES.json +++ b/src/packages/frontend/i18n/trans/es_ES.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(no disponible)", "custom-software.reset-bar.info": "

Al hacer clic en \"Reset\", se copian todos los archivos acompañantes de este entorno de software personalizado en tu directorio principal. Esto se hizo una vez cuando se creó este proyecto y puedes repetir esta acción ahora mismo. Si estos archivos acompañantes alojados en {NAME} se han actualizado mientras tanto, recibirás las versiones más nuevas.

Ten en cuenta que esto sobrescribirá cualquier cambio que hayas hecho a estos archivos acompañantes, pero no modificará ni eliminará ningún otro archivo. Sin embargo, nada se pierde: aún puedes acceder a la versión anterior a través de Snapshot Backups o TimeTravel.

¡Esta acción también reiniciará tu proyecto!

", "custom-software.reset-bar.reset-and-restart": "Restablecer y Reiniciar", + "custom-software.selector.explanation": "Seleccione el entorno de software. Puede optar por el entorno predeterminado o seleccionar uno de los más especializados. Cualquiera sea su elección, puede cambiarla más tarde en Configuración del proyecto → Control → Entorno de software en cualquier momento.", + "custom-software.selector.message": "El entorno de software personalizado seleccionado permanece con el proyecto. Crea un nuevo proyecto para trabajar en un entorno de software diferente. Siempre puedes copiar archivos entre proyectos también.", + "custom-software.selector.non-standard": "Has seleccionado un entorno de software no estándar", "customize.footer.name": "{name} por {organizationName}", "customize.footer.system-status": "Estado del Sistema", "editor.build_control_and_log.title": "Control de construcción y registro", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Esperando que la información del servidor esté disponible...", "labels.about": "Acerca de", "labels.absolute": "Absoluto", - "labels.acconut.password": "Contraseña", - "labels.acconut.password.change": "Cambiar Contraseña", - "labels.acconut.password.forgot": "¿Olvidaste la Contraseña?", "labels.account": "Cuenta", "labels.account.first_name": "Nombre", "labels.account.language_tooltip": "Cambiar el idioma de la interfaz de usuario", "labels.account.last_name": "Apellido", + "labels.account.password": "Contraseña", + "labels.account.password.change": "Cambiar contraseña", + "labels.account.password.forgot": "¿Olvidaste la contraseña?", "labels.activity": "Actividad", "labels.admin": "Administrador", "labels.ai_generate_label": "Ayúdame a escribir...", @@ -887,8 +890,8 @@ "labels.code_folding": "Plegado de Código", "labels.color": "Color", "labels.config": "Configurar", - "labels.configuraion": "Configuración", - "labels.configuraion.short": "Configurar", + "labels.configuration": "Configuración", + "labels.configuration.short": "Configurar", "labels.connecting": "Conectando", "labels.connection": "Conexión", "labels.copied": "copiado", @@ -902,6 +905,7 @@ "labels.delete": "Eliminar", "labels.delete_forever": "Borrar para siempre", "labels.deleted": "eliminado", + "labels.description": "Descripción", "labels.disconnected": "Desconectado", "labels.documentation": "Documentación", "labels.download": "descargar", @@ -939,6 +943,7 @@ "labels.loading": "Cargando...", "labels.log": "Registro", "labels.masked_files": "{masked, select, true {Ocultar archivos enmascarados} other {Mostrar archivos enmascarados}}. Los archivos enmascarados son archivos autogenerados o temporales, que no están destinados a ser editados. Estarán atenuados.", + "labels.message.plural": "{num, plural, one {mensaje} other {mensajes}}", "labels.messages": "Mensajes", "labels.messages.all_messages": "Todos los mensajes", "labels.messages.archive": "Archivar", @@ -951,14 +956,15 @@ "labels.messages.to": "A", "labels.messages.to_inbox": "A la bandeja de entrada", "labels.messages.unread": "No leído", - "labels.messsage.plural": "{num, plural, one {mensaje} other {mensajes}}", "labels.more_info": "Más información", "labels.moved": "movido", "labels.n_of_m": "{n} de {m}", + "labels.name": "Nombre", "labels.nbgrader": "NBgrader", "labels.new_dots": "Nuevo...", "labels.new.file": "Nuevo", "labels.new.file.tooltip": "Crear un nuevo archivo", + "labels.no_description": "sin descripción", "labels.not_implemented": "no implementado", "labels.notifications": "Notificaciones", "labels.on": "en", @@ -1015,7 +1021,7 @@ "labels.statements": "Declaraciones", "labels.status": "Estado", "labels.stop": "Detener", - "labels.subscriptons": "Suscripciones", + "labels.subscriptions": "Suscripciones", "labels.support": "Soporte", "labels.tabs": "Pestañas", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Imagen (opcional)", "project.settings.about-box.name.label": "Nombre (opcional)", "project.settings.about-box.title.label": "Título", + "project.settings.compute-image-selector.button.save-restart": "Guardar y Reiniciar", + "project.settings.compute-image-selector.doubt": "{default, select, true {Esta es la selección predeterminada} other {Nota: en caso de duda, seleccione \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "El entorno de software seleccionado proporciona todo el software que este proyecto puede utilizar. Si necesitas software adicional, puedes instalarlo en el proyecto o contactar al soporte. Aprende sobre instalar paquetes de Python, Kernel de Jupyter para Python, paquetes de R y paquetes de Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Aprende más sobre entornos específicos en el inventario de software. Las instantáneas de lo que ha estado disponible en un momento específico están disponibles para cada línea de entornos. Solo el entorno predeterminado actual se actualiza regularmente.", "project.settings.control.cpu_usage.info": "usado {cpu_str} de tiempo de CPU desde que comenzó el proyecto", "project.settings.control.cpu_usage.label": "Uso de CPU", "project.settings.control.idle_timeout.always_running.info": "El proyecto se iniciará automáticamente si se detiene por cualquier motivo (ejecutará cualquier script de inicio).", diff --git a/src/packages/frontend/i18n/trans/fr_FR.json b/src/packages/frontend/i18n/trans/fr_FR.json index e6b7922084..9016ceb848 100644 --- a/src/packages/frontend/i18n/trans/fr_FR.json +++ b/src/packages/frontend/i18n/trans/fr_FR.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(indisponible)", "custom-software.reset-bar.info": "

En cliquant sur \"Réinitialiser\", toutes les fichiers accompagnant cet environnement logiciel personnalisé sont copiés dans votre répertoire personnel. Cela a été fait une fois lors de la création de ce projet et vous pouvez répéter cette action dès maintenant. Si ces fichiers accompagnant hébergés sur {NAME} ont été mis à jour entre-temps, vous recevrez les nouvelles versions.

Notez que cela écrasera toutes les modifications que vous avez apportées à ces fichiers accompagnant, mais ne modifiera ni ne supprimera aucun autre fichier. Cependant, rien n'est perdu : vous pouvez toujours accéder à la version précédente via Snapshot Backups ou TimeTravel.

Cette action redémarrera également votre projet !

", "custom-software.reset-bar.reset-and-restart": "Réinitialiser et Redémarrer", + "custom-software.selector.explanation": "Sélectionnez l'environnement logiciel. Choisissez soit l'environnement par défaut, soit l'un des plus spécialisés. Quel que soit votre choix, vous pouvez le modifier plus tard dans Paramètres du projet → Contrôle → Environnement logiciel à tout moment.", + "custom-software.selector.message": "L'environnement logiciel personnalisé sélectionné reste avec le projet. Créez un nouveau projet pour travailler dans un environnement logiciel différent. Vous pouvez toujours copier des fichiers entre les projets également.", + "custom-software.selector.non-standard": "Vous avez sélectionné un environnement logiciel non standard", "customize.footer.name": "{name} par {organizationName}", "customize.footer.system-status": "État du système", "editor.build_control_and_log.title": "Contrôle de construction et journal", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "En attente des informations du serveur...", "labels.about": "À propos", "labels.absolute": "Absolu", - "labels.acconut.password": "Mot de passe", - "labels.acconut.password.change": "Changer le mot de passe", - "labels.acconut.password.forgot": "Mot de passe oublié ?", "labels.account": "Compte", "labels.account.first_name": "Prénom", "labels.account.language_tooltip": "Changer la langue de l'interface utilisateur.", "labels.account.last_name": "Nom de famille", + "labels.account.password": "Mot de passe", + "labels.account.password.change": "Modifier le mot de passe", + "labels.account.password.forgot": "Mot de passe oublié ?", "labels.activity": "Activité", "labels.admin": "Admin", "labels.ai_generate_label": "Aidez-moi à écrire...", @@ -887,8 +890,8 @@ "labels.code_folding": "Repliage de code", "labels.color": "Couleur", "labels.config": "Config", - "labels.configuraion": "Configuration", - "labels.configuraion.short": "Config", + "labels.configuration": "Configuration", + "labels.configuration.short": "Config", "labels.connecting": "Connexion", "labels.connection": "Connexion", "labels.copied": "copié", @@ -902,6 +905,7 @@ "labels.delete": "Supprimer", "labels.delete_forever": "Supprimer définitivement", "labels.deleted": "supprimé", + "labels.description": "Description", "labels.disconnected": "Déconnecté", "labels.documentation": "Documentation", "labels.download": "télécharger", @@ -939,6 +943,7 @@ "labels.loading": "Chargement...", "labels.log": "Journal", "labels.masked_files": "{masked, select, true {Masquer les fichiers masqués} other {Afficher les fichiers masqués}}. Les fichiers masqués sont des fichiers générés automatiquement ou temporaires, qui ne sont pas destinés à être modifiés. Ils sont grisés.", + "labels.message.plural": "{num, plural, one {message} other {messages}}", "labels.messages": "Messages", "labels.messages.all_messages": "Tous les messages", "labels.messages.archive": "Archiver", @@ -951,14 +956,15 @@ "labels.messages.to": "À", "labels.messages.to_inbox": "Vers la boîte de réception", "labels.messages.unread": "Non lu", - "labels.messsage.plural": "{num, plural, one {message} other {messages}}", "labels.more_info": "Plus d'infos", "labels.moved": "déplacé", "labels.n_of_m": "{n} sur {m}", + "labels.name": "Nom", "labels.nbgrader": "NBgrader", "labels.new_dots": "Nouveau...", "labels.new.file": "Nouveau", "labels.new.file.tooltip": "Créer un nouveau fichier", + "labels.no_description": "pas de description", "labels.not_implemented": "pas implémenté", "labels.notifications": "Notifications", "labels.on": "sur", @@ -1015,7 +1021,7 @@ "labels.statements": "Déclarations", "labels.status": "Statut", "labels.stop": "Arrêter", - "labels.subscriptons": "Abonnements", + "labels.subscriptions": "Abonnements", "labels.support": "Support", "labels.tabs": "Onglets", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Image (optionnel)", "project.settings.about-box.name.label": "Nom (facultatif)", "project.settings.about-box.title.label": "Titre", + "project.settings.compute-image-selector.button.save-restart": "Enregistrer et redémarrer", + "project.settings.compute-image-selector.doubt": "{default, select, true {C'est la sélection par défaut} other {Remarque : en cas de doute, sélectionnez \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "L'environnement logiciel sélectionné fournit tous les logiciels dont ce projet peut profiter. Si vous avez besoin de logiciels supplémentaires, vous pouvez soit les installer dans le projet, soit contacter le support. Apprenez-en plus sur l'installation de packages Python, le noyau Jupyter Python, les packages R et les packages Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "En savoir plus sur les environnements spécifiques dans l'inventaire des logiciels. Des instantanés de ce qui a été disponible à un moment donné sont disponibles pour chaque ligne d'environnements. Seul l'environnement par défaut actuel est mis à jour régulièrement.", "project.settings.control.cpu_usage.info": "utilisé {cpu_str} de temps CPU depuis le début du projet", "project.settings.control.cpu_usage.label": "Utilisation du CPU", "project.settings.control.idle_timeout.always_running.info": "Le projet sera automatiquement démarré s'il s'arrête pour quelque raison que ce soit (il exécutera tous les scripts d'init).", diff --git a/src/packages/frontend/i18n/trans/he_IL.json b/src/packages/frontend/i18n/trans/he_IL.json index eba95131d7..ae7e582fee 100644 --- a/src/packages/frontend/i18n/trans/he_IL.json +++ b/src/packages/frontend/i18n/trans/he_IL.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(לא זמין)", "custom-software.reset-bar.info": "

לחיצה על \"איפוס\" מעתיקה את כל הקבצים הנלווים של סביבת התוכנה המותאמת הזו לתיקיית הבית שלך. פעולה זו בוצעה פעם אחת כאשר הפרויקט הזה נוצר ואתה יכול לחזור עליה עכשיו. אם הקבצים הנלווים האלה המתארחים ב-{NAME} עודכנו בינתיים, תקבל את הגרסאות החדשות יותר.

שים לב, פעולה זו תדרוס כל שינוי שביצעת בקבצים הנלווים הללו, אך לא תשנה או תמחק קבצים אחרים. עם זאת, שום דבר לא אובד: אתה עדיין יכול לגשת לגרסה הקודמת דרך גיבויי תצלומים או מסע בזמן.

פעולה זו גם תאתחל מחדש את הפרויקט שלך!

", "custom-software.reset-bar.reset-and-restart": "איפוס ואתחול", + "custom-software.selector.explanation": "בחר את סביבת התוכנה. תוכל לבחור בסביבה המוגדרת כברירת מחדל, או לבחור באחת מהסביבות המיוחדות יותר. לא משנה מה הבחירה שלך, תוכל לשנות אותה מאוחר יותר בהגדרות הפרויקט → שליטה → סביבת תוכנה בכל עת.", + "custom-software.selector.message": "סביבת התוכנה מותאמת אישית שנבחרה נשארת עם הפרויקט. צור פרויקט חדש לעבוד בסביבת תוכנה שונה. תמיד תוכל להעתיק קבצים בין פרויקטים גם כן.", + "custom-software.selector.non-standard": "בחרת סביבת תוכנה לא סטנדרטית", "customize.footer.name": "{name} על ידי {organizationName}", "customize.footer.system-status": "מצב המערכת", "editor.build_control_and_log.title": "בקרת בנייה ולוג", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "ממתין לזמינות מידע מהשרת...", "labels.about": "אודות", "labels.absolute": "מוחלט", - "labels.acconut.password": "סיסמה", - "labels.acconut.password.change": "שנה סיסמה", - "labels.acconut.password.forgot": "שכחת סיסמה?", "labels.account": "חשבון", "labels.account.first_name": "שם פרטי", "labels.account.language_tooltip": "שנה את השפה של ממשק המשתמש", "labels.account.last_name": "שם משפחה", + "labels.account.password": "סיסמה", + "labels.account.password.change": "שנה סיסמה", + "labels.account.password.forgot": "שכחת סיסמה?", "labels.activity": "פעילות", "labels.admin": "Admin", "labels.ai_generate_label": "עזור לי לכתוב...", @@ -887,8 +890,8 @@ "labels.code_folding": "קיפול קוד", "labels.color": "צבע", "labels.config": "הגדרות", - "labels.configuraion": "תצורה", - "labels.configuraion.short": "הגדרות", + "labels.configuration": "תצורה", + "labels.configuration.short": "הגדרות", "labels.connecting": "מתחבר", "labels.connection": "חיבור", "labels.copied": "הועתק", @@ -902,6 +905,7 @@ "labels.delete": "מחיקה", "labels.delete_forever": "מחק לצמיתות", "labels.deleted": "נמחק", + "labels.description": "תיאור", "labels.disconnected": "מנותק", "labels.documentation": "תיעוד", "labels.download": "הורדה", @@ -939,6 +943,7 @@ "labels.loading": "טוען...", "labels.log": "יומן", "labels.masked_files": "{masked, select, true {הסתר קבצים מוסתרים} other {הצג קבצים מוסתרים}}. קבצים מוסתרים הם קבצים שנוצרו אוטומטית או קבצים זמניים, שאינם מיועדים לעריכה. הם יהיו באפור.", + "labels.message.plural": "{num, plural, one {הודעה} other {הודעות}}", "labels.messages": "הודעות", "labels.messages.all_messages": "כל ההודעות", "labels.messages.archive": "ארכיון", @@ -951,14 +956,15 @@ "labels.messages.to": "אל", "labels.messages.to_inbox": "לכרטיסייה", "labels.messages.unread": "לא נקרא", - "labels.messsage.plural": "{num, plural, one {הודעה} other {הודעות}}", "labels.more_info": "מידע נוסף", "labels.moved": "הועבר", "labels.n_of_m": "{n} מתוך {m}", + "labels.name": "שם", "labels.nbgrader": "NBgrader", "labels.new_dots": "חדש...", "labels.new.file": "חדש", "labels.new.file.tooltip": "צור קובץ חדש", + "labels.no_description": "ללא תיאור", "labels.not_implemented": "לא מיושם", "labels.notifications": "התראות", "labels.on": "על", @@ -1015,7 +1021,7 @@ "labels.statements": "הצהרות", "labels.status": "סטטוס", "labels.stop": "עצור", - "labels.subscriptons": "מנויים", + "labels.subscriptions": "מנויים", "labels.support": "תמיכה", "labels.tabs": "כרטיסיות", "labels.terminal": "טרמינל", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "תמונה (אופציונלי)", "project.settings.about-box.name.label": "שם (לא חובה)", "project.settings.about-box.title.label": "כותרת", + "project.settings.compute-image-selector.button.save-restart": "שמור והפעל מחדש", + "project.settings.compute-image-selector.doubt": "{default, select, true {זוהי הבחירה המוגדרת כברירת מחדל} other {הערה: במקרה של ספק, בחר \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "סביבת התוכנה שנבחרה מספקת את כל התוכנות שהפרויקט הזה יכול להשתמש בהן. אם אתה צריך תוכנה נוספת, אתה יכול להתקין אותה בפרויקט או ליצור קשר עם התמיכה. למד על התקנת חבילות Python, ליבת Python Jupyter, חבילות R ו-חבילות Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "למידע נוסף על סביבות ספציפיות ב-מלאי התוכנה. צילומי מצב של מה שהיה זמין בנקודת זמן מסוימת זמינים עבור כל שורת סביבות. רק הסביבה המוגדרת כברירת מחדל מתעדכנת באופן קבוע.", "project.settings.control.cpu_usage.info": "השתמש {cpu_str} בזמן מעבד מאז שהפרויקט התחיל", "project.settings.control.cpu_usage.label": "שימוש ב-CPU", "project.settings.control.idle_timeout.always_running.info": "הפרויקט יתחיל אוטומטית אם הוא יפסיק מכל סיבה שהיא (הוא יריץ כל סקריפט הפעלה).", diff --git a/src/packages/frontend/i18n/trans/hi_IN.json b/src/packages/frontend/i18n/trans/hi_IN.json index 2ed3a332a3..792930e2ba 100644 --- a/src/packages/frontend/i18n/trans/hi_IN.json +++ b/src/packages/frontend/i18n/trans/hi_IN.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(उपलब्ध नहीं है)", "custom-software.reset-bar.info": "

\"रीसेट\" पर क्लिक करने से इस कस्टम सॉफ़्टवेयर वातावरण की सभी संगत फ़ाइलें आपके होम डायरेक्टरी में कॉपी हो जाती हैं। यह तब किया गया था जब यह प्रोजेक्ट बनाया गया था और आप इस क्रिया को अभी दोहरा सकते हैं। यदि इस बीच {NAME} पर होस्ट की गई ये संगत फ़ाइलें अपडेट हो गई हैं, तो आपको नई संस्करण प्राप्त होंगे।

ध्यान दें, कि यह आपके द्वारा की गई इन संगत फ़ाइलों में किसी भी बदलाव को अधिलेखित कर देगा, लेकिन किसी अन्य फ़ाइल को संशोधित या हटाता नहीं है। हालांकि, कुछ भी खोया नहीं है: आप अभी भी स्नैपशॉट बैकअप्स या टाइमट्रैवल के माध्यम से पिछले संस्करण तक पहुंच सकते हैं।

यह क्रिया आपके प्रोजेक्ट को भी पुनः आरंभ करेगी!

", "custom-software.reset-bar.reset-and-restart": "रीसेट और पुनरारंभ", + "custom-software.selector.explanation": "सॉफ़्टवेयर वातावरण चुनें। या तो डिफ़ॉल्ट वातावरण के साथ जाएँ, या अधिक विशेष वातावरण में से एक चुनें। जो भी विकल्प आप चुनें, आप इसे किसी भी समय प्रोजेक्ट सेटिंग्स → कंट्रोल → सॉफ़्टवेयर वातावरण में बदल सकते हैं।", + "custom-software.selector.message": "चयनित custom सॉफ़्टवेयर पर्यावरण परियोजना के साथ रहता है। एक अलग सॉफ़्टवेयर पर्यावरण में काम करने के लिए एक नई परियोजना बनाएं। आप हमेशा परियोजनाओं के बीच फ़ाइलें कॉपी कर सकते हैं।", + "custom-software.selector.non-standard": "आपने एक गैर-मानक सॉफ़्टवेयर वातावरण चुना", "customize.footer.name": "{name} द्वारा {organizationName}", "customize.footer.system-status": "सिस्टम स्थिति", "editor.build_control_and_log.title": "बिल्ड नियंत्रण और लॉग", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "सर्वर जानकारी उपलब्ध होने की प्रतीक्षा कर रहा है...", "labels.about": "के बारे में", "labels.absolute": "संपूर्ण", - "labels.acconut.password": "पासवर्ड", - "labels.acconut.password.change": "पासवर्ड बदलें", - "labels.acconut.password.forgot": "पासवर्ड भूल गए?", "labels.account": "खाता", "labels.account.first_name": "पहला नाम", "labels.account.language_tooltip": "उपयोगकर्ता इंटरफ़ेस की भाषा बदलें।", "labels.account.last_name": "अंतिम नाम", + "labels.account.password": "पासवर्ड", + "labels.account.password.change": "पासवर्ड बदलें", + "labels.account.password.forgot": "पासवर्ड भूल गए?", "labels.activity": "गतिविधि", "labels.admin": "एडमिन", "labels.ai_generate_label": "मदद करें मुझे लिखने में...", @@ -887,8 +890,8 @@ "labels.code_folding": "कोड फोल्डिंग", "labels.color": "रंग", "labels.config": "कॉन्फ़िग", - "labels.configuraion": "कॉन्फ़िगरेशन", - "labels.configuraion.short": "कॉन्फ़िग", + "labels.configuration": "कॉन्फ़िगरेशन", + "labels.configuration.short": "कॉन्फ़िग", "labels.connecting": "कनेक्टिंग", "labels.connection": "कनेक्शन", "labels.copied": "कॉपी किया गया", @@ -902,6 +905,7 @@ "labels.delete": "हटाएं", "labels.delete_forever": "हमेशा के लिए हटाएं", "labels.deleted": "हटाया गया", + "labels.description": "विवरण", "labels.disconnected": "डिस्कनेक्टेड", "labels.documentation": "दस्तावेज़", "labels.download": "डाउनलोड", @@ -939,6 +943,7 @@ "labels.loading": "लोड हो रहा है...", "labels.log": "लॉग", "labels.masked_files": "{masked, select, true {छुपाएं मास्क्ड फाइलें} other {दिखाएं मास्क्ड फाइलें}}। मास्क्ड फाइलें स्वचालित या अस्थायी फाइलें होती हैं, जिन्हें संपादित करने का इरादा नहीं होता। ये ग्रे आउट होती हैं।", + "labels.message.plural": "{num, plural, one {संदेश} other {संदेश}}", "labels.messages": "संदेश", "labels.messages.all_messages": "सभी संदेश", "labels.messages.archive": "संग्रह करें", @@ -951,14 +956,15 @@ "labels.messages.to": "प्रति", "labels.messages.to_inbox": "इनबॉक्स में", "labels.messages.unread": "अपठित", - "labels.messsage.plural": "{num, plural, one {संदेश} other {संदेश}}", "labels.more_info": "अधिक जानकारी", "labels.moved": "स्थानांतरित", "labels.n_of_m": "{n} में से {m}", + "labels.name": "नाम", "labels.nbgrader": "NBgrader", "labels.new_dots": "नया...", "labels.new.file": "नया", "labels.new.file.tooltip": "नई फाइल बनाएं", + "labels.no_description": "कोई विवरण नहीं", "labels.not_implemented": "अभी लागू नहीं किया गया", "labels.notifications": "सूचनाएं", "labels.on": "पर", @@ -1015,7 +1021,7 @@ "labels.statements": "बयान", "labels.status": "स्थिति", "labels.stop": "रोकें", - "labels.subscriptons": "सदस्यताएँ", + "labels.subscriptions": "सदस्यताएँ", "labels.support": "सहायता", "labels.tabs": "टैब्स", "labels.terminal": "टर्मिनल", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "चित्र (वैकल्पिक)", "project.settings.about-box.name.label": "नाम (वैकल्पिक)", "project.settings.about-box.title.label": "शीर्षक", + "project.settings.compute-image-selector.button.save-restart": "सेव करें और पुनः आरंभ करें", + "project.settings.compute-image-selector.doubt": "{default, select, true {यह डिफ़ॉल्ट चयन है} other {ध्यान दें: यदि संदेह में हैं, तो \"{default_title}\" चुनें}}", + "project.settings.compute-image-selector.software-env-info": "चयनित सॉफ़्टवेयर वातावरण वह सभी सॉफ़्टवेयर प्रदान करता है, जिसका यह प्रोजेक्ट उपयोग कर सकता है। यदि आपको अतिरिक्त सॉफ़्टवेयर की आवश्यकता है, तो आप इसे प्रोजेक्ट में इंस्टॉल कर सकते हैं या समर्थन से संपर्क कर सकते हैं। पायथन पैकेज इंस्टॉल करना, पायथन जुपिटर कर्नेल, आर पैकेज और जूलिया पैकेज के बारे में जानें।", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "विशिष्ट वातावरणों के बारे में अधिक जानें सॉफ़्टवेयर इन्वेंटरी में। एक निश्चित समय पर उपलब्ध क्या था इसके स्नैपशॉट प्रत्येक वातावरण की पंक्ति के लिए उपलब्ध हैं। केवल वर्तमान डिफ़ॉल्ट वातावरण को नियमित रूप से अपडेट किया जाता है।", "project.settings.control.cpu_usage.info": "प्रोजेक्ट शुरू होने के बाद से CPU समय का {cpu_str} उपयोग किया गया", "project.settings.control.cpu_usage.label": "CPU उपयोग", "project.settings.control.idle_timeout.always_running.info": "परियोजना किसी भी कारण से रुकने पर स्वतः शुरू हो जाएगी (यह किसी भी प्रारंभिक स्क्रिप्ट्स को चलाएगी)।", diff --git a/src/packages/frontend/i18n/trans/hu_HU.json b/src/packages/frontend/i18n/trans/hu_HU.json index 5b798ffbe4..006b804d70 100644 --- a/src/packages/frontend/i18n/trans/hu_HU.json +++ b/src/packages/frontend/i18n/trans/hu_HU.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(nem elérhető)", "custom-software.reset-bar.info": "

A \"Visszaállítás\" gombra kattintva ennek az egyedi szoftverkörnyezetnek az összes kísérő fájlja átmásolódik a saját könyvtárába. Ez megtörtént egyszer, amikor ez a projekt létrejött, és most újra elvégezheti ezt a műveletet. Ha ezek a {NAME} által tárolt kísérő fájlok időközben frissültek, megkapja az újabb verziókat.

Vegye figyelembe, hogy ez felülírja az ezekben a kísérő fájlokban végzett módosításokat, de nem módosít vagy töröl más fájlokat. Azonban semmi sem vész el: továbbra is elérheti az előző verziót a Snapshot Backups vagy a TimeTravel segítségével.

Ez a művelet a projekt újraindítását is eredményezi!

", "custom-software.reset-bar.reset-and-restart": "Visszaállítás és Újraindítás", + "custom-software.selector.explanation": "Válassza ki a szoftverkörnyezetet. Választhatja az alapértelmezett környezetet, vagy választhat egyet a speciálisabbak közül. Bármilyen döntést is hoz, később módosíthatja a Projekt beállításai → Vezérlés → Szoftverkörnyezet menüpontban bármikor.", + "custom-software.selector.message": "A kiválasztott egyéni szoftverkörnyezet a projekttel marad. Hozzon létre egy új projektet, hogy más szoftverkörnyezetben dolgozhasson. Mindig másolhat fájlokat a projektek között is.", + "custom-software.selector.non-standard": "Nem szabványos szoftverkörnyezetet választottál", "customize.footer.name": "{name} által {organizationName}", "customize.footer.system-status": "Rendszer állapota", "editor.build_control_and_log.title": "Építési vezérlés és napló", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Várakozás a szerverinformációk elérhetőségére...", "labels.about": "Névjegy", "labels.absolute": "Abszolút", - "labels.acconut.password": "Jelszó", - "labels.acconut.password.change": "Jelszó megváltoztatása", - "labels.acconut.password.forgot": "Elfelejtette a jelszavát?", "labels.account": "Fiók", "labels.account.first_name": "Keresztnév", "labels.account.language_tooltip": "Módosítsa a felhasználói felület nyelvét.", "labels.account.last_name": "Vezetéknév", + "labels.account.password": "Jelszó", + "labels.account.password.change": "Jelszó módosítása", + "labels.account.password.forgot": "Elfelejtette a jelszót?", "labels.activity": "Tevékenység", "labels.admin": "Adminisztrátor", "labels.ai_generate_label": "Segítsen írni...", @@ -887,8 +890,8 @@ "labels.code_folding": "Kódrendszer összecsukása", "labels.color": "Szín", "labels.config": "Beállítás", - "labels.configuraion": "Konfiguráció", - "labels.configuraion.short": "Beállítás", + "labels.configuration": "Konfiguráció", + "labels.configuration.short": "Beállítás", "labels.connecting": "Csatlakozás", "labels.connection": "Csatlakozás", "labels.copied": "másolva", @@ -902,6 +905,7 @@ "labels.delete": "Törlés", "labels.delete_forever": "Végleg törölni", "labels.deleted": "törölve", + "labels.description": "Leírás", "labels.disconnected": "Kapcsolat megszakadt", "labels.documentation": "Dokumentáció", "labels.download": "letöltés", @@ -939,6 +943,7 @@ "labels.loading": "Betöltés...", "labels.log": "Napló", "labels.masked_files": "{masked, select, true {Rejtett fájlok elrejtése} other {Rejtett fájlok megjelenítése}}. A rejtett fájlok automatikusan generált vagy ideiglenes fájlok, amelyeket nem szándékoznak szerkeszteni. Szürkével jelennek meg.", + "labels.message.plural": "{num, plural, one {üzenet} other {üzenetek}}", "labels.messages": "Üzenetek", "labels.messages.all_messages": "Összes üzenet", "labels.messages.archive": "Archiválás", @@ -951,14 +956,15 @@ "labels.messages.to": "Címzettnek", "labels.messages.to_inbox": "Be a Bejövők közé", "labels.messages.unread": "Olvasatlan", - "labels.messsage.plural": "{num, plural, one {üzenet} other {üzenetek}}", "labels.more_info": "További információ", "labels.moved": "Mozgatva", "labels.n_of_m": "{n} a(z) {m}-ből", + "labels.name": "Név", "labels.nbgrader": "NBgrader", "labels.new_dots": "Új...", "labels.new.file": "Új", "labels.new.file.tooltip": "Új fájl létrehozása", + "labels.no_description": "nincs leírás", "labels.not_implemented": "nincs megvalósítva", "labels.notifications": "Értesítések", "labels.on": "be", @@ -1015,7 +1021,7 @@ "labels.statements": "Nyilatkozatok", "labels.status": "Állapot", "labels.stop": "Állj", - "labels.subscriptons": "Előfizetések", + "labels.subscriptions": "Előfizetések", "labels.support": "Támogatás", "labels.tabs": "Fülek", "labels.terminal": "Terminál", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Kép (nem kötelező)", "project.settings.about-box.name.label": "Név (opcionális)", "project.settings.about-box.title.label": "Cím", + "project.settings.compute-image-selector.button.save-restart": "Mentés és újraindítás", + "project.settings.compute-image-selector.doubt": "{default, select, true {Ez az alapértelmezett kiválasztás} other {Megjegyzés: kétség esetén válassza a \"{default_title}\" lehetőséget}}", + "project.settings.compute-image-selector.software-env-info": "A kiválasztott szoftverkörnyezet biztosítja az összes szoftvert, amelyet ez a projekt használhat. Ha további szoftverre van szüksége, telepítheti a projektben, vagy kapcsolatba léphet a támogatással. Tudjon meg többet a Python csomagok telepítése-ról, a Python Jupyter Kernel-ről, az R csomagok-ról és a Julia csomagok-ról.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Tudjon meg többet a konkrét környezetekről a szoftverleltárban. Az egyes környezetek sorainak pillanatképei elérhetők egy adott időpillanatban. Csak az aktuális alapértelmezett környezet frissül rendszeresen.", "project.settings.control.cpu_usage.info": "használt {cpu_str} CPU idő a projekt kezdete óta", "project.settings.control.cpu_usage.label": "CPU-használat", "project.settings.control.idle_timeout.always_running.info": "A projekt automatikusan elindul, ha bármilyen okból leáll (bármilyen init szkripteket futtatni fog).", diff --git a/src/packages/frontend/i18n/trans/it_IT.json b/src/packages/frontend/i18n/trans/it_IT.json index 1fa8b17ac1..cb31219cfb 100644 --- a/src/packages/frontend/i18n/trans/it_IT.json +++ b/src/packages/frontend/i18n/trans/it_IT.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(non disponibile)", "custom-software.reset-bar.info": "

Facendo clic su \"Reset\", tutti i file di accompagnamento di questo ambiente software personalizzato vengono copiati nella tua directory personale. Questo è stato fatto una volta quando questo progetto è stato creato e puoi ripetere questa azione immediatamente. Se nel frattempo questi file di accompagnamento ospitati su {NAME} sono stati aggiornati, riceverai le versioni più recenti.

Nota che questo sovrascriverà eventuali modifiche apportate a questi file di accompagnamento, ma non modificherà né eliminerà altri file. Tuttavia, nulla è perduto: puoi ancora accedere alla versione precedente tramite Backup Snapshot o TimeTravel.

Questa azione riavvierà anche il tuo progetto!

", "custom-software.reset-bar.reset-and-restart": "Reimposta e Riavvia", + "custom-software.selector.explanation": "Seleziona l'ambiente software. Puoi scegliere l'ambiente predefinito o selezionarne uno più specializzato. Qualunque sia la scelta, puoi cambiarla in seguito in Impostazioni del progetto → Controllo → Ambiente software in qualsiasi momento.", + "custom-software.selector.message": "L'ambiente software personalizzato selezionato rimane con il progetto. Crea un nuovo progetto per lavorare in un ambiente software diverso. Puoi sempre copiare file tra progetti anche.", + "custom-software.selector.non-standard": "Hai selezionato un ambiente software non standard", "customize.footer.name": "{name} di {organizationName}", "customize.footer.system-status": "Stato del sistema", "editor.build_control_and_log.title": "Controllo di Costruzione e Registro", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "In attesa che le informazioni del server siano disponibili...", "labels.about": "Informazioni", "labels.absolute": "Assoluto", - "labels.acconut.password": "Password", - "labels.acconut.password.change": "Cambia Password", - "labels.acconut.password.forgot": "Hai dimenticato la password?", "labels.account": "Account", "labels.account.first_name": "Nome", "labels.account.language_tooltip": "Cambia la lingua dell'interfaccia utente.", "labels.account.last_name": "Cognome", + "labels.account.password": "Password", + "labels.account.password.change": "Cambia Password", + "labels.account.password.forgot": "Password dimenticata?", "labels.activity": "Attività", "labels.admin": "Admin", "labels.ai_generate_label": "Aiutami a scrivere...", @@ -887,8 +890,8 @@ "labels.code_folding": "Ripiegamento del codice", "labels.color": "Colore", "labels.config": "Configura", - "labels.configuraion": "Configurazione", - "labels.configuraion.short": "Configura", + "labels.configuration": "Configurazione", + "labels.configuration.short": "Configura", "labels.connecting": "Connessione", "labels.connection": "Connessione", "labels.copied": "copiato", @@ -902,6 +905,7 @@ "labels.delete": "Elimina", "labels.delete_forever": "Elimina per sempre", "labels.deleted": "eliminato", + "labels.description": "Descrizione", "labels.disconnected": "Disconnesso", "labels.documentation": "Documentazione", "labels.download": "scarica", @@ -939,6 +943,7 @@ "labels.loading": "Caricamento...", "labels.log": "Log", "labels.masked_files": "{masked, select, true {Nascondi file mascherati} other {Mostra file mascherati}}. I file mascherati sono file autogenerati o temporanei, che non devono essere modificati. Saranno grigiati.", + "labels.message.plural": "{num, plural, one {messaggio} other {messaggi}}", "labels.messages": "Messaggi", "labels.messages.all_messages": "Tutti i messaggi", "labels.messages.archive": "Archivia", @@ -951,14 +956,15 @@ "labels.messages.to": "A", "labels.messages.to_inbox": "Nella Posta in arrivo", "labels.messages.unread": "Non letto", - "labels.messsage.plural": "{num, plural, one {messaggio} other {messaggi}}", "labels.more_info": "Maggiori informazioni", "labels.moved": "spostato", "labels.n_of_m": "{n} di {m}", + "labels.name": "Nome", "labels.nbgrader": "NBgrader", "labels.new_dots": "Nuovo...", "labels.new.file": "Nuovo", "labels.new.file.tooltip": "Crea un nuovo file", + "labels.no_description": "nessuna descrizione", "labels.not_implemented": "non implementato", "labels.notifications": "Notifiche", "labels.on": "su", @@ -1015,7 +1021,7 @@ "labels.statements": "Dichiarazioni", "labels.status": "Stato", "labels.stop": "Ferma", - "labels.subscriptons": "Abbonamenti", + "labels.subscriptions": "Abbonamenti", "labels.support": "Supporto", "labels.tabs": "Schede", "labels.terminal": "Terminale", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Immagine (opzionale)", "project.settings.about-box.name.label": "Nome (opzionale)", "project.settings.about-box.title.label": "Titolo", + "project.settings.compute-image-selector.button.save-restart": "Salva e Riavvia", + "project.settings.compute-image-selector.doubt": "{default, select, true {Questa è la selezione predefinita} other {Nota: in caso di dubbio, seleziona \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "L'ambiente software selezionato fornisce tutto il software di cui questo progetto può fare uso. Se hai bisogno di software aggiuntivo, puoi installarlo nel progetto o contattare il supporto. Scopri di più su installare i pacchetti Python, Python Jupyter Kernel, pacchetti R e pacchetti Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Per saperne di più sugli ambienti specifici nell'inventario del software. Gli snapshot di ciò che è stato disponibile in un momento specifico sono disponibili per ogni linea di ambienti. Solo l'ambiente predefinito attuale viene aggiornato regolarmente.", "project.settings.control.cpu_usage.info": "usato {cpu_str} di tempo CPU dall'inizio del progetto", "project.settings.control.cpu_usage.label": "Uso CPU", "project.settings.control.idle_timeout.always_running.info": "Il progetto verrà avviato automaticamente se si interrompe per qualsiasi motivo (eseguirà eventuali script di inizializzazione).", diff --git a/src/packages/frontend/i18n/trans/ja_JP.json b/src/packages/frontend/i18n/trans/ja_JP.json index f01fd89773..81106b6d7e 100644 --- a/src/packages/frontend/i18n/trans/ja_JP.json +++ b/src/packages/frontend/i18n/trans/ja_JP.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(利用不可)", "custom-software.reset-bar.info": "

「リセット」をクリックすると、このカスタムソフトウェア環境のすべての付随ファイルがホームディレクトリにコピーされます。これはこのプロジェクトが作成されたときに一度実行されており、今すぐこのアクションを繰り返すことができます。この間に{NAME}でホストされているこれらの付随ファイルが更新されていれば、新しいバージョンを受け取ることができます。

ただし、これによりこれらの付随ファイルに加えた変更は上書きされますが、他のファイルは変更または削除されません。しかし、何も失われません。スナップショットバックアップまたはタイムトラベルを通じて以前のバージョンにアクセスできます。

このアクションはプロジェクトを再起動します!

", "custom-software.reset-bar.reset-and-restart": "リセットと再起動", + "custom-software.selector.explanation": "ソフトウェア環境を選択してください。デフォルト環境を使用するか、より専門的な環境を選択してください。どの選択をしても、後でプロジェクト設定 → コントロール → ソフトウェア環境でいつでも変更できます。", + "custom-software.selector.message": "選択されたcustomソフトウェア環境はプロジェクトに残ります。別のソフトウェア環境で作業するには、新しいプロジェクトを作成してください。プロジェクト間でファイルをコピーすることも常にできます。", + "custom-software.selector.non-standard": "非標準のソフトウェア環境を選択しました", "customize.footer.name": "{name} by {organizationName}", "customize.footer.system-status": "システムステータス", "editor.build_control_and_log.title": "ビルド制御とログ", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "サーバー情報が利用可能になるのを待っています...", "labels.about": "約", "labels.absolute": "絶対", - "labels.acconut.password": "パスワード", - "labels.acconut.password.change": "パスワードを変更", - "labels.acconut.password.forgot": "パスワードを忘れましたか?", "labels.account": "アカウント", "labels.account.first_name": "ファーストネーム", "labels.account.language_tooltip": "ユーザーインターフェースの言語を変更", "labels.account.last_name": "姓", + "labels.account.password": "パスワード", + "labels.account.password.change": "パスワードを変更", + "labels.account.password.forgot": "パスワードを忘れましたか?", "labels.activity": "アクティビティ", "labels.admin": "管理者", "labels.ai_generate_label": "書き方を教えて...", @@ -887,8 +890,8 @@ "labels.code_folding": "コードフォールディング", "labels.color": "色", "labels.config": "設定", - "labels.configuraion": "構成", - "labels.configuraion.short": "設定", + "labels.configuration": "設定", + "labels.configuration.short": "設定", "labels.connecting": "接続中", "labels.connection": "接続", "labels.copied": "コピー済み", @@ -902,6 +905,7 @@ "labels.delete": "削除", "labels.delete_forever": "完全に削除", "labels.deleted": "削除されました", + "labels.description": "説明", "labels.disconnected": "切断されました", "labels.documentation": "ドキュメント", "labels.download": "ダウンロード", @@ -939,6 +943,7 @@ "labels.loading": "読み込み中...", "labels.log": "ログ", "labels.masked_files": "{masked, select, true {マスクされたファイルを隠す} other {マスクされたファイルを表示}}。マスクされたファイルは自動生成された一時ファイルで、編集することを意図していません。これらのファイルは灰色表示されます。", + "labels.message.plural": "{num, plural, one {メッセージ} other {メッセージ}}", "labels.messages": "メッセージ", "labels.messages.all_messages": "すべてのメッセージ", "labels.messages.archive": "アーカイブ", @@ -951,14 +956,15 @@ "labels.messages.to": "送信先", "labels.messages.to_inbox": "受信トレイへ", "labels.messages.unread": "未読", - "labels.messsage.plural": "{num, plural, one {メッセージ} other {メッセージ}}", "labels.more_info": "詳細情報", "labels.moved": "移動しました", "labels.n_of_m": "{n} の {m}", + "labels.name": "名前", "labels.nbgrader": "NBgrader", "labels.new_dots": "新規...", "labels.new.file": "新規", "labels.new.file.tooltip": "新しいファイルを作成", + "labels.no_description": "説明なし", "labels.not_implemented": "未実装", "labels.notifications": "通知", "labels.on": "オン", @@ -1015,7 +1021,7 @@ "labels.statements": "ステートメント", "labels.status": "ステータス", "labels.stop": "停止", - "labels.subscriptons": "サブスクリプション", + "labels.subscriptions": "サブスクリプション", "labels.support": "サポート", "labels.tabs": "タブ", "labels.terminal": "ターミナル", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "画像(オプション)", "project.settings.about-box.name.label": "名前(任意)", "project.settings.about-box.title.label": "タイトル", + "project.settings.compute-image-selector.button.save-restart": "保存して再起動", + "project.settings.compute-image-selector.doubt": "{default, select, true {これはデフォルトの選択です} other {注: 不明な場合は「{default_title}」を選択してください}}", + "project.settings.compute-image-selector.software-env-info": "選択されたソフトウェア環境は、このプロジェクトが利用できるすべてのソフトウェアを提供します。追加のソフトウェアが必要な場合は、プロジェクトにインストールするか、サポートに連絡してください。Python パッケージのインストールPython Jupyter カーネルR パッケージJulia パッケージについて学びましょう。", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "ソフトウェアインベントリで特定の環境について詳しく学んでください。特定の時点で利用可能だったスナップショットは、各環境ラインで利用できます。定期的に更新されるのは現在のデフォルト環境のみです。", "project.settings.control.cpu_usage.info": "プロジェクト開始以来のCPU使用時間は{cpu_str}", "project.settings.control.cpu_usage.label": "CPU使用率", "project.settings.control.idle_timeout.always_running.info": "プロジェクトは何らかの理由で停止した場合、自動的に開始されます初期化スクリプトを実行します)。", diff --git a/src/packages/frontend/i18n/trans/ko_KR.json b/src/packages/frontend/i18n/trans/ko_KR.json index 05645309de..b8584a41a6 100644 --- a/src/packages/frontend/i18n/trans/ko_KR.json +++ b/src/packages/frontend/i18n/trans/ko_KR.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(사용할 수 없음)", "custom-software.reset-bar.info": "

\"초기화\"를 클릭하면 이 사용자 지정 소프트웨어 환경의 모든 동반 파일이 홈 디렉토리에 복사됩니다. 이 작업은 이 프로젝트가 생성될 때 한 번 수행되었으며, 지금 이 작업을 반복할 수 있습니다. 그동안 {NAME}에 호스팅된 이 동반 파일들이 업데이트되었다면, 최신 버전을 받게 됩니다.

이 작업은 동반 파일에 대한 사용자의 변경 사항을 덮어쓰지만, 다른 파일은 수정되거나 삭제되지 않습니다. 그러나 아무것도 잃지 않습니다: 스냅샷 백업 또는 타임트래블을 통해 이전 버전에 여전히 접근할 수 있습니다.

이 작업은 프로젝트를 다시 시작하기도 합니다!

", "custom-software.reset-bar.reset-and-restart": "초기화 및 재시작", + "custom-software.selector.explanation": "소프트웨어 환경을 선택하세요. 기본 환경을 선택하거나 더 전문화된 환경 중 하나를 선택할 수 있습니다. 어떤 선택을 하든, 나중에 프로젝트 설정 → 제어 → 소프트웨어 환경에서 언제든지 변경할 수 있습니다.", + "custom-software.selector.message": "선택한 custom 소프트웨어 환경은 프로젝트와 함께 유지됩니다. 다른 소프트웨어 환경에서 작업하려면 새 프로젝트를 만드세요. 프로젝트 간에 파일을 복사할 수도 있습니다.", + "custom-software.selector.non-standard": "비표준 소프트웨어 환경을 선택했습니다", "customize.footer.name": "{name} {organizationName}에서", "customize.footer.system-status": "시스템 상태", "editor.build_control_and_log.title": "빌드 제어 및 로그", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "서버 정보를 사용할 수 있을 때까지 기다리는 중...", "labels.about": "정보", "labels.absolute": "절대", - "labels.acconut.password": "비밀번호", - "labels.acconut.password.change": "비밀번호 변경", - "labels.acconut.password.forgot": "비밀번호를 잊으셨나요?", "labels.account": "계정", "labels.account.first_name": "이름", "labels.account.language_tooltip": "사용자 인터페이스의 언어 변경.", "labels.account.last_name": "성씨", + "labels.account.password": "비밀번호", + "labels.account.password.change": "비밀번호 변경", + "labels.account.password.forgot": "비밀번호를 잊으셨나요?", "labels.activity": "활동", "labels.admin": "관리자", "labels.ai_generate_label": "도와주세요 작성...", @@ -887,8 +890,8 @@ "labels.code_folding": "코드 접기", "labels.color": "색상", "labels.config": "구성", - "labels.configuraion": "구성", - "labels.configuraion.short": "구성", + "labels.configuration": "구성", + "labels.configuration.short": "구성", "labels.connecting": "연결 중", "labels.connection": "연결", "labels.copied": "복사됨", @@ -902,6 +905,7 @@ "labels.delete": "삭제", "labels.delete_forever": "영구 삭제", "labels.deleted": "삭제됨", + "labels.description": "설명", "labels.disconnected": "연결 끊김", "labels.documentation": "문서", "labels.download": "다운로드", @@ -939,6 +943,7 @@ "labels.loading": "불러오는 중...", "labels.log": "로그", "labels.masked_files": "{masked, select, true {마스크된 파일 숨기기} other {마스크된 파일 보기}}. 마스크된 파일은 자동 생성되거나 임시 파일로, 편집할 의도가 없습니다. 이 파일들은 회색으로 표시됩니다.", + "labels.message.plural": "{num, plural, one {메시지} other {메시지들}}", "labels.messages": "메시지", "labels.messages.all_messages": "모든 메시지", "labels.messages.archive": "보관", @@ -951,14 +956,15 @@ "labels.messages.to": "받는 사람", "labels.messages.to_inbox": "받은편지함으로", "labels.messages.unread": "안 읽음", - "labels.messsage.plural": "{num, plural, one {메시지} other {메시지들}}", "labels.more_info": "자세히 보기", "labels.moved": "이동됨", "labels.n_of_m": "{n} 중 {m}", + "labels.name": "이름", "labels.nbgrader": "NBgrader", "labels.new_dots": "새로 만들기...", "labels.new.file": "새로운", "labels.new.file.tooltip": "새 파일 만들기", + "labels.no_description": "설명 없음", "labels.not_implemented": "구현되지 않음", "labels.notifications": "알림", "labels.on": "위에", @@ -1015,7 +1021,7 @@ "labels.statements": "진술", "labels.status": "상태", "labels.stop": "중지", - "labels.subscriptons": "구독", + "labels.subscriptions": "구독", "labels.support": "지원", "labels.tabs": "탭", "labels.terminal": "터미널", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "이미지 (선택 사항)", "project.settings.about-box.name.label": "이름 (선택 사항)", "project.settings.about-box.title.label": "제목", + "project.settings.compute-image-selector.button.save-restart": "저장하고 다시 시작", + "project.settings.compute-image-selector.doubt": "{default, select, true {이것이 기본 선택입니다} other {참고: 의심스러울 때 \"{default_title}\"을 선택하세요}}", + "project.settings.compute-image-selector.software-env-info": "선택한 소프트웨어 환경은 이 프로젝트에서 사용할 수 있는 모든 소프트웨어를 제공합니다. 추가 소프트웨어가 필요하면 프로젝트에 설치하거나 지원팀에 문의할 수 있습니다. Python 패키지 설치, Python Jupyter 커널, R 패키지Julia 패키지에 대해 알아보세요.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "특정 환경에 대한 자세한 정보는 소프트웨어 목록에서 확인하세요. 특정 시점에 사용 가능했던 환경의 스냅샷이 각 환경 라인별로 제공됩니다. 현재 기본 환경만 정기적으로 업데이트됩니다.", "project.settings.control.cpu_usage.info": "프로젝트 시작 이후 {cpu_str}의 CPU 시간을 사용했습니다", "project.settings.control.cpu_usage.label": "CPU 사용량", "project.settings.control.idle_timeout.always_running.info": "프로젝트가 어떤 이유로 중지되면 자동으로 시작됩니다 (초기화 스크립트를 실행합니다).", diff --git a/src/packages/frontend/i18n/trans/nl_NL.json b/src/packages/frontend/i18n/trans/nl_NL.json index 9705034269..563e2a5400 100644 --- a/src/packages/frontend/i18n/trans/nl_NL.json +++ b/src/packages/frontend/i18n/trans/nl_NL.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(niet beschikbaar)", "custom-software.reset-bar.info": "

Door op \"Reset\" te klikken, worden alle bijbehorende bestanden van deze aangepaste softwareomgeving naar je home-directory gekopieerd. Dit is één keer gedaan toen dit project werd aangemaakt en je kunt deze actie nu herhalen. Als deze bijbehorende bestanden op {NAME} in de tussentijd zijn bijgewerkt, ontvang je de nieuwere versies.

Let op, dit overschrijft eventuele wijzigingen die je in deze bijbehorende bestanden hebt aangebracht, maar wijzigt of verwijdert geen andere bestanden. Echter, niets is verloren: je kunt nog steeds toegang krijgen tot de vorige versie via Snapshot Backups of TimeTravel.

Deze actie zal ook je project herstarten!

", "custom-software.reset-bar.reset-and-restart": "Opnieuw instellen en herstarten", + "custom-software.selector.explanation": "Selecteer de software-omgeving. Kies ofwel de standaardomgeving, of selecteer een van de meer gespecialiseerde omgevingen. Welke keuze je ook maakt, je kunt deze later op elk moment wijzigen in Projectinstellingen → Beheer → Software-omgeving.", + "custom-software.selector.message": "De geselecteerde custom softwareomgeving blijft bij het project. Maak een nieuw project aan om in een andere softwareomgeving te werken. Je kunt altijd bestanden tussen projecten kopiëren.", + "custom-software.selector.non-standard": "Je hebt een niet-standaard softwareomgeving geselecteerd", "customize.footer.name": "{name} door {organizationName}", "customize.footer.system-status": "Systeemstatus", "editor.build_control_and_log.title": "Bouwcontrole en Logboek", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Wachten tot serverinformatie beschikbaar is...", "labels.about": "Over", "labels.absolute": "Absoluut", - "labels.acconut.password": "Wachtwoord", - "labels.acconut.password.change": "Wachtwoord wijzigen", - "labels.acconut.password.forgot": "Wachtwoord Vergeten?", "labels.account": "Account", "labels.account.first_name": "Voornaam", "labels.account.language_tooltip": "Wijzig de taal van de gebruikersinterface.", "labels.account.last_name": "Achternaam", + "labels.account.password": "Wachtwoord", + "labels.account.password.change": "Wachtwoord wijzigen", + "labels.account.password.forgot": "Wachtwoord vergeten?", "labels.activity": "Activiteit", "labels.admin": "Beheerder", "labels.ai_generate_label": "Help me schrijven...", @@ -887,8 +890,8 @@ "labels.code_folding": "Code-vouwen", "labels.color": "Kleur", "labels.config": "Config", - "labels.configuraion": "Configuratie", - "labels.configuraion.short": "Config", + "labels.configuration": "Configuratie", + "labels.configuration.short": "Config", "labels.connecting": "Verbinden", "labels.connection": "Verbinding", "labels.copied": "gekopieerd", @@ -902,6 +905,7 @@ "labels.delete": "Verwijderen", "labels.delete_forever": "Voor altijd verwijderen", "labels.deleted": "verwijderd", + "labels.description": "Beschrijving", "labels.disconnected": "Verbroken", "labels.documentation": "Documentatie", "labels.download": "downloaden", @@ -939,6 +943,7 @@ "labels.loading": "Laden...", "labels.log": "Logboek", "labels.masked_files": "{masked, select, true {Verborgen bestanden verbergen} other {Verborgen bestanden weergeven}}. Verborgen bestanden zijn automatisch gegenereerde of tijdelijke bestanden, die niet bedoeld zijn om te bewerken. Ze worden grijs weergegeven.", + "labels.message.plural": "{num, plural, one {bericht} other {berichten}}", "labels.messages": "Berichten", "labels.messages.all_messages": "Alle berichten", "labels.messages.archive": "Archiveren", @@ -951,14 +956,15 @@ "labels.messages.to": "Aan", "labels.messages.to_inbox": "Naar inbox", "labels.messages.unread": "Ongelezen", - "labels.messsage.plural": "{num, plural, one {bericht} other {berichten}}", "labels.more_info": "Meer info", "labels.moved": "verplaatst", "labels.n_of_m": "{n} van {m}", + "labels.name": "Naam", "labels.nbgrader": "NBgrader", "labels.new_dots": "Nieuw...", "labels.new.file": "Nieuw", "labels.new.file.tooltip": "Maak een nieuw bestand", + "labels.no_description": "geen beschrijving", "labels.not_implemented": "niet geïmplementeerd", "labels.notifications": "Meldingen", "labels.on": "op", @@ -1015,7 +1021,7 @@ "labels.statements": "Overzichten", "labels.status": "Status", "labels.stop": "Stop", - "labels.subscriptons": "Abonnementen", + "labels.subscriptions": "Abonnementen", "labels.support": "Ondersteunen", "labels.tabs": "Tabbladen", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Afbeelding (optioneel)", "project.settings.about-box.name.label": "Naam (optioneel)", "project.settings.about-box.title.label": "Titel", + "project.settings.compute-image-selector.button.save-restart": "Opslaan en Herstarten", + "project.settings.compute-image-selector.doubt": "{default, select, true {Dit is de standaardselectie} other {Opmerking: bij twijfel, selecteer \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "De geselecteerde softwareomgeving biedt alle software die dit project kan gebruiken. Als je extra software nodig hebt, kun je deze in het project installeren of contact opnemen met de ondersteuning. Leer meer over Python-pakketten installeren, Python Jupyter Kernel, R-pakketten en Julia-pakketten.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Meer informatie over specifieke omgevingen in de software-inventaris. Momentopnames van wat op een bepaald moment beschikbaar was, zijn beschikbaar voor elke reeks omgevingen. Alleen de huidige standaardomgeving wordt regelmatig bijgewerkt.", "project.settings.control.cpu_usage.info": "heeft {cpu_str} van CPU-tijd gebruikt sinds het project begon", "project.settings.control.cpu_usage.label": "CPU-gebruik", "project.settings.control.idle_timeout.always_running.info": "Project wordt automatisch gestart als het om welke reden dan ook stopt (het zal eventuele init scripts uitvoeren).", diff --git a/src/packages/frontend/i18n/trans/pl_PL.json b/src/packages/frontend/i18n/trans/pl_PL.json index 6637f5a407..09a7ce97fa 100644 --- a/src/packages/frontend/i18n/trans/pl_PL.json +++ b/src/packages/frontend/i18n/trans/pl_PL.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(niedostępne)", "custom-software.reset-bar.info": "

Kliknięcie \"Resetuj\" kopiuje wszystkie towarzyszące pliki tego niestandardowego środowiska programistycznego do twojego katalogu domowego. Zostało to zrobione raz, gdy ten projekt został utworzony, i możesz powtórzyć tę operację teraz. Jeśli te towarzyszące pliki hostowane na {NAME} zostały zaktualizowane w międzyczasie, otrzymasz nowsze wersje.

Uwaga, że to nadpisze wszelkie zmiany, które wprowadziłeś w tych towarzyszących plikach, ale nie modyfikuje ani nie usuwa żadnych innych plików. Jednak nic nie zostaje utracone: możesz nadal uzyskać dostęp do poprzedniej wersji za pomocą Kopii zapasowych lub TimeTravel.

Ta operacja również zrestartuje twój projekt!

", "custom-software.reset-bar.reset-and-restart": "Resetuj i Uruchom ponownie", + "custom-software.selector.explanation": "Wybierz środowisko oprogramowania. Możesz wybrać domyślne środowisko lub jedno z bardziej wyspecjalizowanych. Niezależnie od wyboru, możesz go później zmienić w Ustawieniach projektu → Kontrola → Środowisko oprogramowania w dowolnym momencie.", + "custom-software.selector.message": "Wybrane customowe środowisko programowe pozostaje z projektem. Utwórz nowy projekt, aby pracować w innym środowisku programowym. Zawsze możesz kopiować pliki między projektami.", + "custom-software.selector.non-standard": "Wybrałeś niestandardowe środowisko oprogramowania", "customize.footer.name": "{name} przez {organizationName}", "customize.footer.system-status": "Status systemu", "editor.build_control_and_log.title": "Kontrola Kompilacji i Dziennik", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Oczekiwanie na dostępność informacji o serwerze...", "labels.about": "O programie", "labels.absolute": "Bezwzględny", - "labels.acconut.password": "Hasło", - "labels.acconut.password.change": "Zmień hasło", - "labels.acconut.password.forgot": "Zapomniałeś hasła?", "labels.account": "Konto", "labels.account.first_name": "Imię", "labels.account.language_tooltip": "Zmień język interfejsu użytkownika", "labels.account.last_name": "Nazwisko", + "labels.account.password": "Hasło", + "labels.account.password.change": "Zmień hasło", + "labels.account.password.forgot": "Zapomniałeś hasła?", "labels.activity": "Aktywność", "labels.admin": "Admin", "labels.ai_generate_label": "Pomóż mi napisać...", @@ -887,8 +890,8 @@ "labels.code_folding": "Składanie kodu", "labels.color": "Kolor", "labels.config": "Konfiguracja", - "labels.configuraion": "Konfiguracja", - "labels.configuraion.short": "Konfiguracja", + "labels.configuration": "Konfiguracja", + "labels.configuration.short": "Konfiguracja", "labels.connecting": "Łączenie", "labels.connection": "Połączenie", "labels.copied": "skopiowano", @@ -902,6 +905,7 @@ "labels.delete": "Usuń", "labels.delete_forever": "Usuń na zawsze", "labels.deleted": "usunięte", + "labels.description": "Opis", "labels.disconnected": "Rozłączony", "labels.documentation": "Dokumentacja", "labels.download": "pobierz", @@ -939,6 +943,7 @@ "labels.loading": "Ładowanie...", "labels.log": "Dziennik", "labels.masked_files": "{masked, select, true {Ukryj zamaskowane pliki} other {Pokaż zamaskowane pliki}}. Zamaskowane pliki są plikami generowanymi automatycznie lub tymczasowymi, które nie są przeznaczone do edycji. Są wyszarzone.", + "labels.message.plural": "{num, plural, one {wiadomość} other {wiadomości}}", "labels.messages": "Wiadomości", "labels.messages.all_messages": "Wszystkie wiadomości", "labels.messages.archive": "Archiwizuj", @@ -951,14 +956,15 @@ "labels.messages.to": "Do", "labels.messages.to_inbox": "Do skrzynki odbiorczej", "labels.messages.unread": "Nieprzeczytane", - "labels.messsage.plural": "{num, plural, one {wiadomość} other {wiadomości}}", "labels.more_info": "Więcej informacji", "labels.moved": "przeniesiono", "labels.n_of_m": "{n} z {m}", + "labels.name": "Nazwa", "labels.nbgrader": "NBgrader", "labels.new_dots": "Nowy...", "labels.new.file": "Nowy", "labels.new.file.tooltip": "Utwórz nowy plik", + "labels.no_description": "brak opisu", "labels.not_implemented": "niezaimplementowane", "labels.notifications": "Powiadomienia", "labels.on": "na", @@ -1015,7 +1021,7 @@ "labels.statements": "Oświadczenia", "labels.status": "Status", "labels.stop": "Zatrzymaj", - "labels.subscriptons": "Subskrypcje", + "labels.subscriptions": "Subskrypcje", "labels.support": "Wsparcie", "labels.tabs": "Karty", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Obraz (opcjonalnie)", "project.settings.about-box.name.label": "Nazwa (opcjonalnie)", "project.settings.about-box.title.label": "Tytuł", + "project.settings.compute-image-selector.button.save-restart": "Zapisz i Uruchom Ponownie", + "project.settings.compute-image-selector.doubt": "{default, select, true {To jest domyślny wybór} other {Uwaga: w razie wątpliwości, wybierz \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "Wybrane środowisko oprogramowania zapewnia całe oprogramowanie, z którego ten projekt może korzystać. Jeśli potrzebujesz dodatkowego oprogramowania, możesz je zainstalować w projekcie lub skontaktować się z pomocą techniczną. Dowiedz się o instalowaniu pakietów Python, jądrze Python Jupyter, pakietach R i pakietach Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Dowiedz się więcej o konkretnych środowiskach w inwentarzu oprogramowania. Migawki tego, co było dostępne w określonym momencie, są dostępne dla każdej linii środowisk. Tylko bieżące domyślne środowisko jest regularnie aktualizowane.", "project.settings.control.cpu_usage.info": "użyto {cpu_str} czasu CPU od rozpoczęcia projektu", "project.settings.control.cpu_usage.label": "Użycie CPU", "project.settings.control.idle_timeout.always_running.info": "Projekt zostanie automatycznie uruchomiony w przypadku zatrzymania z jakiegokolwiek powodu (uruchomi wszelkie skrypty inicjujące).", diff --git a/src/packages/frontend/i18n/trans/pt_PT.json b/src/packages/frontend/i18n/trans/pt_PT.json index a0888f0039..d13d7f65e1 100644 --- a/src/packages/frontend/i18n/trans/pt_PT.json +++ b/src/packages/frontend/i18n/trans/pt_PT.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(não disponível)", "custom-software.reset-bar.info": "

Clicar em \"Repor\" copia todos os ficheiros acompanhantes deste ambiente de software personalizado para o seu diretório pessoal. Isto foi feito uma vez quando este projeto foi criado, e pode repetir esta ação agora. Se estes ficheiros acompanhantes hospedados em {NAME} foram atualizados entretanto, receberá as versões mais recentes.

Note que isto irá sobrescrever quaisquer alterações que tenha feito a estes ficheiros acompanhantes, mas não modifica nem apaga quaisquer outros ficheiros. No entanto, nada está perdido: ainda pode aceder à versão anterior através de Cópias de Segurança de Instantâneos ou TimeTravel.

Esta ação também reiniciará o seu projeto!

", "custom-software.reset-bar.reset-and-restart": "Reiniciar e Recomeçar", + "custom-software.selector.explanation": "Selecione o ambiente de software. Pode optar pelo ambiente padrão ou escolher um dos mais especializados. Independentemente da escolha, pode alterá-la mais tarde em Configurações do Projeto → Controlo → Ambiente de Software a qualquer momento.", + "custom-software.selector.message": "O ambiente de software personalizado selecionado permanece com o projeto. Crie um novo projeto para trabalhar num ambiente de software diferente. Também pode copiar ficheiros entre projetos sempre que quiser.", + "custom-software.selector.non-standard": "Selecionou um ambiente de software não padrão", "customize.footer.name": "{name} por {organizationName}", "customize.footer.system-status": "Estado do Sistema", "editor.build_control_and_log.title": "Controlo de Construção e Registo", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "A aguardar que a informação do servidor esteja disponível...", "labels.about": "Sobre", "labels.absolute": "Absoluto", - "labels.acconut.password": "Senha", - "labels.acconut.password.change": "Alterar Palavra-passe", - "labels.acconut.password.forgot": "Esqueceu-se da Palavra-passe?", "labels.account": "Conta", "labels.account.first_name": "Primeiro nome", "labels.account.language_tooltip": "Mude a língua da interface do utilizador", "labels.account.last_name": "Apelido", + "labels.account.password": "Palavra-passe", + "labels.account.password.change": "Alterar Password", + "labels.account.password.forgot": "Esqueceu a Palavra-passe?", "labels.activity": "Atividade", "labels.admin": "Admin", "labels.ai_generate_label": "Ajude-me a escrever...", @@ -887,8 +890,8 @@ "labels.code_folding": "Dobrar Código", "labels.color": "Cor", "labels.config": "Configuração", - "labels.configuraion": "Configuração", - "labels.configuraion.short": "Configuração", + "labels.configuration": "Configuração", + "labels.configuration.short": "Configurar", "labels.connecting": "A ligar", "labels.connection": "Ligação", "labels.copied": "copiado", @@ -902,6 +905,7 @@ "labels.delete": "Eliminar", "labels.delete_forever": "Eliminar para Sempre", "labels.deleted": "eliminado", + "labels.description": "Descrição", "labels.disconnected": "Desconectado", "labels.documentation": "Documentação", "labels.download": "descarregar", @@ -939,6 +943,7 @@ "labels.loading": "A carregar...", "labels.log": "Registo", "labels.masked_files": "{masked, select, true {Esconder ficheiros mascarados} other {Mostrar ficheiros mascarados}}. Ficheiros mascarados são ficheiros autogerados ou temporários, que não são destinados a serem editados. Eles são mostrados em cinza.", + "labels.message.plural": "{num, plural, one {mensagem} other {mensagens}}", "labels.messages": "Mensagens", "labels.messages.all_messages": "Todas as Mensagens", "labels.messages.archive": "Arquivar", @@ -951,14 +956,15 @@ "labels.messages.to": "Para", "labels.messages.to_inbox": "Para Caixa de Entrada", "labels.messages.unread": "Não lida", - "labels.messsage.plural": "{num, plural, one {mensagem} other {mensagens}}", "labels.more_info": "Mais informações", "labels.moved": "movido", "labels.n_of_m": "{n} de {m}", + "labels.name": "Nome", "labels.nbgrader": "NBgrader", "labels.new_dots": "Novo...", "labels.new.file": "Novo", "labels.new.file.tooltip": "Criar um novo ficheiro", + "labels.no_description": "sem descrição", "labels.not_implemented": "não implementado", "labels.notifications": "Notificações", "labels.on": "em", @@ -1015,7 +1021,7 @@ "labels.statements": "Declarações", "labels.status": "Estado", "labels.stop": "Parar", - "labels.subscriptons": "Subscrições", + "labels.subscriptions": "Subscrições", "labels.support": "Apoio", "labels.tabs": "Tabs", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Imagem (opcional)", "project.settings.about-box.name.label": "Nome (opcional)", "project.settings.about-box.title.label": "Título", + "project.settings.compute-image-selector.button.save-restart": "Guardar e Reiniciar", + "project.settings.compute-image-selector.doubt": "{default, select, true {Esta é a seleção padrão} other {Nota: em caso de dúvida, selecione \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "O ambiente de software selecionado fornece todo o software que este projeto pode utilizar. Se precisar de software adicional, pode instalá-lo no projeto ou contactar o suporte. Saiba mais sobre instalar pacotes Python, Kernel Jupyter Python, Pacotes R e pacotes Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Saiba mais sobre ambientes específicos no inventário de software. Estão disponíveis instantâneos do que estava disponível num momento específico para cada linha de ambientes. Apenas o ambiente padrão atual é atualizado regularmente.", "project.settings.control.cpu_usage.info": "usou {cpu_str} de tempo de CPU desde o início do projeto", "project.settings.control.cpu_usage.label": "Uso da CPU", "project.settings.control.idle_timeout.always_running.info": "O projeto será automaticamente iniciado se parar por qualquer motivo (executará qualquer scripts de inicialização).", diff --git a/src/packages/frontend/i18n/trans/ru_RU.json b/src/packages/frontend/i18n/trans/ru_RU.json index 2f32d08f58..dde63c497a 100644 --- a/src/packages/frontend/i18n/trans/ru_RU.json +++ b/src/packages/frontend/i18n/trans/ru_RU.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(недоступно)", "custom-software.reset-bar.info": "

Нажатие на \"Сброс\" копирует все сопутствующие файлы этой пользовательской программной среды в ваш домашний каталог. Это было сделано один раз, когда этот проект был создан, и вы можете повторить это действие прямо сейчас. Если за это время сопутствующие файлы, размещенные на {NAME}, были обновлены, вы получите более новые версии.

Учтите, что это перезапишет любые изменения, которые вы внесли в эти сопутствующие файлы, но не изменит и не удалит другие файлы. Однако ничего не потеряно: вы все еще можете получить доступ к предыдущей версии через Резервные копии или Путешествие во времени.

Это действие также перезапустит ваш проект!

", "custom-software.reset-bar.reset-and-restart": "Сброс и Перезапуск", + "custom-software.selector.explanation": "Выберите программную среду. Либо используйте среду по умолчанию, либо выберите одну из более специализированных. Какой бы выбор вы ни сделали, вы можете изменить его позже в Настройки проекта → Управление → Программная среда в любое время.", + "custom-software.selector.message": "Выбранная пользовательская программная среда остается с проектом. Создайте новый проект, чтобы работать в другой программной среде. Вы всегда можете копировать файлы между проектами.", + "custom-software.selector.non-standard": "Вы выбрали нестандартную программную среду", "customize.footer.name": "{name} от {organizationName}", "customize.footer.system-status": "Статус системы", "editor.build_control_and_log.title": "Управление сборкой и журнал", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Ожидание доступности информации от сервера...", "labels.about": "О программе", "labels.absolute": "Абсолютный", - "labels.acconut.password": "Пароль", - "labels.acconut.password.change": "Изменить пароль", - "labels.acconut.password.forgot": "Забыли пароль?", "labels.account": "Аккаунт", "labels.account.first_name": "Имя", "labels.account.language_tooltip": "Изменить язык пользовательского интерфейса", "labels.account.last_name": "Фамилия", + "labels.account.password": "Пароль", + "labels.account.password.change": "Изменить пароль", + "labels.account.password.forgot": "Забыли пароль?", "labels.activity": "Активность", "labels.admin": "Админ", "labels.ai_generate_label": "Помогите мне написать...", @@ -887,8 +890,8 @@ "labels.code_folding": "Сворачивание кода", "labels.color": "Цвет", "labels.config": "Конфигурация", - "labels.configuraion": "Конфигурация", - "labels.configuraion.short": "Конфигурация", + "labels.configuration": "Конфигурация", + "labels.configuration.short": "Конфиг", "labels.connecting": "Соединение", "labels.connection": "Соединение", "labels.copied": "скопировано", @@ -902,6 +905,7 @@ "labels.delete": "Удалить", "labels.delete_forever": "Удалить навсегда", "labels.deleted": "удалено", + "labels.description": "Описание", "labels.disconnected": "Отключено", "labels.documentation": "Документация", "labels.download": "скачать", @@ -939,6 +943,7 @@ "labels.loading": "Загрузка...", "labels.log": "Журнал", "labels.masked_files": "{masked, select, true {Скрыть замаскированные файлы} other {Показать замаскированные файлы}}. Замаскированные файлы являются автоматически сгенерированными или временными файлами, которые не предназначены для редактирования. Они отображаются серым цветом.", + "labels.message.plural": "{num, plural, one {сообщение} other {сообщения}}", "labels.messages": "Сообщения", "labels.messages.all_messages": "Все сообщения", "labels.messages.archive": "Архивировать", @@ -951,14 +956,15 @@ "labels.messages.to": "Кому", "labels.messages.to_inbox": "В Входящие", "labels.messages.unread": "Непрочитано", - "labels.messsage.plural": "{num, plural, one {сообщение} other {сообщения}}", "labels.more_info": "Подробнее", "labels.moved": "перемещено", "labels.n_of_m": "{n} из {m}", + "labels.name": "Имя", "labels.nbgrader": "NBgrader", "labels.new_dots": "Новый...", "labels.new.file": "Новый", "labels.new.file.tooltip": "Создать новый файл", + "labels.no_description": "нет описания", "labels.not_implemented": "не реализовано", "labels.notifications": "Уведомления", "labels.on": "на", @@ -1015,7 +1021,7 @@ "labels.statements": "Заявления", "labels.status": "Статус", "labels.stop": "Стоп", - "labels.subscriptons": "Подписки", + "labels.subscriptions": "Подписки", "labels.support": "Поддержка", "labels.tabs": "Вкладки", "labels.terminal": "Терминал", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Изображение (необязательно)", "project.settings.about-box.name.label": "Имя (необязательно)", "project.settings.about-box.title.label": "Заголовок", + "project.settings.compute-image-selector.button.save-restart": "Сохранить и Перезапустить", + "project.settings.compute-image-selector.doubt": "{default, select, true {Это выбор по умолчанию} other {Примечание: если сомневаетесь, выберите \"{default_title}\"}}", + "project.settings.compute-image-selector.software-env-info": "Выбранная программная среда предоставляет все программное обеспечение, которое может использовать этот проект. Если вам нужно дополнительное программное обеспечение, вы можете либо установить его в проекте, либо обратиться в службу поддержки. Узнайте о установке пакетов Python, ядре Jupyter Python, пакетах R и пакетах Julia.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Узнайте больше о конкретных средах в инвентаризации программного обеспечения. Снимки того, что было доступно в определенный момент времени, доступны для каждой линии сред. Только текущая среда по умолчанию обновляется регулярно.", "project.settings.control.cpu_usage.info": "использовано {cpu_str} времени ЦП с момента запуска проекта", "project.settings.control.cpu_usage.label": "Использование CPU", "project.settings.control.idle_timeout.always_running.info": "Проект будет автоматически запущен, если он остановится по какой-либо причине (будут выполнены любые init скрипты).", diff --git a/src/packages/frontend/i18n/trans/tr_TR.json b/src/packages/frontend/i18n/trans/tr_TR.json index e6615dc002..b27e3b3615 100644 --- a/src/packages/frontend/i18n/trans/tr_TR.json +++ b/src/packages/frontend/i18n/trans/tr_TR.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(mevcut değil)", "custom-software.reset-bar.info": "

\"Sıfırla\"ya tıklamak, bu özel yazılım ortamının tüm eşlik eden dosyalarını ev dizininize kopyalar. Bu işlem, bu proje oluşturulduğunda bir kez yapıldı ve şu anda bu işlemi tekrarlayabilirsiniz. Bu arada {NAME} üzerinde barındırılan bu eşlik eden dosyalar güncellendiyse, daha yeni sürümlerini alırsınız.

Bu işlemin, bu eşlik eden dosyalarda yaptığınız değişiklikleri üzerine yazacağını, ancak diğer dosyaları değiştirmeyeceğini veya silmeyeceğini unutmayın. Ancak, hiçbir şey kaybolmaz: Önceki sürüme hala Anlık Yedekler veya Zamanda Yolculuk ile erişebilirsiniz.

Bu işlem ayrıca projenizi yeniden başlatacaktır!

", "custom-software.reset-bar.reset-and-restart": "Sıfırla ve Yeniden Başlat", + "custom-software.selector.explanation": "Yazılım ortamını seçin. Varsayılan ortamı kullanın veya daha özel olanlardan birini seçin. Hangi seçimi yaparsanız yapın, bunu daha sonra Proje Ayarları → Kontrol → Yazılım Ortamı bölümünden istediğiniz zaman değiştirebilirsiniz.", + "custom-software.selector.message": "Seçilen özel yazılım ortamı proje ile birlikte kalır. Farklı bir yazılım ortamında çalışmak için yeni bir proje oluşturun. Her zaman projeler arasında dosya kopyalayabilirsiniz.", + "custom-software.selector.non-standard": "Standart olmayan bir yazılım ortamı seçtiniz", "customize.footer.name": "{name} tarafından {organizationName}", "customize.footer.system-status": "Sistem Durumu", "editor.build_control_and_log.title": "Yapı Kontrolü ve Günlük", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "Sunucu bilgileri kullanılabilir hale gelene kadar bekleniyor...", "labels.about": "Hakkında", "labels.absolute": "Mutlak", - "labels.acconut.password": "Şifre", - "labels.acconut.password.change": "Şifreyi Değiştir", - "labels.acconut.password.forgot": "Şifrenizi mi Unuttunuz?", "labels.account": "Hesap", "labels.account.first_name": "Adınız", "labels.account.language_tooltip": "Kullanıcı arayüzünün dilini değiştir.", "labels.account.last_name": "Soyadı", + "labels.account.password": "Parola", + "labels.account.password.change": "Şifreyi Değiştir", + "labels.account.password.forgot": "Parolanızı mı unuttunuz?", "labels.activity": "Etkinlik", "labels.admin": "Yönetici", "labels.ai_generate_label": "Bana yazmama yardım et...", @@ -887,8 +890,8 @@ "labels.code_folding": "Kod Katlama", "labels.color": "Renk", "labels.config": "Yapılandırma", - "labels.configuraion": "Yapılandırma", - "labels.configuraion.short": "Yapılandırma", + "labels.configuration": "Yapılandırma", + "labels.configuration.short": "Yapılandırma", "labels.connecting": "Bağlanıyor", "labels.connection": "Bağlantı", "labels.copied": "kopyalandı", @@ -902,6 +905,7 @@ "labels.delete": "Sil", "labels.delete_forever": "Tamamen Sil", "labels.deleted": "silindi", + "labels.description": "Açıklama", "labels.disconnected": "Bağlantı kesildi", "labels.documentation": "Dokümantasyon", "labels.download": "indir", @@ -939,6 +943,7 @@ "labels.loading": "Yükleniyor...", "labels.log": "Günlük", "labels.masked_files": "{masked, select, true {Maskelenmiş dosyaları gizle} other {Maskelenmiş dosyaları göster}}. Maskelenmiş dosyalar, düzenlenmesi amaçlanmayan, otomatik oluşturulan veya geçici dosyalardır. Gri renkte gösterilirler.", + "labels.message.plural": "{num, plural, one {mesaj} other {mesajlar}}", "labels.messages": "Mesajlar", "labels.messages.all_messages": "Tüm Mesajlar", "labels.messages.archive": "Arşivle", @@ -951,14 +956,15 @@ "labels.messages.to": "Kime", "labels.messages.to_inbox": "Gelen Kutusuna", "labels.messages.unread": "Okunmamış", - "labels.messsage.plural": "{num, plural, one {mesaj} other {mesajlar}}", "labels.more_info": "Daha fazla bilgi", "labels.moved": "taşındı", "labels.n_of_m": "{n} / {m}", + "labels.name": "Adı", "labels.nbgrader": "NBgrader", "labels.new_dots": "Yeni...", "labels.new.file": "Yeni", "labels.new.file.tooltip": "Yeni bir dosya oluştur", + "labels.no_description": "açıklama yok", "labels.not_implemented": "uygulanmadı", "labels.notifications": "Bildirimler", "labels.on": "üzerinde", @@ -1015,7 +1021,7 @@ "labels.statements": "Açıklamalar", "labels.status": "Durum", "labels.stop": "Durdur", - "labels.subscriptons": "Abonelikler", + "labels.subscriptions": "Abonelikler", "labels.support": "Destek", "labels.tabs": "Sekmeler", "labels.terminal": "Terminal", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "Görsel (isteğe bağlı)", "project.settings.about-box.name.label": "İsim (isteğe bağlı)", "project.settings.about-box.title.label": "Başlık", + "project.settings.compute-image-selector.button.save-restart": "Kaydet ve Yeniden Başlat", + "project.settings.compute-image-selector.doubt": "{default, select, true {Bu varsayılan seçimdir} other {Not: emin değilseniz, \"{default_title}\" seçin}}", + "project.settings.compute-image-selector.software-env-info": "Seçilen yazılım ortamı, bu projenin kullanabileceği tüm yazılımları sağlar. Ek yazılıma ihtiyacınız varsa, projeye kurabilir veya destekle iletişime geçebilirsiniz. Python paketlerinin kurulumu, Python Jupyter Kernel, R Paketleri ve Julia paketleri hakkında bilgi edinin.", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "Belirli ortamlar hakkında daha fazla bilgi edinin yazılım envanteri. Belirli bir zamanda mevcut olanların anlık görüntüleri, her ortam satırı için mevcuttur. Sadece mevcut varsayılan ortam düzenli olarak güncellenir.", "project.settings.control.cpu_usage.info": "proje başladığından beri {cpu_str} CPU süresi kullanıldı", "project.settings.control.cpu_usage.label": "CPU Kullanımı", "project.settings.control.idle_timeout.always_running.info": "Proje otomatik olarak başlatılacak herhangi bir nedenle durursa (herhangi bir başlangıç betiğini çalıştıracak).", diff --git a/src/packages/frontend/i18n/trans/zh_CN.json b/src/packages/frontend/i18n/trans/zh_CN.json index 589fed167c..e534107f42 100644 --- a/src/packages/frontend/i18n/trans/zh_CN.json +++ b/src/packages/frontend/i18n/trans/zh_CN.json @@ -555,6 +555,9 @@ "course.util.status-cocalc-com.project_not_available": "(不可用)", "custom-software.reset-bar.info": "

点击“重置”会将此自定义软件环境的所有附带文件复制到您的主目录中。此操作在创建此项目时已执行过一次,您现在可以重复此操作。如果这些托管在{NAME}上的附带文件在此期间更新,您将收到最新版本。

请注意,这将覆盖您对这些附带文件所做的任何更改,但不会修改或删除其他文件。不过,什么都不会丢失:您仍然可以通过快照备份时光旅行访问以前的版本。

此操作还将重新启动您的项目!

", "custom-software.reset-bar.reset-and-restart": "重置和重启", + "custom-software.selector.explanation": "选择软件环境。可以使用默认环境,或选择更专业的环境。无论您做出什么选择,您都可以随时在项目设置 → 控制 → 软件环境中更改它。", + "custom-software.selector.message": "所选的自定义软件环境将与项目保持一致。创建一个新项目以在不同的软件环境中工作。您也可以随时在项目之间复制文件。", + "custom-software.selector.non-standard": "您选择了一个非标准软件环境", "customize.footer.name": "{name} 由 {organizationName}", "customize.footer.system-status": "系统状态", "editor.build_control_and_log.title": "构建控制和日志", @@ -861,13 +864,13 @@ "juypter.about.server_info_waiting": "等待服务器信息可用...", "labels.about": "关于", "labels.absolute": "绝对", - "labels.acconut.password": "密码", - "labels.acconut.password.change": "更改密码", - "labels.acconut.password.forgot": "忘记密码?", "labels.account": "账户", "labels.account.first_name": "姓", "labels.account.language_tooltip": "更改用户界面语言。", "labels.account.last_name": "姓氏", + "labels.account.password": "密码", + "labels.account.password.change": "更改密码", + "labels.account.password.forgot": "忘记密码?", "labels.activity": "活动", "labels.admin": "管理员", "labels.ai_generate_label": "帮我写...", @@ -887,8 +890,8 @@ "labels.code_folding": "代码折叠", "labels.color": "颜色", "labels.config": "配置", - "labels.configuraion": "配置", - "labels.configuraion.short": "配置", + "labels.configuration": "配置", + "labels.configuration.short": "配置", "labels.connecting": "连接中", "labels.connection": "连接", "labels.copied": "已复制", @@ -902,6 +905,7 @@ "labels.delete": "删除", "labels.delete_forever": "永久删除", "labels.deleted": "已删除", + "labels.description": "描述", "labels.disconnected": "已断开连接", "labels.documentation": "文档", "labels.download": "下载", @@ -939,6 +943,7 @@ "labels.loading": "加载中...", "labels.log": "日志", "labels.masked_files": "{masked, select, true {隐藏被屏蔽的文件} other {显示被屏蔽的文件}}。被屏蔽的文件是自动生成或临时文件,不应被编辑。它们将被灰显。", + "labels.message.plural": "{num, plural, one {消息} other {消息}}", "labels.messages": "消息", "labels.messages.all_messages": "所有消息", "labels.messages.archive": "存档", @@ -951,14 +956,15 @@ "labels.messages.to": "至", "labels.messages.to_inbox": "移动到收件箱", "labels.messages.unread": "未读", - "labels.messsage.plural": "{num, plural, one {消息} other {消息}}", "labels.more_info": "更多信息", "labels.moved": "已移动", "labels.n_of_m": "{n} 的 {m}", + "labels.name": "姓名", "labels.nbgrader": "NBgrader", "labels.new_dots": "新建...", "labels.new.file": "新建", "labels.new.file.tooltip": "创建新文件", + "labels.no_description": "无描述", "labels.not_implemented": "未实现", "labels.notifications": "通知", "labels.on": "上", @@ -1015,7 +1021,7 @@ "labels.statements": "声明", "labels.status": "状态", "labels.stop": "停止", - "labels.subscriptons": "订阅", + "labels.subscriptions": "订阅", "labels.support": "支持", "labels.tabs": "标签", "labels.terminal": "终端", @@ -1247,6 +1253,10 @@ "project.settings.about-box.image.label": "图像(可选)", "project.settings.about-box.name.label": "姓名(可选)", "project.settings.about-box.title.label": "标题", + "project.settings.compute-image-selector.button.save-restart": "保存并重启", + "project.settings.compute-image-selector.doubt": "{default, select, true {这是默认选择} other {注意:如有疑问,选择“{default_title}”}}", + "project.settings.compute-image-selector.software-env-info": "所选的软件环境提供了此项目可以使用的所有软件。如果您需要其他软件,可以在项目中安装它或者联系支持。了解安装Python包Python Jupyter内核R包Julia包。", + "project.settings.compute-image-selector.software-env-info.cocalc_com": "在软件清单中了解更多关于特定环境的信息。每个环境系列都有特定时间点的可用快照。只有当前默认环境会定期更新。", "project.settings.control.cpu_usage.info": "自项目启动以来已使用{cpu_str}的CPU时间", "project.settings.control.cpu_usage.label": "CPU 使用情况", "project.settings.control.idle_timeout.always_running.info": "项目将自动启动,如果它因任何原因停止(它将运行任何初始化脚本)。", diff --git a/src/packages/frontend/jupyter/select-kernel.tsx b/src/packages/frontend/jupyter/select-kernel.tsx index c1a292e6ae..e9bdf47305 100644 --- a/src/packages/frontend/jupyter/select-kernel.tsx +++ b/src/packages/frontend/jupyter/select-kernel.tsx @@ -3,6 +3,8 @@ * License: MS-RSL – see LICENSE.md for details */ +// cSpell: ignore descr prio dont + // help users selecting a kernel import type { TabsProps } from "antd"; import { @@ -710,7 +712,7 @@ function ComputeServerInfo() { {" "} and configure this notebook to connect to one of its kernels. This is useful if you want to get access to a{" "} - GPU accellerator, run a kernel that is{" "} + GPU accelerator, run a kernel that is{" "} not available locally, or if you want to make use of{" "} a much more powerful machine. diff --git a/src/packages/frontend/messages/compose.tsx b/src/packages/frontend/messages/compose.tsx index 3792ed3110..00ee87ec0a 100644 --- a/src/packages/frontend/messages/compose.tsx +++ b/src/packages/frontend/messages/compose.tsx @@ -433,6 +433,7 @@ export default function Compose({ <> >]; group?: UserGroup; hasInternet?: boolean | undefined; is_active: boolean; isRunning?: boolean | undefined; - project_id: string; - project?: Project; - status: ProjectStatus; - flipTabs: [number, React.Dispatch>]; - onCoCalcCom: boolean; - onCoCalcDocker: boolean; - enabledLLMs: LLMServicesAvailable; mainWidthPx: number; manageStarredFiles: { starred: FlyoutActiveStarred; setStarredPath: (path: string, starState: boolean) => void; }; + onCoCalcCom: boolean; + onCoCalcDocker: boolean; + project_id: string; + project?: Project; + status: ProjectStatus; } export const emptyProjectContext = { @@ -77,6 +78,7 @@ export const emptyProjectContext = { starred: [], setStarredPath: () => {}, }, + compute_image: undefined, } as ProjectContextState; export const ProjectContext: Context = @@ -96,7 +98,7 @@ export function useProjectContextProvider({ mainWidthPx: number; }): ProjectContextState { const actions = useActions({ project_id }); - const { project, group } = useProject(project_id); + const { project, group, compute_image } = useProject(project_id); const status: ProjectStatus = useProjectState(project_id); useProjectStatus(actions); const hasInternet = useProjectHasInternetAccess(project_id); @@ -132,30 +134,31 @@ export function useProjectContextProvider({ const projectsStore = redux.getStore("projects"); return projectsStore.whichLLMareEnabled(project_id); }, [ - haveOpenAI, - haveGoogle, - haveOllama, + haveAnthropic, haveCustomOpenAI, + haveGoogle, haveMistral, - haveAnthropic, + haveOllama, + haveOpenAI, userDefinedLLM, ]); return { actions, active_project_tab, + compute_image, + enabledLLMs, + flipTabs, group, hasInternet, is_active, isRunning, + mainWidthPx, + manageStarredFiles, + onCoCalcCom, + onCoCalcDocker, project_id, project, status, - flipTabs, - onCoCalcCom, - onCoCalcDocker, - enabledLLMs, - mainWidthPx, - manageStarredFiles, }; } diff --git a/src/packages/frontend/project/page/common.tsx b/src/packages/frontend/project/page/common.tsx index 88e2eada70..9a4eaf925c 100644 --- a/src/packages/frontend/project/page/common.tsx +++ b/src/packages/frontend/project/page/common.tsx @@ -57,5 +57,7 @@ export function useProject(project_id) { } }, [group, project_id, project_map]); - return { project, group }; + const compute_image = project_map?.get(project_id)?.get("compute_image") + + return { project, group , compute_image}; } diff --git a/src/packages/frontend/project/settings/body.tsx b/src/packages/frontend/project/settings/body.tsx index f09aa4f59a..a015b5b95b 100644 --- a/src/packages/frontend/project/settings/body.tsx +++ b/src/packages/frontend/project/settings/body.tsx @@ -4,6 +4,7 @@ */ import React, { useMemo } from "react"; + import { Col, Row } from "@cocalc/frontend/antd-bootstrap"; import { redux, useTypedRedux } from "@cocalc/frontend/app-framework"; import { Icon } from "@cocalc/frontend/components"; @@ -95,7 +96,7 @@ export const Body: React.FC = React.memo((props: ReactProps) => { actions={redux.getActions("projects")} /> diff --git a/src/packages/frontend/project/settings/compute-image-selector.tsx b/src/packages/frontend/project/settings/compute-image-selector.tsx index f4108de3fb..462ff62c51 100644 --- a/src/packages/frontend/project/settings/compute-image-selector.tsx +++ b/src/packages/frontend/project/settings/compute-image-selector.tsx @@ -5,15 +5,44 @@ // This is for selecting the "standard" compute images Ubuntu XX.YY, etc. +// cSpell:ignore descr + import { DownOutlined } from "@ant-design/icons"; -import { Button, Col, Dropdown, MenuProps, Row } from "antd"; +import { + Button, + Col, + Descriptions, + DescriptionsProps, + Divider, + Dropdown, + MenuProps, + Modal, + Row, + Space, + Spin, +} from "antd"; import { SizeType } from "antd/es/config-provider/SizeContext"; import { fromJS } from "immutable"; +import { FormattedMessage, useIntl } from "react-intl"; -import { useTypedRedux } from "@cocalc/frontend/app-framework"; -import { Gap, Icon, Loading, Text } from "@cocalc/frontend/components"; +import { + useEffect, + useState, + useTypedRedux, +} from "@cocalc/frontend/app-framework"; +import { + A, + Gap, + HelpIcon, + Icon, + Loading, + Paragraph, + Text, +} from "@cocalc/frontend/components"; import { SoftwareEnvironments } from "@cocalc/frontend/customize"; -import { unreachable } from "@cocalc/util/misc"; +import { labels } from "@cocalc/frontend/i18n"; +import { CancelText } from "@cocalc/frontend/i18n/components"; +import { capitalize, unreachable } from "@cocalc/util/misc"; import { COLORS } from "@cocalc/util/theme"; import { SOFTWARE_ENVIRONMENT_ICON } from "./software-consts"; @@ -38,27 +67,40 @@ const img_sorter = (a, b): number => { }; interface ComputeImageSelectorProps { - selected_image: string; - layout: "vertical" | "horizontal" | "compact"; - onBlur?: () => void; - onFocus?: () => void; - onSelect: (e) => void; + current_image: string; + layout: "horizontal" | "compact" | "dialog"; + onSelect: (img: string) => void; disabled?: boolean; size?: SizeType; + label?: string; // the "okText" on the main button + changing?: boolean; } -export const ComputeImageSelector: React.FC = ( - props: ComputeImageSelectorProps, -) => { - const { - selected_image, - onFocus, - onBlur, - onSelect, - layout, - disabled, - size = "small", - } = props; +export function ComputeImageSelector({ + current_image, + onSelect, + layout, + disabled: propsDisabled, + size: propsSize, + label: propsLabel, + changing = false, +}: ComputeImageSelectorProps) { + const intl = useIntl(); + const isCoCalcCom = useTypedRedux("customize", "is_cocalc_com"); + + const disabled = propsDisabled ?? false; + const size = propsSize ?? "small"; + const label = propsLabel ?? capitalize(intl.formatMessage(labels.select)); + + // initialize with the given default + const [nextImg, setNextImg] = useState(current_image); + const [showDialog, setShowDialog] = useState(false); + + // we need to stay on top of incoming changes unless we're in the dialog + useEffect(() => { + if (showDialog) return; + setNextImg(current_image); + }, [current_image]); const software_envs: SoftwareEnvironments | null = useTypedRedux( "customize", @@ -80,20 +122,19 @@ export const ComputeImageSelector: React.FC = ( const defaultComputeImg = software_envs.get("default"); const GROUPS: string[] = software_envs.get("groups").toJS(); - function compute_image_info(name, type) { + function getComputeImgInfo(name, type) { return computeEnvs.get(name)?.get(type); } - function compute_image_title(name) { + function getComputeImgTitle(name) { return ( - compute_image_info(name, "title") ?? - compute_image_info(name, "tag") ?? - name // last resort fallback, in case the img configured in the project no longer exists + getComputeImgInfo(name, "title") ?? getComputeImgInfo(name, "tag") ?? name // last resort fallback, in case the img configured in the project no longer exists ); } - const default_title = compute_image_title(defaultComputeImg); - const selected_title = compute_image_title(selected_image); + const default_title = getComputeImgTitle(defaultComputeImg); + const current_title = getComputeImgTitle(current_image); + const selected_title = getComputeImgTitle(nextImg); function render_menu_children(group: string): MenuItem[] { return computeEnvs @@ -133,7 +174,7 @@ export const ComputeImageSelector: React.FC = ( function getMenu() { return { - onClick: (e) => onSelect(e.key), + onClick: (e) => (layout === "dialog" ? setNextImg : onSelect)(e.key), style: { maxHeight: "50vh", overflow: "auto" }, items: menu_items(), }; @@ -142,12 +183,7 @@ export const ComputeImageSelector: React.FC = ( function render_selector() { return ( - @@ -155,63 +191,178 @@ export const ComputeImageSelector: React.FC = ( } function render_doubt() { - if (selected_image === defaultComputeImg) { - return undefined; - } else { - return ( - -
(If in doubt, select "{default_title}") -
- ); - } + return ( + + + + + ); } - function render_info(italic: boolean) { - const desc = compute_image_info(selected_image, "descr"); - const registry = compute_image_info(selected_image, "registry"); - const tag = compute_image_info(selected_image, "tag"); - const extra = registry && tag ? `(${registry}:${tag})` : null; + function get_info(img: string) { + const title = getComputeImgTitle(img); + const desc = + getComputeImgInfo(img, "descr") || + `(${intl.formatMessage(labels.no_description)})`; + const registry = getComputeImgInfo(img, "registry"); + const tag = getComputeImgInfo(img, "tag"); + const extra = registry && tag ? `${registry}:${tag}` : null; + return { title, desc, registry, tag, extra }; + } + function render_info(img: string) { + const { desc, extra } = get_info(img); return ( <> - {desc} + {desc} {extra ? ( <> - {" "} - - {extra} - + ({extra}) ) : null} ); } + function renderDialogButton() { + return ( + <> + + + } + onCancel={() => setShowDialog(false)} + onOk={() => { + onSelect(nextImg); + setShowDialog(false); + }} + > + <> + + {capitalize(intl.formatMessage(labels.select))} + {": "} + {render_selector()} + + {renderDialogHelpContent(nextImg)} + {render_doubt()} + + + + ); + } + + function renderDialogHelpContent(img) { + const { title, desc, extra } = get_info(img); + + const items: DescriptionsProps["items"] = [ + { + label: intl.formatMessage(labels.name), + children: {title}, + }, + { label: intl.formatMessage(labels.description), children: desc }, + ]; + + if (extra) { + items.push({ + label: "Image", // do not translate, it's a "docker image" + children: {extra}, + }); + } + + return ( + <> + + + + installing Python packages, + Python Jupyter Kernel, + R Packages and Julia packages.`} + values={{ + A1: (c) => ( + + {c} + + ), + A2: (c) => ( + + {c} + + ), + A3: (c) => ( + + {c} + + ), + A4: (c) => ( + + {c} + + ), + }} + /> + + {isCoCalcCom ? ( + + software inventory. + Snapshots of what has been available at a specific point in time + are available for each line of environments. + Only the current default environment is updated regularly.`} + values={{ + A1: (c) => {c}, + }} + /> + + ) : undefined} + + ); + } + + function renderDialogHelp(img) { + return ( + + {renderDialogHelpContent(img)} + + ); + } + switch (layout) { case "compact": return render_selector(); - case "vertical": - // used in project settings → project control - return ( - - - - - Selected image - - {render_selector()} - - - {render_doubt()} - - - {render_info(true)} - - - ); case "horizontal": // used in projects → create new project return ( @@ -223,7 +374,23 @@ export const ComputeImageSelector: React.FC = ( {render_selector()} - {render_info(false)} + {render_info(nextImg)} + + + ); + // successor of "vertical", where there is a dialog with a clear indication to click a button + case "dialog": + return ( + + + + {" "} + {current_title} {renderDialogHelp(current_image)}{" "} + {renderDialogButton()} + ); @@ -231,4 +398,4 @@ export const ComputeImageSelector: React.FC = ( unreachable(layout); return null; } -}; +} diff --git a/src/packages/frontend/project/settings/project-control.tsx b/src/packages/frontend/project/settings/project-control.tsx index f0ff6de0c9..42c2720e56 100644 --- a/src/packages/frontend/project/settings/project-control.tsx +++ b/src/packages/frontend/project/settings/project-control.tsx @@ -3,7 +3,7 @@ * License: MS-RSL – see LICENSE.md for details */ -import { Button, Space } from "antd"; +import { Space } from "antd"; import { FormattedMessage, useIntl } from "react-intl"; import { alert_message } from "@cocalc/frontend/alerts"; @@ -11,7 +11,6 @@ import { React, redux, Rendered, - useEffect, useState, useTypedRedux, } from "@cocalc/frontend/app-framework"; @@ -39,6 +38,7 @@ import { import * as misc from "@cocalc/util/misc"; import { COMPUTE_STATES } from "@cocalc/util/schema"; import { COLORS } from "@cocalc/util/theme"; +import { useProjectContext } from "../context"; import { ComputeImageSelector } from "./compute-image-selector"; import { RestartProject } from "./restart-project"; import { SOFTWARE_ENVIRONMENT_ICON } from "./software-consts"; @@ -53,27 +53,11 @@ interface ReactProps { export const ProjectControl: React.FC = (props: ReactProps) => { const { project, mode = "project" } = props; + const { project_id, compute_image } = useProjectContext(); const isFlyout = mode === "flyout"; - const customize_kucalc = useTypedRedux("customize", "kucalc"); const intl = useIntl(); - - //const [show_ssh, set_show_ssh] = useState(false) - const [compute_image, set_compute_image] = useState( - project.get("compute_image"), - ); - const [compute_image_changing, set_compute_image_changing] = - useState(false); - const [compute_image_focused, set_compute_image_focused] = - useState(false); - - useEffect(() => { - if (compute_image_focused) return; - const new_image = project.get("compute_image"); - if (new_image !== compute_image) { - set_compute_image(new_image); - set_compute_image_changing(false); - } - }, [compute_image_focused, project.get("compute_image")]); + const customize_kucalc = useTypedRedux("customize", "kucalc"); + const [computeImgChanging, setComputeImgChanging] = useState(false); function render_state() { return ( @@ -88,7 +72,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => { // will update properly.... const date = redux .getStore("projects") - .get_idle_timeout_horizon(project.get("project_id")); + .get_idle_timeout_horizon(project_id); if (date == null) { // e.g., viewing as admin where the info about idle timeout // horizon simply isn't known. @@ -107,16 +91,14 @@ export const ProjectControl: React.FC = (props: ReactProps) => { } async function restart_project() { - await redux - .getActions("projects") - .restart_project(project.get("project_id")); + await redux.getActions("projects").restart_project(project_id); } function render_stop_button(commands): Rendered { return ( ); @@ -126,7 +108,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => { return ( ); @@ -152,14 +134,12 @@ export const ProjectControl: React.FC = (props: ReactProps) => { if (project.getIn(["state", "state"]) !== "running") { return; } - if ( - redux.getStore("projects").is_always_running(project.get("project_id")) - ) { + if (redux.getStore("projects").is_always_running(project_id)) { return ( @@ -181,7 +161,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => { {render_idle_timeout()} @@ -201,7 +181,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => { @@ -232,7 +212,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => { id: "project.settings.control.cpu_usage.label", defaultMessage: "CPU Usage", })} - style={rowstyle(true)} + style={rowStyle(true)} vertical={isFlyout} > @@ -247,25 +227,16 @@ export const ProjectControl: React.FC = (props: ReactProps) => { ); } - function cancel_compute_image(current_image) { - set_compute_image(current_image); - set_compute_image_changing(false); - set_compute_image_focused(false); - } - - async function save_compute_image(current_image) { - set_compute_image(current_image); - set_compute_image_focused(false); - set_compute_image_changing(true); - const new_image = compute_image; - const actions = redux.getProjectActions(project.get("project_id")); + async function saveSelectedComputeImage(new_image: string) { + const actions = redux.getProjectActions(project_id); try { + setComputeImgChanging(true); await actions.set_compute_image(new_image); await restart_project(); } catch (err) { alert_message({ type: "error", message: err }); } finally { - set_compute_image_changing(false); + setComputeImgChanging(false); } } @@ -273,12 +244,13 @@ export const ProjectControl: React.FC = (props: ReactProps) => { if (![KUCALC_COCALC_COM, KUCALC_ON_PREMISES].includes(customize_kucalc)) { return; } + return (
{render_select_compute_image()} @@ -294,7 +266,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => {
Custom image:
- +  
You cannot change a custom software image. Instead, create a @@ -312,58 +284,30 @@ export const ProjectControl: React.FC = (props: ReactProps) => { ); } - function onBlur() { - // don't unfocus when we selected a different compute image - // this will be set to false after either selecting "save&restart" or "cancel" - if (project.get("compute_image") === compute_image) { - set_compute_image_focused(false); - } - } - function render_select_compute_image() { - const current_image = project.get("compute_image"); - if (current_image == null) { - return; + if (compute_image == null) { + return ; } - if (current_image.startsWith(CUSTOM_IMG_PREFIX)) { + if (compute_image.startsWith(CUSTOM_IMG_PREFIX)) { return render_custom_compute_image(); } - const no_value = compute_image == null; - if (no_value || compute_image_changing) { - return ; - } - - // this will at least return a suitable default value - const selected_image = compute_image; - return ( -
- set_compute_image_focused(true)} - onBlur={onBlur} - onSelect={(img) => set_compute_image(img)} - /> - - {selected_image !== current_image ? ( -
- -   - -
- ) : undefined} -
+ ); } - function rowstyle(delim?): React.CSSProperties | undefined { + function rowStyle(delim?): React.CSSProperties | undefined { if (!delim) return; return { borderBottom: "1px solid #ddd", @@ -383,7 +327,7 @@ export const ProjectControl: React.FC = (props: ReactProps) => { {render_state()} @@ -395,19 +339,19 @@ export const ProjectControl: React.FC = (props: ReactProps) => { {!isFlyout ? ( ) : ( - {project.get("project_id")} + {project_id} )} diff --git a/src/packages/frontend/projects/create-project.tsx b/src/packages/frontend/projects/create-project.tsx index 995f3b71f3..e12a15cc26 100644 --- a/src/packages/frontend/projects/create-project.tsx +++ b/src/packages/frontend/projects/create-project.tsx @@ -38,7 +38,6 @@ import { } from "@cocalc/util/db-schema/site-defaults"; import { isValidUUID } from "@cocalc/util/misc"; import { COLORS } from "@cocalc/util/theme"; -import getURL from "@cocalc/frontend/support/url"; const TOGGLE_STYLE: CSS = { margin: "10px 0" } as const; const TOGGLE_BUTTON_STYLE: CSS = { padding: "0" } as const; @@ -435,31 +434,6 @@ export const NewProjectCreator: React.FC = ({ Create Project {requireLicense && !license_id && <> (select license above)} - diff --git a/src/packages/frontend/purchases/balance-modal.tsx b/src/packages/frontend/purchases/balance-modal.tsx index 961e1d1023..8d801df95e 100644 --- a/src/packages/frontend/purchases/balance-modal.tsx +++ b/src/packages/frontend/purchases/balance-modal.tsx @@ -5,6 +5,8 @@ import { getBalance as getBalanceUsingApi } from "./api"; import ShowError from "@cocalc/frontend/components/error"; import { redux } from "@cocalc/frontend/app-framework"; import Payments from "@cocalc/frontend/purchases/payments"; +import { appBasePath } from "@cocalc/frontend/customize/app-base-path"; +import { join } from "path"; export default function BalanceModal({ onRefresh, @@ -92,8 +94,8 @@ function Links({ onClose }) { {LINKS.map(({ label, value }) => ( ))} + ); } diff --git a/src/packages/frontend/purchases/subscriptions-page.tsx b/src/packages/frontend/purchases/subscriptions-page.tsx index b87530036a..4d51f47f0d 100644 --- a/src/packages/frontend/purchases/subscriptions-page.tsx +++ b/src/packages/frontend/purchases/subscriptions-page.tsx @@ -1,13 +1,24 @@ import Subscriptions from "./subscriptions"; import Next from "@cocalc/frontend/components/next"; import { UseBalance } from "@cocalc/frontend/account/other-settings"; +import { Button, Flex } from "antd"; +import { appBasePath } from "@cocalc/frontend/customize/app-base-path"; +import { join } from "path"; +import { Icon } from "@cocalc/frontend/components/icon"; export default function SubscriptionsPage() { return (
-
+ -
+
+ +
Legacy Subscriptions Page... diff --git a/src/packages/next/pages/_app.tsx b/src/packages/next/pages/_app.tsx index 32fab4f436..08adc98066 100644 --- a/src/packages/next/pages/_app.tsx +++ b/src/packages/next/pages/_app.tsx @@ -53,8 +53,11 @@ export default MyApp; // Duplicated in packages/frontend/codemirror/css.js import "@cocalc/cdn/dist/codemirror/theme/3024-day.css"; import "@cocalc/cdn/dist/codemirror/theme/3024-night.css"; +import "@cocalc/cdn/dist/codemirror/theme/abbott.css"; import "@cocalc/cdn/dist/codemirror/theme/abcdef.css"; import "@cocalc/cdn/dist/codemirror/theme/ambiance.css"; +import "@cocalc/cdn/dist/codemirror/theme/ayu-dark.css"; +import "@cocalc/cdn/dist/codemirror/theme/ayu-mirage.css"; import "@cocalc/cdn/dist/codemirror/theme/base16-dark.css"; import "@cocalc/cdn/dist/codemirror/theme/base16-light.css"; import "@cocalc/cdn/dist/codemirror/theme/bespin.css"; @@ -73,9 +76,13 @@ import "@cocalc/cdn/dist/codemirror/theme/hopscotch.css"; import "@cocalc/cdn/dist/codemirror/theme/icecoder.css"; import "@cocalc/cdn/dist/codemirror/theme/idea.css"; import "@cocalc/cdn/dist/codemirror/theme/isotope.css"; +import "@cocalc/cdn/dist/codemirror/theme/juejin.css"; import "@cocalc/cdn/dist/codemirror/theme/lesser-dark.css"; import "@cocalc/cdn/dist/codemirror/theme/liquibyte.css"; import "@cocalc/cdn/dist/codemirror/theme/lucario.css"; +import "@cocalc/cdn/dist/codemirror/theme/material-darker.css"; +import "@cocalc/cdn/dist/codemirror/theme/material-ocean.css"; +import "@cocalc/cdn/dist/codemirror/theme/material-palenight.css"; import "@cocalc/cdn/dist/codemirror/theme/material.css"; import "@cocalc/cdn/dist/codemirror/theme/mbo.css"; import "@cocalc/cdn/dist/codemirror/theme/mdn-like.css"; @@ -104,7 +111,9 @@ import "@cocalc/cdn/dist/codemirror/theme/vibrant-ink.css"; import "@cocalc/cdn/dist/codemirror/theme/xq-dark.css"; import "@cocalc/cdn/dist/codemirror/theme/xq-light.css"; import "@cocalc/cdn/dist/codemirror/theme/yeti.css"; +import "@cocalc/cdn/dist/codemirror/theme/yonce.css"; import "@cocalc/cdn/dist/codemirror/theme/zenburn.css"; + import "@uiw/react-textarea-code-editor/dist.css"; import "../styles/bootstrap-visible.css"; diff --git a/src/packages/package.json b/src/packages/package.json index 111bd71425..82b0ee769d 100644 --- a/src/packages/package.json +++ b/src/packages/package.json @@ -20,8 +20,8 @@ "undici@<5.28.3": "^5.28.4", "postcss@<8.4.31": "^8.4.31", "retry-request@<7.0.1": "^7.0.2", - "@langchain/core": "^0.3.17", - "langchain": "^0.2.19", + "@langchain/core": "^0.3.30", + "langchain": "^0.3.11", "katex@<0.16.9": "^0.16.10", "nanoid@<3.3.8": "^3.3.8" } diff --git a/src/packages/pnpm-lock.yaml b/src/packages/pnpm-lock.yaml index 8a4fd08073..eddfddccd1 100644 --- a/src/packages/pnpm-lock.yaml +++ b/src/packages/pnpm-lock.yaml @@ -10,8 +10,8 @@ overrides: undici@<5.28.3: ^5.28.4 postcss@<8.4.31: ^8.4.31 retry-request@<7.0.1: ^7.0.2 - '@langchain/core': ^0.3.17 - langchain: ^0.2.19 + '@langchain/core': ^0.3.30 + langchain: ^0.3.11 katex@<0.16.9: ^0.16.10 nanoid@<3.3.8: ^3.3.8 @@ -653,6 +653,9 @@ importers: specifier: ^0.3.1 version: 0.3.1 devDependencies: + '@cspell/dict-typescript': + specifier: ^3.2.0 + version: 3.2.0 '@formatjs/cli': specifier: ^6.2.12 version: 6.2.12 @@ -692,6 +695,9 @@ importers: coffeescript: specifier: ^2.5.1 version: 2.7.0 + cspell: + specifier: ^8.17.2 + version: 8.17.2 mocha: specifier: ^10.0.0 version: 10.7.3 @@ -826,7 +832,7 @@ importers: version: 2.1.2 next: specifier: 14.2.22 - version: 14.2.22(@babel/core@7.25.8)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0) + version: 14.2.22(@babel/core@7.25.8)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0) nyc: specifier: ^15.1.0 version: 15.1.0 @@ -1095,7 +1101,7 @@ importers: version: 2.1.2 next: specifier: 14.2.22 - version: 14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0) + version: 14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0) next-remove-imports: specifier: ^1.0.11 version: 1.0.12(webpack@5.96.1) @@ -1104,7 +1110,7 @@ importers: version: 6.0.0-beta.4(zod@3.23.8) next-translate: specifier: ^2.6.2 - version: 2.6.2(next@14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0))(react@18.3.1) + version: 2.6.2(next@14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0))(react@18.3.1) password-hash: specifier: ^1.2.2 version: 1.2.2 @@ -1369,23 +1375,23 @@ importers: specifier: ^1.2.1 version: 1.4.1 '@langchain/anthropic': - specifier: ^0.3.3 - version: 0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/community': specifier: ^0.3.11 - version: 0.3.11(@google-ai/generativelanguage@2.7.0(encoding@0.1.13))(@google-cloud/storage@7.13.0(encoding@0.1.13))(@ibm-cloud/watsonx-ai@1.1.3)(@langchain/anthropic@0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/google-genai@0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8))(@langchain/mistralai@0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@qdrant/js-client-rest@1.12.0(typescript@5.7.3))(axios@1.7.7)(encoding@0.1.13)(fast-xml-parser@4.5.0)(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@137.1.0(encoding@0.1.13))(handlebars@4.7.8)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.1)(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.63.0(encoding@0.1.13)(zod@3.23.8))(pg@8.13.1)(ws@8.18.0) + version: 0.3.11(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/community': + specifier: ^0.3.24 + version: 0.3.24(x37dxigjnxhorsczml2unqokyu) '@langchain/core': - specifier: ^0.3.17 - version: 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) + specifier: ^0.3.30 + version: 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) '@langchain/google-genai': - specifier: ^0.1.0 - version: 0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) + specifier: ^0.1.6 + version: 0.1.6(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) '@langchain/mistralai': - specifier: ^0.1.1 - version: 0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + specifier: ^0.2.0 + version: 0.2.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))) '@langchain/openai': - specifier: ^0.3.7 - version: 0.3.7(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + specifier: ^0.3.17 + version: 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@node-saml/passport-saml': specifier: ^4.0.4 version: 4.0.4 @@ -1399,11 +1405,11 @@ importers: specifier: ^2.1.4 version: 2.1.4 '@sendgrid/client': - specifier: ^8.1.3 - version: 8.1.3 + specifier: ^8.1.4 + version: 8.1.4 '@sendgrid/mail': - specifier: ^8.1.3 - version: 8.1.3 + specifier: ^8.1.4 + version: 8.1.4 '@types/async': specifier: ^2.0.43 version: 2.4.2 @@ -1519,11 +1525,11 @@ importers: specifier: ^5.0.13 version: 5.0.13(encoding@0.1.13) nodemailer: - specifier: ^6.9.14 - version: 6.9.15 + specifier: ^6.9.16 + version: 6.9.16 openai: - specifier: ^4.52.1 - version: 4.63.0(encoding@0.1.13)(zod@3.23.8) + specifier: ^4.78.1 + version: 4.78.1(encoding@0.1.13)(zod@3.23.8) parse-domain: specifier: ^5.0.0 version: 5.0.0(encoding@0.1.13) @@ -2166,6 +2172,9 @@ packages: '@anthropic-ai/sdk@0.27.3': resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==} + '@anthropic-ai/sdk@0.32.1': + resolution: {integrity: sha512-U9JwTrDvdQ9iWuABVsMLj8nJVwAyQz6QXvgLsVhryhCEPkLsbcP/MXxm+jYcAwLoV8ESbaTTjnD4kuAFa+Hyjg==} + '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} @@ -2529,6 +2538,21 @@ packages: '@braintree/sanitize-url@7.1.0': resolution: {integrity: sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==} + '@browserbasehq/sdk@2.0.0': + resolution: {integrity: sha512-BdPlZyn0dpXlL70gNK4acpqWIRB+edo2z0/GalQdWghRq8iQjySd9fVIF3evKH1p2wCYekZJRK6tm29YfXB67g==} + + '@browserbasehq/stagehand@1.9.0': + resolution: {integrity: sha512-0wIFnwOVnUEgVkPKW0RX7NoOt98qaRJ8+l1m9ppk1f5E03GtefDQTMiQwwT9WQn163bpZT5cOhyA1I3jZNfFeA==} + peerDependencies: + '@playwright/test': ^1.42.1 + deepmerge: ^4.3.1 + dotenv: ^16.4.5 + openai: ^4.62.1 + zod: ^3.23.8 + + '@cfworker/json-schema@4.1.0': + resolution: {integrity: sha512-/vYKi/qMxwNsuIJ9WGWwM2rflY40ZenK3Kh4uR5vB9/Nz12Y7IUN/Xf4wDA7vzPfw0VNh3b/jz4+MjcVgARKJg==} + '@chevrotain/cst-dts-gen@11.0.3': resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} @@ -2565,6 +2589,225 @@ packages: '@cocalc/widgets@1.2.0': resolution: {integrity: sha512-q1Ka84hQYwocvoS81gjlgtT6cvgrEtgP9vKbAp6AzKd9moW9r6oHkduL8i9CT8GD/4b7fTJ6oAAqxh160VUuPA==} + '@cspell/cspell-bundled-dicts@8.17.2': + resolution: {integrity: sha512-t+DQtruJF2cYfXF5GC4F0O/PQR04hL5WH55R9oOaor5i7K8ejbw6+jex2LB0XbZFf3qBhXNSnMPuM3b/113LnA==} + engines: {node: '>=18'} + + '@cspell/cspell-json-reporter@8.17.2': + resolution: {integrity: sha512-9QFzuSApaK7SYB50iCTRIUDjFZf6DXTFj8+qTR2cky+/YmEcHDpJieJVCd3STONO4m2JyqIsV7faEuA6M0YcHg==} + engines: {node: '>=18'} + + '@cspell/cspell-pipe@8.17.2': + resolution: {integrity: sha512-LOTKK+hZSUc7vaN8SBEOcv+9dMYbo84awbsjjdI+HkKVBfTt3Lzlu6IJImw39L6pTDAJ1ZxOUdWO89jcxpyihg==} + engines: {node: '>=18'} + + '@cspell/cspell-resolver@8.17.2': + resolution: {integrity: sha512-Z2ndlzVIiXOCBnQby9q+OXcxeddiuCi//pnhO9Jf6Ixgthn+Yg7bwzAnHu+CM1SJaQnZCntGyimdxfojm+WDdA==} + engines: {node: '>=18'} + + '@cspell/cspell-service-bus@8.17.2': + resolution: {integrity: sha512-Cp4kVxJRyyDRd5RVTASlu+ygWG+dgy6GyH7lzb6P8SOXt1mxzCBK6Q5Dc1XHAsvhRaLrnMziCO/5Pj9/0DKs6w==} + engines: {node: '>=18'} + + '@cspell/cspell-types@8.17.2': + resolution: {integrity: sha512-4kMBhX92p0pchEzYTpyLCoe/bUJ29YYvMINTeHTd//hLQh0ZAyMGY1opDm1tqaXX0qpYmWG60KcvN4fCR0i6lw==} + engines: {node: '>=18'} + + '@cspell/dict-ada@4.1.0': + resolution: {integrity: sha512-7SvmhmX170gyPd+uHXrfmqJBY5qLcCX8kTGURPVeGxmt8XNXT75uu9rnZO+jwrfuU2EimNoArdVy5GZRGljGNg==} + + '@cspell/dict-al@1.1.0': + resolution: {integrity: sha512-PtNI1KLmYkELYltbzuoztBxfi11jcE9HXBHCpID2lou/J4VMYKJPNqe4ZjVzSI9NYbMnMnyG3gkbhIdx66VSXg==} + + '@cspell/dict-aws@4.0.9': + resolution: {integrity: sha512-bDYdnnJGwSkIZ4gzrauu7qzOs/ZAY/FnU4k11LgdMI8BhwMfsbsy2EI1iS+sD/BI5ZnNT9kU5YR3WADeNOmhRg==} + + '@cspell/dict-bash@4.2.0': + resolution: {integrity: sha512-HOyOS+4AbCArZHs/wMxX/apRkjxg6NDWdt0jF9i9XkvJQUltMwEhyA2TWYjQ0kssBsnof+9amax2lhiZnh3kCg==} + + '@cspell/dict-companies@3.1.12': + resolution: {integrity: sha512-99FxBNdLOQc3nVQ663Xh7JqDLbIy/AdqOecQ5bk3HpmXpSkoDvTT7XCUU5nQZvmFBrrQlXFKlRRYjLfTEOUDdA==} + + '@cspell/dict-cpp@6.0.3': + resolution: {integrity: sha512-OFrVXdxCeGKnon36Pe3yFjBuY4kzzEwWFf3vDz+cJTodZDkjFkBifQeTtt5YfimgF8cfAJZXkBCsxjipAgmAiw==} + + '@cspell/dict-cryptocurrencies@5.0.4': + resolution: {integrity: sha512-6iFu7Abu+4Mgqq08YhTKHfH59mpMpGTwdzDB2Y8bbgiwnGFCeoiSkVkgLn1Kel2++hYcZ8vsAW/MJS9oXxuMag==} + + '@cspell/dict-csharp@4.0.6': + resolution: {integrity: sha512-w/+YsqOknjQXmIlWDRmkW+BHBPJZ/XDrfJhZRQnp0wzpPOGml7W0q1iae65P2AFRtTdPKYmvSz7AL5ZRkCnSIw==} + + '@cspell/dict-css@4.0.17': + resolution: {integrity: sha512-2EisRLHk6X/PdicybwlajLGKF5aJf4xnX2uuG5lexuYKt05xV/J/OiBADmi8q9obhxf1nesrMQbqAt+6CsHo/w==} + + '@cspell/dict-dart@2.3.0': + resolution: {integrity: sha512-1aY90lAicek8vYczGPDKr70pQSTQHwMFLbmWKTAI6iavmb1fisJBS1oTmMOKE4ximDf86MvVN6Ucwx3u/8HqLg==} + + '@cspell/dict-data-science@2.0.6': + resolution: {integrity: sha512-gOYKZOg358yhnnQfr1/f232REmjeIymXUHJdrLEMPirluv2rzMWvEBBazqRVQ++jMUNg9IduVI0v096ZWMDekA==} + + '@cspell/dict-django@4.1.4': + resolution: {integrity: sha512-fX38eUoPvytZ/2GA+g4bbdUtCMGNFSLbdJJPKX2vbewIQGfgSFJKY56vvcHJKAvw7FopjvgyS/98Ta9WN1gckg==} + + '@cspell/dict-docker@1.1.12': + resolution: {integrity: sha512-6d25ZPBnYZaT9D9An/x6g/4mk542R8bR3ipnby3QFCxnfdd6xaWiTcwDPsCgwN2aQZIQ1jX/fil9KmBEqIK/qA==} + + '@cspell/dict-dotnet@5.0.9': + resolution: {integrity: sha512-JGD6RJW5sHtO5lfiJl11a5DpPN6eKSz5M1YBa1I76j4dDOIqgZB6rQexlDlK1DH9B06X4GdDQwdBfnpAB0r2uQ==} + + '@cspell/dict-elixir@4.0.7': + resolution: {integrity: sha512-MAUqlMw73mgtSdxvbAvyRlvc3bYnrDqXQrx5K9SwW8F7fRYf9V4vWYFULh+UWwwkqkhX9w03ZqFYRTdkFku6uA==} + + '@cspell/dict-en-common-misspellings@2.0.8': + resolution: {integrity: sha512-l1u/pDjwrPyWwBd1hCkZhdsK8yLbLFPD2xWz+1tFFI7WaV9ckDZoF3woRc/0wFGRy53yrfSAVuwhoYOQnHe/fA==} + + '@cspell/dict-en-gb@1.1.33': + resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} + + '@cspell/dict-en_us@4.3.29': + resolution: {integrity: sha512-7kHP0sJ271oS5RqakxvhWvHFoCUFCBDV6+cgIRIpKwW0aYVB4F2AwElGsdeE/XEmihhYUje7e/e6X3IEWHrcrQ==} + + '@cspell/dict-filetypes@3.0.10': + resolution: {integrity: sha512-JEN3627joBVtpa1yfkdN9vz1Z129PoKGHBKjXCEziJvf2Zt1LeULWYYYg/O6pzRR4yzRa5YbXDTuyrN7vX7DFg==} + + '@cspell/dict-flutter@1.1.0': + resolution: {integrity: sha512-3zDeS7zc2p8tr9YH9tfbOEYfopKY/srNsAa+kE3rfBTtQERAZeOhe5yxrnTPoufctXLyuUtcGMUTpxr3dO0iaA==} + + '@cspell/dict-fonts@4.0.4': + resolution: {integrity: sha512-cHFho4hjojBcHl6qxidl9CvUb492IuSk7xIf2G2wJzcHwGaCFa2o3gRcxmIg1j62guetAeDDFELizDaJlVRIOg==} + + '@cspell/dict-fsharp@1.1.0': + resolution: {integrity: sha512-oguWmHhGzgbgbEIBKtgKPrFSVAFtvGHaQS0oj+vacZqMObwkapcTGu7iwf4V3Bc2T3caf0QE6f6rQfIJFIAVsw==} + + '@cspell/dict-fullstack@3.2.3': + resolution: {integrity: sha512-62PbndIyQPH11mAv0PyiyT0vbwD0AXEocPpHlCHzfb5v9SspzCCbzQ/LIBiFmyRa+q5LMW35CnSVu6OXdT+LKg==} + + '@cspell/dict-gaming-terms@1.1.0': + resolution: {integrity: sha512-46AnDs9XkgJ2f1Sqol1WgfJ8gOqp60fojpc9Wxch7x+BA63g4JfMV5/M5x0sI0TLlLY8EBSglcr8wQF/7C80AQ==} + + '@cspell/dict-git@3.0.4': + resolution: {integrity: sha512-C44M+m56rYn6QCsLbiKiedyPTMZxlDdEYAsPwwlL5bhMDDzXZ3Ic8OCQIhMbiunhCOJJT+er4URmOmM+sllnjg==} + + '@cspell/dict-golang@6.0.18': + resolution: {integrity: sha512-Mt+7NwfodDwUk7423DdaQa0YaA+4UoV3XSxQwZioqjpFBCuxfvvv4l80MxCTAAbK6duGj0uHbGTwpv8fyKYPKg==} + + '@cspell/dict-google@1.0.5': + resolution: {integrity: sha512-KNrzfUsoFat94slWzo36g601sIGz6KtE4kBMM0gpqwFLK/MXRyaW65IL4SwysY0PEhuRzg9spLLMnUXuVcY2hQ==} + + '@cspell/dict-haskell@4.0.5': + resolution: {integrity: sha512-s4BG/4tlj2pPM9Ha7IZYMhUujXDnI0Eq1+38UTTCpatYLbQqDwRFf2KNPLRqkroU+a44yTUAe0rkkKbwy4yRtQ==} + + '@cspell/dict-html-symbol-entities@4.0.3': + resolution: {integrity: sha512-aABXX7dMLNFdSE8aY844X4+hvfK7977sOWgZXo4MTGAmOzR8524fjbJPswIBK7GaD3+SgFZ2yP2o0CFvXDGF+A==} + + '@cspell/dict-html@4.0.11': + resolution: {integrity: sha512-QR3b/PB972SRQ2xICR1Nw/M44IJ6rjypwzA4jn+GH8ydjAX9acFNfc+hLZVyNe0FqsE90Gw3evLCOIF0vy1vQw==} + + '@cspell/dict-java@5.0.11': + resolution: {integrity: sha512-T4t/1JqeH33Raa/QK/eQe26FE17eUCtWu+JsYcTLkQTci2dk1DfcIKo8YVHvZXBnuM43ATns9Xs0s+AlqDeH7w==} + + '@cspell/dict-julia@1.1.0': + resolution: {integrity: sha512-CPUiesiXwy3HRoBR3joUseTZ9giFPCydSKu2rkh6I2nVjXnl5vFHzOMLXpbF4HQ1tH2CNfnDbUndxD+I+7eL9w==} + + '@cspell/dict-k8s@1.0.10': + resolution: {integrity: sha512-313haTrX9prep1yWO7N6Xw4D6tvUJ0Xsx+YhCP+5YrrcIKoEw5Rtlg8R4PPzLqe6zibw6aJ+Eqq+y76Vx5BZkw==} + + '@cspell/dict-kotlin@1.1.0': + resolution: {integrity: sha512-vySaVw6atY7LdwvstQowSbdxjXG6jDhjkWVWSjg1XsUckyzH1JRHXe9VahZz1i7dpoFEUOWQrhIe5B9482UyJQ==} + + '@cspell/dict-latex@4.0.3': + resolution: {integrity: sha512-2KXBt9fSpymYHxHfvhUpjUFyzrmN4c4P8mwIzweLyvqntBT3k0YGZJSriOdjfUjwSygrfEwiuPI1EMrvgrOMJw==} + + '@cspell/dict-lorem-ipsum@4.0.4': + resolution: {integrity: sha512-+4f7vtY4dp2b9N5fn0za/UR0kwFq2zDtA62JCbWHbpjvO9wukkbl4rZg4YudHbBgkl73HRnXFgCiwNhdIA1JPw==} + + '@cspell/dict-lua@4.0.7': + resolution: {integrity: sha512-Wbr7YSQw+cLHhTYTKV6cAljgMgcY+EUAxVIZW3ljKswEe4OLxnVJ7lPqZF5JKjlXdgCjbPSimsHqyAbC5pQN/Q==} + + '@cspell/dict-makefile@1.0.4': + resolution: {integrity: sha512-E4hG/c0ekPqUBvlkrVvzSoAA+SsDA9bLi4xSV3AXHTVru7Y2bVVGMPtpfF+fI3zTkww/jwinprcU1LSohI3ylw==} + + '@cspell/dict-markdown@2.0.9': + resolution: {integrity: sha512-j2e6Eg18BlTb1mMP1DkyRFMM/FLS7qiZjltpURzDckB57zDZbUyskOFdl4VX7jItZZEeY0fe22bSPOycgS1Z5A==} + peerDependencies: + '@cspell/dict-css': ^4.0.17 + '@cspell/dict-html': ^4.0.11 + '@cspell/dict-html-symbol-entities': ^4.0.3 + '@cspell/dict-typescript': ^3.2.0 + + '@cspell/dict-monkeyc@1.0.10': + resolution: {integrity: sha512-7RTGyKsTIIVqzbvOtAu6Z/lwwxjGRtY5RkKPlXKHEoEAgIXwfDxb5EkVwzGQwQr8hF/D3HrdYbRT8MFBfsueZw==} + + '@cspell/dict-node@5.0.6': + resolution: {integrity: sha512-CEbhPCpxGvRNByGolSBTrXXW2rJA4bGqZuTx1KKO85mwR6aadeOmUE7xf/8jiCkXSy+qvr9aJeh+jlfXcsrziQ==} + + '@cspell/dict-npm@5.1.22': + resolution: {integrity: sha512-fZBTn8QHr8pAv1/I14CmdDWpVkovCfYpSYiGfV1SZkOjrsKLzPxsP84eaP3RijbFtYj3GMplVN27FR3H5oHfiw==} + + '@cspell/dict-php@4.0.14': + resolution: {integrity: sha512-7zur8pyncYZglxNmqsRycOZ6inpDoVd4yFfz1pQRe5xaRWMiK3Km4n0/X/1YMWhh3e3Sl/fQg5Axb2hlN68t1g==} + + '@cspell/dict-powershell@5.0.14': + resolution: {integrity: sha512-ktjjvtkIUIYmj/SoGBYbr3/+CsRGNXGpvVANrY0wlm/IoGlGywhoTUDYN0IsGwI2b8Vktx3DZmQkfb3Wo38jBA==} + + '@cspell/dict-public-licenses@2.0.12': + resolution: {integrity: sha512-obreJMVbz8ZrXyc60PcS/B2FwXaO3AWPO2x50zrI/n4UDuBr/UdPb6M1q++6c08n+151I35GEx52xRFiToSg4g==} + + '@cspell/dict-python@4.2.14': + resolution: {integrity: sha512-NZ/rsTH5gqTlEwbSg0vn5b1TsyzrUvA6ykwCVCwsVDdlQAS82cyDsF9JqHp8S4d6PFykmkfSxtAXYyOUr0KCbg==} + + '@cspell/dict-r@2.1.0': + resolution: {integrity: sha512-k2512wgGG0lTpTYH9w5Wwco+lAMf3Vz7mhqV8+OnalIE7muA0RSuD9tWBjiqLcX8zPvEJr4LdgxVju8Gk3OKyA==} + + '@cspell/dict-ruby@5.0.7': + resolution: {integrity: sha512-4/d0hcoPzi5Alk0FmcyqlzFW9lQnZh9j07MJzPcyVO62nYJJAGKaPZL2o4qHeCS/od/ctJC5AHRdoUm0ktsw6Q==} + + '@cspell/dict-rust@4.0.11': + resolution: {integrity: sha512-OGWDEEzm8HlkSmtD8fV3pEcO2XBpzG2XYjgMCJCRwb2gRKvR+XIm6Dlhs04N/K2kU+iH8bvrqNpM8fS/BFl0uw==} + + '@cspell/dict-scala@5.0.7': + resolution: {integrity: sha512-yatpSDW/GwulzO3t7hB5peoWwzo+Y3qTc0pO24Jf6f88jsEeKmDeKkfgPbYuCgbE4jisGR4vs4+jfQZDIYmXPA==} + + '@cspell/dict-shell@1.1.0': + resolution: {integrity: sha512-D/xHXX7T37BJxNRf5JJHsvziFDvh23IF/KvkZXNSh8VqcRdod3BAz9VGHZf6VDqcZXr1VRqIYR3mQ8DSvs3AVQ==} + + '@cspell/dict-software-terms@4.2.2': + resolution: {integrity: sha512-cgteXRzx2W/Ug7QSdFJrVxLES7krrZEjZ9J6sXRWOsVYFpgu2Gup8NKmjKOZ8NTnCjHQFrMnbmKdv56q9Kwixw==} + + '@cspell/dict-sql@2.2.0': + resolution: {integrity: sha512-MUop+d1AHSzXpBvQgQkCiok8Ejzb+nrzyG16E8TvKL2MQeDwnIvMe3bv90eukP6E1HWb+V/MA/4pnq0pcJWKqQ==} + + '@cspell/dict-svelte@1.0.6': + resolution: {integrity: sha512-8LAJHSBdwHCoKCSy72PXXzz7ulGROD0rP1CQ0StOqXOOlTUeSFaJJlxNYjlONgd2c62XBQiN2wgLhtPN+1Zv7Q==} + + '@cspell/dict-swift@2.0.5': + resolution: {integrity: sha512-3lGzDCwUmnrfckv3Q4eVSW3sK3cHqqHlPprFJZD4nAqt23ot7fic5ALR7J4joHpvDz36nHX34TgcbZNNZOC/JA==} + + '@cspell/dict-terraform@1.1.0': + resolution: {integrity: sha512-G55pcUUxeXAhejstmD35B47SkFd4uqCQimc+CMgq8Nx0dr03guL2iMsz8faRWQGkCnGimX8S91rbOhDv9p/heg==} + + '@cspell/dict-typescript@3.2.0': + resolution: {integrity: sha512-Pk3zNePLT8qg51l0M4g1ISowYAEGxTuNfZlgkU5SvHa9Cu7x/BWoyYq9Fvc3kAyoisCjRPyvWF4uRYrPitPDFw==} + + '@cspell/dict-vue@3.0.4': + resolution: {integrity: sha512-0dPtI0lwHcAgSiQFx8CzvqjdoXROcH+1LyqgROCpBgppommWpVhbQ0eubnKotFEXgpUCONVkeZJ6Ql8NbTEu+w==} + + '@cspell/dynamic-import@8.17.2': + resolution: {integrity: sha512-n3AVbyBlTn/pLtYK62mqgDfJIuQHUTY/k8SMUCjyjfgoqd3LcKhS1PmbLfDWPMTODK30cSMMTLejjy2bL6ksEw==} + engines: {node: '>=18.0'} + + '@cspell/filetypes@8.17.2': + resolution: {integrity: sha512-2B+dB4Ls2xiOjg+vEEbAuJTHtMfXSihVzfLGnj9+qUfq47iqrz4ZBvCOfZhYdiVaaZJoZUgIw8ljrUfqFzYDAg==} + engines: {node: '>=18'} + + '@cspell/strong-weak-map@8.17.2': + resolution: {integrity: sha512-LbbhdVwtqyJ71X+O7e2PqpDp7zLiY8jmW2CJFLjZYWTUawgav2bpwECGq6O9Gnwqe+fj7yWxGJFDSpXQcCJQAw==} + engines: {node: '>=18'} + + '@cspell/url@8.17.2': + resolution: {integrity: sha512-yy4eYWNX2iutXmy4Igbn/hL/NYaNt94DylohPtgVr0Zxnn/AAArt9Bv1KXPpjB8VFy2wzzPzWmZ+MWDUVpHCbg==} + engines: {node: '>=18.0'} + '@ctrl/tinycolor@3.6.1': resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} @@ -2601,6 +2844,9 @@ packages: peerDependencies: react: '>=16.8.0' + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emotion/hash@0.8.0': resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} @@ -2625,10 +2871,6 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} - '@formatjs/cli@6.2.12': resolution: {integrity: sha512-bt1NEgkeYN8N9zWcpsPu3fZ57vv+biA+NtIQBlyOZnCp1bcvh+vNTXvmwF4C5qxqDtCylpOIb3yi3Ktgp4v0JQ==} engines: {node: '>= 16'} @@ -2731,8 +2973,8 @@ packages: resolution: {integrity: sha512-pevEyZCb0Oc+dYNlSberW8oZBm4ofeTD5wN01TowQMhTwdAbGAnJMtQzoklh6Blq2AKsx8Ox6FWa44KioZLZiA==} engines: {node: '>=18.0.0'} - '@google/generative-ai@0.7.1': - resolution: {integrity: sha512-WTjMLLYL/xfA5BW6xAycRPiAX7FNHKAxrid/ayqC1QMam0KAK0NbMeS9Lubw80gVg5xFMLE+H7pw4wdNzTOlxw==} + '@google/generative-ai@0.21.0': + resolution: {integrity: sha512-7XhUbtnlkSEZK15kN3t+tzIMxsbKm/dSkKBFalj+20NvPKe1kBY7mR2P7vuijEn+f06z5+A8bVGKO0v39cr6Wg==} engines: {node: '>=18.0.0'} '@grpc/grpc-js@1.10.8': @@ -2757,8 +2999,8 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@ibm-cloud/watsonx-ai@1.1.3': - resolution: {integrity: sha512-1RF/pqjpzLdwDaoCw5lkulbiwPM5Gb50ZRtWzHNg3cmHHZxOqhmTKlhxvx+pNX/VQ96zvPKZTVI/Ovp/2VObuw==} + '@ibm-cloud/watsonx-ai@1.3.1': + resolution: {integrity: sha512-oW2r+Oxd7MVE/Q87/sPBCQufQfUtsorGNNgCyA4iW6T3vcxfDyIBInkr3JxnVM7MXp4k2CEXDQmZrRl94mk2rQ==} engines: {node: '>=18.0.0'} '@iconify/types@2.0.0': @@ -2772,6 +3014,111 @@ packages: peerDependencies: react: '*' + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2936,14 +3283,14 @@ packages: '@jupyterlab/statedb@3.5.2': resolution: {integrity: sha512-BrxWSbCJ5MvDn0OiTC/Gv8vuPFIz6mbiQ6JTojcknK1YxDfMOqE5Hvl+f/oODSGnoaVu3s2czCjTMo1sPDjW8g==} - '@langchain/anthropic@0.3.3': - resolution: {integrity: sha512-OvnSV3Tjhb87n7CxWzIcJqcJEM4qoFDYYt6Rua7glQF/Ud5FBTurlzoMunLPTQeF5GdPiaOwP3nUw6I9gF7ppw==} + '@langchain/anthropic@0.3.11': + resolution: {integrity: sha512-rYjDZjMwVQ+cYeJd9IoSESdkkG8fc0m3siGRYKNy6qgYMnqCz8sUPKBanXwbZAs6wvspPCGgNK9WONfaCeX97A==} engines: {node: '>=18'} peerDependencies: - '@langchain/core': ^0.3.17 + '@langchain/core': ^0.3.30 - '@langchain/community@0.3.11': - resolution: {integrity: sha512-hgnqsgWAhfUj9Kp0y+FGxlKot/qJFxat9GfIPJSJU4ViN434PgeMAQK53tkGZ361E2Zoo1V4RoGlSw4AjJILiA==} + '@langchain/community@0.3.24': + resolution: {integrity: sha512-lHio63Bi5mxO6aMzLfXq5ouo6gKpSs7JWJ3Fi2Sl1fdH0AdCEqQZyLG0Fjinx/T815aPBb8eUIdjUlQIrPE2eA==} engines: {node: '>=18'} peerDependencies: '@arcjet/redact': ^v1.0.0-alpha.23 @@ -2960,6 +3307,7 @@ packages: '@azure/search-documents': ^12.0.0 '@azure/storage-blob': ^12.15.0 '@browserbasehq/sdk': '*' + '@browserbasehq/stagehand': ^1.0.0 '@clickhouse/client': ^0.2.5 '@cloudflare/ai': '*' '@datastax/astra-db-ts': ^1.0.0 @@ -2973,8 +3321,10 @@ packages: '@google-cloud/storage': ^6.10.1 || ^7.7.0 '@gradientai/nodejs-sdk': ^1.2.0 '@huggingface/inference': ^2.6.4 + '@huggingface/transformers': ^3.2.3 '@ibm-cloud/watsonx-ai': '*' - '@langchain/core': ^0.3.17 + '@lancedb/lancedb': ^0.12.0 + '@langchain/core': ^0.3.30 '@layerup/layerup-security': ^1.5.12 '@libsql/client': ^0.14.0 '@mendable/firecrawl-js': ^1.4.3 @@ -3001,11 +3351,10 @@ packages: '@upstash/ratelimit': ^1.1.3 || ^2.0.3 '@upstash/redis': ^1.20.6 '@upstash/vector': ^1.1.1 - '@vercel/kv': ^0.2.3 - '@vercel/postgres': ^0.5.0 + '@vercel/kv': '*' + '@vercel/postgres': '*' '@writerai/writer-sdk': ^0.40.2 '@xata.io/client': ^0.28.0 - '@xenova/transformers': ^2.17.2 '@zilliz/milvus2-sdk-node': '>=2.3.5' apify-client: ^2.7.1 assemblyai: ^4.6.0 @@ -3026,6 +3375,7 @@ packages: duck-duck-scrape: ^2.2.5 epub2: ^3.0.1 faiss-node: ^0.5.1 + fast-xml-parser: '*' firebase-admin: ^11.9.0 || ^12.0.0 google-auth-library: '*' googleapis: '*' @@ -3047,6 +3397,7 @@ packages: neo4j-driver: '*' notion-to-md: ^3.1.0 officeparser: ^4.0.4 + openai: '*' pdf-parse: 1.1.1 pg: ^8.11.0 pg-copy-streams: ^6.0.5 @@ -3062,13 +3413,12 @@ packages: typeorm: ^0.3.20 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 + word-extractor: '*' ws: ^8.14.2 - youtube-transcript: ^1.0.6 - youtubei.js: ^9.1.0 + youtubei.js: '*' peerDependenciesMeta: '@arcjet/redact': optional: true @@ -3124,6 +3474,10 @@ packages: optional: true '@huggingface/inference': optional: true + '@huggingface/transformers': + optional: true + '@lancedb/lancedb': + optional: true '@layerup/layerup-security': optional: true '@libsql/client': @@ -3184,8 +3538,6 @@ packages: optional: true '@xata.io/client': optional: true - '@xenova/transformers': - optional: true '@zilliz/milvus2-sdk-node': optional: true apify-client: @@ -3226,6 +3578,8 @@ packages: optional: true faiss-node: optional: true + fast-xml-parser: + optional: true firebase-admin: optional: true google-auth-library: @@ -3296,50 +3650,46 @@ packages: optional: true usearch: optional: true - vectordb: - optional: true voy-search: optional: true weaviate-ts-client: optional: true web-auth-library: optional: true - ws: + word-extractor: optional: true - youtube-transcript: + ws: optional: true youtubei.js: optional: true - '@langchain/core@0.3.17': - resolution: {integrity: sha512-o4lgmRcEqAyioP4Snxat1DGIT0oasOYsfo9uvAxVjwGq+XRicXm+bO3smCBSiiPQnd6jJ9ULWJlI0RFUV1oNqQ==} + '@langchain/core@0.3.30': + resolution: {integrity: sha512-HFUpjJ6FkPSSeLKzCLKxba4VN1DKnrXRmjaWHDb5KUyE9DZrqak3Sh6k2dkzXDJIcdd/uNeeQGFyQnubVEMkPw==} engines: {node: '>=18'} - '@langchain/google-genai@0.1.0': - resolution: {integrity: sha512-6rIba77zJVMj+048tLfkCBrkFbfAMiT+AfLEsu5s+CFoFmXMiI/dbKeDL4vhUWrJVb9uL4ZZyrnl0nKxyEKYgA==} + '@langchain/google-genai@0.1.6': + resolution: {integrity: sha512-LF3fan9pvgFa1vw2/IYGhi5KjppE0OvPFX3QQBUshBLpXWERP+BSpSD7jcXyqm9Kf7DcFj7w5/2knKeEwih8Xg==} engines: {node: '>=18'} peerDependencies: - '@langchain/core': ^0.3.17 + '@langchain/core': ^0.3.30 - '@langchain/mistralai@0.1.1': - resolution: {integrity: sha512-gnHdQRfn+iBReKD0u1nydGqHgVOjnKHpd0Q2qEN61ZuxiqFOOauWYkrbyml7tzcOdMv2vUAr5+pjpXip+ez59w==} + '@langchain/mistralai@0.2.0': + resolution: {integrity: sha512-VdfbKZopAuSXf/vlXbriGWLK3c7j5s47DoB3S31xpprY2BMSKZZiX9vE9TsgxMfAPuIDPIYcfgU7p1upvTYt8g==} engines: {node: '>=18'} peerDependencies: - '@langchain/core': ^0.3.17 - - '@langchain/openai@0.2.11': - resolution: {integrity: sha512-Pu8+WfJojCgSf0bAsXb4AjqvcDyAWyoEB1AoCRNACgEnBWZuitz3hLwCo9I+6hAbeg3QJ37g82yKcmvKAg1feg==} - engines: {node: '>=18'} + '@langchain/core': ^0.3.30 - '@langchain/openai@0.3.7': - resolution: {integrity: sha512-3Jhyy2uKkymYu1iVK18sG2ASZVg0EQcmtTuEPVnrrFGYJ0EIPufejm6bE1ebOHZRc50kSxQwRFCAGrMatNtUiQ==} + '@langchain/openai@0.3.17': + resolution: {integrity: sha512-uw4po32OKptVjq+CYHrumgbfh4NuD7LqyE+ZgqY9I/LrLc6bHLMc+sisHmI17vgek0K/yqtarI0alPJbzrwyag==} engines: {node: '>=18'} peerDependencies: - '@langchain/core': ^0.3.17 + '@langchain/core': ^0.3.30 - '@langchain/textsplitters@0.0.0': - resolution: {integrity: sha512-3hPesWomnmVeYMppEGYbyv0v/sRUugUdlFBNn9m1ueJYHAIKbvCErkWxNUH3guyKKYgJVrkvZoQxcd9faucSaw==} + '@langchain/textsplitters@0.1.0': + resolution: {integrity: sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==} engines: {node: '>=18'} + peerDependencies: + '@langchain/core': ^0.3.30 '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} @@ -3456,8 +3806,10 @@ packages: react: '>= 15' react-dom: '>= 15' - '@mistralai/mistralai@0.4.0': - resolution: {integrity: sha512-KmFzNro1RKxIFh19J3osmUQhucefBBauMXN5fa9doG6dT9OHR/moBvvn+riVlR7c0AVfuxO8Dfa03AyLYYzbyg==} + '@mistralai/mistralai@1.3.6': + resolution: {integrity: sha512-2y7U5riZq+cIjKpxGO9y417XuZv9CpBXEAvbjRMzWPGhXY7U1ZXj4VO4H9riS2kFZqTR2yLEKSE6/pGWVVIqgQ==} + peerDependencies: + zod: '>= 3' '@module-federation/runtime-tools@0.5.1': resolution: {integrity: sha512-nfBedkoZ3/SWyO0hnmaxuz0R0iGPSikHZOAZ0N/dVSQaIzlffUo35B5nlC2wgWIc0JdMZfkwkjZRrnuuDIJbzg==} @@ -3742,6 +4094,11 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.49.1': + resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==} + engines: {node: '>=18'} + hasBin: true + '@plotly/d3-sankey-circular@0.33.1': resolution: {integrity: sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==} @@ -3794,16 +4151,6 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@qdrant/js-client-rest@1.12.0': - resolution: {integrity: sha512-H8VokZq2DYe9yfKG3c7xPNR+Oc5ZvwMUtPEr1wUO4xVi9w5P89MScJaCc9UW8mS5AR+/Y1h2t1YjSxBFPIYT2Q==} - engines: {node: '>=18.0.0', pnpm: '>=8'} - peerDependencies: - typescript: '>=4.7' - - '@qdrant/openapi-typescript-fetch@1.2.6': - resolution: {integrity: sha512-oQG/FejNpItrxRHoyctYvT3rwGZOnK4jr3JdppO/c78ktDvkWiPXPHNsrDf33K9sZdRb6PR7gi4noIapu5q4HA==} - engines: {node: '>=18.0.0', pnpm: '>=8'} - '@rc-component/async-validator@5.0.4': resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} engines: {node: '>=14.x'} @@ -3962,21 +4309,18 @@ packages: react-refresh: optional: true - '@sendgrid/client@8.1.3': - resolution: {integrity: sha512-mRwTticRZIdUTsnyzvlK6dMu3jni9ci9J+dW/6fMMFpGRAJdCJlivFVYQvqk8kRS3RnFzS7sf6BSmhLl1ldDhA==} + '@sendgrid/client@8.1.4': + resolution: {integrity: sha512-VxZoQ82MpxmjSXLR3ZAE2OWxvQIW2k2G24UeRPr/SYX8HqWLV/8UBN15T2WmjjnEb5XSmFImTJOKDzzSeKr9YQ==} engines: {node: '>=12.*'} '@sendgrid/helpers@8.0.0': resolution: {integrity: sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==} engines: {node: '>= 12.0.0'} - '@sendgrid/mail@8.1.3': - resolution: {integrity: sha512-Wg5iKSUOER83/cfY6rbPa+o3ChnYzWwv1OcsR8gCV8SKi+sUPIMroildimlnb72DBkQxcbylxng1W7f0RIX7MQ==} + '@sendgrid/mail@8.1.4': + resolution: {integrity: sha512-MUpIZykD9ARie8LElYCqbcBhGGMaA/E6I7fEcG7Hc2An26QJyLtwOaKQ3taGp8xO8BICPJrSKuYV4bDeAJKFGQ==} engines: {node: '>=12.*'} - '@sevinf/maybe@0.5.0': - resolution: {integrity: sha512-ARhyoYDnY1LES3vYI0fiG6e9esWfTNcXcO6+MPJJXcnyMV3bim4lnFt45VXouV7y82F4x3YH8nOQ6VztuvUiWg==} - '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -4793,6 +5137,9 @@ packages: array-rearrange@2.2.2: resolution: {integrity: sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-tree-filter@2.1.0: resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} @@ -5198,6 +5545,10 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chalk-template@1.1.0: + resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} + engines: {node: '>=14.16'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -5206,6 +5557,10 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -5309,6 +5664,10 @@ packages: peerDependencies: webpack: '>=4.0.0 <6.0.0' + clear-module@4.1.2: + resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} + engines: {node: '>=8'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -5458,6 +5817,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@13.0.0: + resolution: {integrity: sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -5477,6 +5840,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + comment-json@4.2.5: + resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} + engines: {node: '>= 6'} + common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -5638,6 +6005,45 @@ packages: resolution: {integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==} deprecated: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in. + cspell-config-lib@8.17.2: + resolution: {integrity: sha512-g08lRd/smLk2je0j7HlCjdDa0dSTyI2oRP3gScWlsyXjb4NSr9qO0Wzyn5BfPgrqFdS/z4dXbHe+tnLQZCt9iQ==} + engines: {node: '>=18'} + + cspell-dictionary@8.17.2: + resolution: {integrity: sha512-2JC9RRsZruCs3AHId/8X63fSxDoF94dleRp8y/dXS9LIX7NruofohUJwzc/3tlgzCWWdaek1RXhO5xaYX74QtA==} + engines: {node: '>=18'} + + cspell-gitignore@8.17.2: + resolution: {integrity: sha512-zCTTN30zV96LkZmUDrLamEHpLLUGohKglKJ4iXoHQC8pDU3xTsV2qzeCQjM9SEmU3VbE1TzWq+vj0fslasv6pA==} + engines: {node: '>=18'} + hasBin: true + + cspell-glob@8.17.2: + resolution: {integrity: sha512-MTgrWX12oY8Pq/M3PEYCTHwD6w6l+DPtBWm958nhR4dboUbwi/3KfqCtdorkhnuClqLDQuuZHp0uGBXB4cdQrw==} + engines: {node: '>=18'} + + cspell-grammar@8.17.2: + resolution: {integrity: sha512-Asg5XRvrg2yHCvBwzARBPSwI4P5/unN+bKBlxqFazHgR72WJE+ASeobfUNfGi/RxJA2+m0hO91oYtvq6LfK52w==} + engines: {node: '>=18'} + hasBin: true + + cspell-io@8.17.2: + resolution: {integrity: sha512-IUdhbO6gsWYiM2dgudFJQTfnFCDYjLOqal3SxH5o8oOWeu5iIZ+s3N8E1odz0L5zF2Go7zDQSKvPr7Y9OOoRfw==} + engines: {node: '>=18'} + + cspell-lib@8.17.2: + resolution: {integrity: sha512-ZgkTvGh9FO+R3v5TaTqlrJEylWyZhNOzbtrQ5W35Hb3tZ9IJJklxjlcGe+gbFsjGi56kLj6c5L2NR7YX/Fdu5Q==} + engines: {node: '>=18'} + + cspell-trie-lib@8.17.2: + resolution: {integrity: sha512-Bw9q8EWFihkQGo8fNdfkUqYOTsC161+wrQxR7m74K4bKEmQgm0mS0sLHKUwxEOZVGGLmIw9dMQl+8WnTgqOaMQ==} + engines: {node: '>=18'} + + cspell@8.17.2: + resolution: {integrity: sha512-y+INkxDa+M9f+gsyyMLjKh1tF20r2g5Gn22peSRJglrNLQtmDuRtDT9vyDHANXZcH5g6pHDnENQu/+P2Tiyu8Q==} + engines: {node: '>=18'} + hasBin: true + css-color-names@0.0.4: resolution: {integrity: sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==} @@ -6192,8 +6598,8 @@ packages: resolution: {integrity: sha512-xHF8EP4XH/Ba9fvAF2LDd5O3IITVolerVV6xvkxoM8zlGEiCUrggpAnHyOoKJKCrhvPcGATFAUwIujj7bRG5UA==} hasBin: true - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} draw-svg-path@1.0.0: @@ -6321,6 +6727,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + env-variable@0.0.6: resolution: {integrity: sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==} @@ -6613,6 +7023,10 @@ packages: fast-diff@1.2.0: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + fast-equals@5.2.2: + resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} + engines: {node: '>=6.0.0'} + fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -6665,6 +7079,14 @@ packages: fbjs@3.0.4: resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fflate@0.7.3: resolution: {integrity: sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==} @@ -6676,6 +7098,10 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@9.1.0: + resolution: {integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==} + engines: {node: '>=18'} + file-type@16.5.4: resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} engines: {node: '>=10'} @@ -6702,6 +7128,10 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -6718,6 +7148,10 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} + flat-zip@1.0.1: resolution: {integrity: sha512-s/8bbMuRP3YOBYlpcUzmOiJelXpzSGogbZrXtdHUtoO6O0gEcfOCDDkivJ+9zOwNgzgPQOpJX1v6YwBfPQiYqQ==} @@ -6824,6 +7258,11 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -6855,6 +7294,10 @@ packages: resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} engines: {node: '>=14'} + gensequence@7.0.0: + resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} + engines: {node: '>=18'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -6888,6 +7331,10 @@ packages: resolution: {integrity: sha512-lMyPjQyl0cNNdDf2oR+IQ/fM3itDvpoHy45Ymo2r0L1EjazeSl13SfbKZs7KtZ/3MDCeueiaJiuOEfKqRTsSgA==} engines: {node: 10 || 12 || >=14} + get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + get-stream@3.0.0: resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} engines: {node: '>=4'} @@ -6951,6 +7398,10 @@ packages: engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + global-prefix@4.0.0: resolution: {integrity: sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==} engines: {node: '>=16'} @@ -7112,6 +7563,10 @@ packages: has-hover@1.0.1: resolution: {integrity: sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==} + has-own-prop@2.0.0: + resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} + engines: {node: '>=8'} + has-passive-events@1.0.0: resolution: {integrity: sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==} @@ -7324,8 +7779,8 @@ packages: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} - ibm-cloud-sdk-core@5.1.0: - resolution: {integrity: sha512-KJCbPz3tiXB1NGAD7cL4JtwpWV8yd/C7jsaHsxvedMo2ZblNG8emMyvSpGhiKAQVZmi3c0ujz6eJdy22NHuUWQ==} + ibm-cloud-sdk-core@5.1.1: + resolution: {integrity: sha512-19nSrd8UcCP4q3974wtY+gxwOcD9cQfeVUkpGRWoHs4D7bN+SB5g0m5aPAPa6QjwqDY68EYkQUboEt7dTp+4jQ==} engines: {node: '>=18'} iconv-lite@0.4.24: @@ -7380,6 +7835,9 @@ packages: engines: {node: '>=8'} hasBin: true + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + imports-loader@3.1.1: resolution: {integrity: sha512-3QMyGU4RTgxLf0puWkUfT5+7zJvexvB00PI5skDIcxG8O20gZCbQsaRpNBv+cIO6yy/lmlOBwaxc3uH1CV+sww==} engines: {node: '>= 12.13.0'} @@ -7407,6 +7865,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@4.1.3: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8189,185 +8651,57 @@ packages: resolution: {integrity: sha512-EJnr2MHCl5jsE53GtzpNdJ9WTf5g2y+6YKZiQ38txxQkgp1Ewjbg7mDiPUIhfSlDgLUbg3s3qtPpct04JA9yYg==} engines: {node: '>=18.0.0'} - langchain@0.2.20: - resolution: {integrity: sha512-tbels6Rr524iMM3VOQ4aTGnEOOjAA1BQuBR8u/8gJ2yT48lMtIQRAN32Y4KVjKK+hEWxHHlmLBrtgLpTphFjNA==} + langchain@0.3.11: + resolution: {integrity: sha512-PgAG4ZLeuSRkKsyf98cmWGdwKv3I1hOFC8a4fr7e+bm7E+F6Fx6xUkgbuC78ff0N/Cjs5BBryZIFMrqoKPqsvg==} engines: {node: '>=18'} peerDependencies: - '@aws-sdk/client-s3': '*' - '@aws-sdk/client-sagemaker-runtime': '*' - '@aws-sdk/client-sfn': '*' - '@aws-sdk/credential-provider-node': '*' - '@azure/storage-blob': '*' - '@browserbasehq/sdk': '*' - '@gomomento/sdk': '*' - '@gomomento/sdk-core': '*' - '@gomomento/sdk-web': ^1.51.1 '@langchain/anthropic': '*' '@langchain/aws': '*' + '@langchain/cerebras': '*' '@langchain/cohere': '*' + '@langchain/core': ^0.3.30 '@langchain/google-genai': '*' '@langchain/google-vertexai': '*' + '@langchain/google-vertexai-web': '*' '@langchain/groq': '*' '@langchain/mistralai': '*' '@langchain/ollama': '*' - '@mendable/firecrawl-js': '*' - '@notionhq/client': '*' - '@pinecone-database/pinecone': '*' - '@supabase/supabase-js': '*' - '@vercel/kv': '*' - '@xata.io/client': '*' - apify-client: '*' - assemblyai: '*' axios: '*' cheerio: '*' - chromadb: '*' - convex: '*' - couchbase: '*' - d3-dsv: '*' - epub2: '*' - faiss-node: '*' - fast-xml-parser: '*' handlebars: ^4.7.8 - html-to-text: '*' - ignore: '*' - ioredis: '*' - jsdom: '*' - mammoth: '*' - mongodb: '*' - node-llama-cpp: '*' - notion-to-md: '*' - officeparser: '*' - pdf-parse: '*' peggy: ^3.0.2 - playwright: '*' - puppeteer: '*' - pyodide: '>=0.24.1 <0.27.0' - redis: '*' - sonix-speech-recognition: '*' - srt-parser-2: '*' typeorm: '*' - weaviate-ts-client: '*' - web-auth-library: '*' - ws: '*' - youtube-transcript: '*' - youtubei.js: '*' peerDependenciesMeta: - '@aws-sdk/client-s3': + '@langchain/anthropic': optional: true - '@aws-sdk/client-sagemaker-runtime': + '@langchain/aws': optional: true - '@aws-sdk/client-sfn': + '@langchain/cerebras': optional: true - '@aws-sdk/credential-provider-node': + '@langchain/cohere': optional: true - '@azure/storage-blob': + '@langchain/google-genai': optional: true - '@browserbasehq/sdk': + '@langchain/google-vertexai': optional: true - '@gomomento/sdk': + '@langchain/google-vertexai-web': optional: true - '@gomomento/sdk-core': + '@langchain/groq': optional: true - '@gomomento/sdk-web': - optional: true - '@langchain/anthropic': - optional: true - '@langchain/aws': - optional: true - '@langchain/cohere': - optional: true - '@langchain/google-genai': - optional: true - '@langchain/google-vertexai': - optional: true - '@langchain/groq': - optional: true - '@langchain/mistralai': + '@langchain/mistralai': optional: true '@langchain/ollama': optional: true - '@mendable/firecrawl-js': - 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 - couchbase: - optional: true - d3-dsv: - optional: true - epub2: - optional: true - faiss-node: - optional: true - fast-xml-parser: - optional: true handlebars: 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 - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true langium@3.0.0: resolution: {integrity: sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==} @@ -8376,16 +8710,8 @@ packages: langs@2.0.0: resolution: {integrity: sha512-v4pxOBEQVN1WBTfB1crhTtxzNLZU9HPWgadlwzWKISJtt6Ku/CnpBrwVy+jFv8StjxsPfwPFzO0CMwdZLJ0/BA==} - langsmith@0.1.65: - resolution: {integrity: sha512-+aBft8/jUQbVPv3MWVwFwW/rMxyyA8xSRIsjWl773Nc7LDniczuf2rxZEUslV02RB36EIBgCJPNX7jz2L5YsIQ==} - peerDependencies: - openai: '*' - peerDependenciesMeta: - openai: - optional: true - - langsmith@0.2.3: - resolution: {integrity: sha512-SPMYPVqR9kwXZVmJ2PXC61HeBnXIFHrjfjDxQ14H0+n5p4gqjLzgSHIQyxBlFeWQUQzArJxe65Ap+s+Xo1cZog==} + langsmith@0.2.15: + resolution: {integrity: sha512-homtJU41iitqIZVuuLW7iarCzD4f39KcfP9RTBWav9jifhrsDa1Ez89Ejr+4qi72iuBu8Y5xykchsGVgiEZ93w==} peerDependencies: openai: '*' peerDependenciesMeta: @@ -9028,8 +9354,8 @@ packages: resolution: {integrity: sha512-NT+57ZsfZBcMZ8xxX2krKKpHrroDlL7/NQkaStHI4un7W1HV8YWzm405k9D1etkt7tE2LHjU6Zd9y3Efwre/2g==} engines: {node: '>= 18'} - nodemailer@6.9.15: - resolution: {integrity: sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==} + nodemailer@6.9.16: + resolution: {integrity: sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==} engines: {node: '>=6.0.0'} nopt@5.0.0: @@ -9162,17 +9488,8 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} - openai@4.63.0: - resolution: {integrity: sha512-Y9V4KODbmrOpqiOmCDVnPfMxMqKLOx8Hwcdn/r8mePq4yv7FSXGnxCs8/jZKO7zCB/IVPWihpJXwJNAIOEiZ2g==} - hasBin: true - peerDependencies: - zod: ^3.23.8 - peerDependenciesMeta: - zod: - optional: true - - openai@4.67.3: - resolution: {integrity: sha512-HT2tZgjLgRqbLQNKmYtjdF/4TQuiBvg1oGvTDhwpSEQzxo6/oM1us8VQ53vBK2BiKvCxFuq6gKGG70qfwrNhKg==} + openai@4.78.1: + resolution: {integrity: sha512-drt0lHZBd2lMyORckOXFPQTmnGLWSLt8VK0W9BhOKWpMFBEoHMoz5gxMPmVq5icp+sOrsbMnsmZTVHUlKvD1Ow==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -9275,6 +9592,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parent-module@2.0.0: + resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} + engines: {node: '>=8'} + parenthesis@3.1.8: resolution: {integrity: sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==} @@ -9515,15 +9836,6 @@ packages: pg-native: optional: true - pg@8.13.1: - resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} - engines: {node: '>= 8.0.0'} - peerDependencies: - pg-native: '>=3.0.1' - peerDependenciesMeta: - pg-native: - optional: true - pgpass@1.0.5: resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} @@ -9546,6 +9858,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pidusage@1.2.0: resolution: {integrity: sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==} engines: {node: '>=0.12'} @@ -9585,6 +9901,16 @@ packages: resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==} engines: {node: '>= 0.4.0'} + playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} + engines: {node: '>=18'} + hasBin: true + plotly.js@2.35.2: resolution: {integrity: sha512-s0knlWzRvLQXxzf3JQ6qbm8FpwKuMjkr+6r04f8/yCEByAQ+I0jkUzY/hSGRGb+u7iljTh9hgpEiiJP90vjyeQ==} @@ -9800,8 +10126,8 @@ packages: prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - psl@1.10.0: - resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} @@ -10414,6 +10740,10 @@ packages: renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -10714,6 +11044,10 @@ packages: resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} engines: {node: '>=14.15.0'} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -11239,6 +11573,10 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinyqueue@2.0.3: resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==} @@ -11490,10 +11828,6 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} - engines: {node: '>=14.0'} - unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -11953,6 +12287,10 @@ packages: utf-8-validate: optional: true + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + xml-crypto@3.2.0: resolution: {integrity: sha512-qVurBUOQrmvlgmZqIVBqmb06TD2a/PpEUfFPgD7BuBfjmoH4zgkqaWSIJrnymlCvM2GGt9x+XtJFA+ttoAufqg==} engines: {node: '>=4.0.0'} @@ -12036,8 +12374,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -12098,6 +12436,11 @@ packages: peerDependencies: zod: ^3.23.3 + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} + peerDependencies: + zod: ^3.24.1 + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -12203,7 +12546,19 @@ snapshots: '@anthropic-ai/sdk@0.27.3(encoding@0.1.13)': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.6.7(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + '@anthropic-ai/sdk@0.32.1(encoding@0.1.13)': + dependencies: + '@types/node': 18.19.64 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -12867,6 +13222,37 @@ snapshots: '@braintree/sanitize-url@7.1.0': {} + '@browserbasehq/sdk@2.0.0(encoding@0.1.13)': + dependencies: + '@types/node': 18.19.64 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.6.7(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + '@browserbasehq/stagehand@1.9.0(@playwright/test@1.49.1)(deepmerge@4.3.1)(dotenv@16.4.7)(encoding@0.1.13)(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)': + dependencies: + '@anthropic-ai/sdk': 0.27.3(encoding@0.1.13) + '@browserbasehq/sdk': 2.0.0(encoding@0.1.13) + '@playwright/test': 1.49.1 + deepmerge: 4.3.1 + dotenv: 16.4.7 + openai: 4.78.1(encoding@0.1.13)(zod@3.23.8) + sharp: 0.33.5 + ws: 8.18.0 + zod: 3.23.8 + zod-to-json-schema: 3.24.1(zod@3.23.8) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@cfworker/json-schema@4.1.0': {} + '@chevrotain/cst-dts-gen@11.0.3': dependencies: '@chevrotain/gast': 11.0.3 @@ -12914,6 +13300,217 @@ snapshots: '@cocalc/widgets@1.2.0': {} + '@cspell/cspell-bundled-dicts@8.17.2': + dependencies: + '@cspell/dict-ada': 4.1.0 + '@cspell/dict-al': 1.1.0 + '@cspell/dict-aws': 4.0.9 + '@cspell/dict-bash': 4.2.0 + '@cspell/dict-companies': 3.1.12 + '@cspell/dict-cpp': 6.0.3 + '@cspell/dict-cryptocurrencies': 5.0.4 + '@cspell/dict-csharp': 4.0.6 + '@cspell/dict-css': 4.0.17 + '@cspell/dict-dart': 2.3.0 + '@cspell/dict-data-science': 2.0.6 + '@cspell/dict-django': 4.1.4 + '@cspell/dict-docker': 1.1.12 + '@cspell/dict-dotnet': 5.0.9 + '@cspell/dict-elixir': 4.0.7 + '@cspell/dict-en-common-misspellings': 2.0.8 + '@cspell/dict-en-gb': 1.1.33 + '@cspell/dict-en_us': 4.3.29 + '@cspell/dict-filetypes': 3.0.10 + '@cspell/dict-flutter': 1.1.0 + '@cspell/dict-fonts': 4.0.4 + '@cspell/dict-fsharp': 1.1.0 + '@cspell/dict-fullstack': 3.2.3 + '@cspell/dict-gaming-terms': 1.1.0 + '@cspell/dict-git': 3.0.4 + '@cspell/dict-golang': 6.0.18 + '@cspell/dict-google': 1.0.5 + '@cspell/dict-haskell': 4.0.5 + '@cspell/dict-html': 4.0.11 + '@cspell/dict-html-symbol-entities': 4.0.3 + '@cspell/dict-java': 5.0.11 + '@cspell/dict-julia': 1.1.0 + '@cspell/dict-k8s': 1.0.10 + '@cspell/dict-kotlin': 1.1.0 + '@cspell/dict-latex': 4.0.3 + '@cspell/dict-lorem-ipsum': 4.0.4 + '@cspell/dict-lua': 4.0.7 + '@cspell/dict-makefile': 1.0.4 + '@cspell/dict-markdown': 2.0.9(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.0) + '@cspell/dict-monkeyc': 1.0.10 + '@cspell/dict-node': 5.0.6 + '@cspell/dict-npm': 5.1.22 + '@cspell/dict-php': 4.0.14 + '@cspell/dict-powershell': 5.0.14 + '@cspell/dict-public-licenses': 2.0.12 + '@cspell/dict-python': 4.2.14 + '@cspell/dict-r': 2.1.0 + '@cspell/dict-ruby': 5.0.7 + '@cspell/dict-rust': 4.0.11 + '@cspell/dict-scala': 5.0.7 + '@cspell/dict-shell': 1.1.0 + '@cspell/dict-software-terms': 4.2.2 + '@cspell/dict-sql': 2.2.0 + '@cspell/dict-svelte': 1.0.6 + '@cspell/dict-swift': 2.0.5 + '@cspell/dict-terraform': 1.1.0 + '@cspell/dict-typescript': 3.2.0 + '@cspell/dict-vue': 3.0.4 + + '@cspell/cspell-json-reporter@8.17.2': + dependencies: + '@cspell/cspell-types': 8.17.2 + + '@cspell/cspell-pipe@8.17.2': {} + + '@cspell/cspell-resolver@8.17.2': + dependencies: + global-directory: 4.0.1 + + '@cspell/cspell-service-bus@8.17.2': {} + + '@cspell/cspell-types@8.17.2': {} + + '@cspell/dict-ada@4.1.0': {} + + '@cspell/dict-al@1.1.0': {} + + '@cspell/dict-aws@4.0.9': {} + + '@cspell/dict-bash@4.2.0': + dependencies: + '@cspell/dict-shell': 1.1.0 + + '@cspell/dict-companies@3.1.12': {} + + '@cspell/dict-cpp@6.0.3': {} + + '@cspell/dict-cryptocurrencies@5.0.4': {} + + '@cspell/dict-csharp@4.0.6': {} + + '@cspell/dict-css@4.0.17': {} + + '@cspell/dict-dart@2.3.0': {} + + '@cspell/dict-data-science@2.0.6': {} + + '@cspell/dict-django@4.1.4': {} + + '@cspell/dict-docker@1.1.12': {} + + '@cspell/dict-dotnet@5.0.9': {} + + '@cspell/dict-elixir@4.0.7': {} + + '@cspell/dict-en-common-misspellings@2.0.8': {} + + '@cspell/dict-en-gb@1.1.33': {} + + '@cspell/dict-en_us@4.3.29': {} + + '@cspell/dict-filetypes@3.0.10': {} + + '@cspell/dict-flutter@1.1.0': {} + + '@cspell/dict-fonts@4.0.4': {} + + '@cspell/dict-fsharp@1.1.0': {} + + '@cspell/dict-fullstack@3.2.3': {} + + '@cspell/dict-gaming-terms@1.1.0': {} + + '@cspell/dict-git@3.0.4': {} + + '@cspell/dict-golang@6.0.18': {} + + '@cspell/dict-google@1.0.5': {} + + '@cspell/dict-haskell@4.0.5': {} + + '@cspell/dict-html-symbol-entities@4.0.3': {} + + '@cspell/dict-html@4.0.11': {} + + '@cspell/dict-java@5.0.11': {} + + '@cspell/dict-julia@1.1.0': {} + + '@cspell/dict-k8s@1.0.10': {} + + '@cspell/dict-kotlin@1.1.0': {} + + '@cspell/dict-latex@4.0.3': {} + + '@cspell/dict-lorem-ipsum@4.0.4': {} + + '@cspell/dict-lua@4.0.7': {} + + '@cspell/dict-makefile@1.0.4': {} + + '@cspell/dict-markdown@2.0.9(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.0)': + dependencies: + '@cspell/dict-css': 4.0.17 + '@cspell/dict-html': 4.0.11 + '@cspell/dict-html-symbol-entities': 4.0.3 + '@cspell/dict-typescript': 3.2.0 + + '@cspell/dict-monkeyc@1.0.10': {} + + '@cspell/dict-node@5.0.6': {} + + '@cspell/dict-npm@5.1.22': {} + + '@cspell/dict-php@4.0.14': {} + + '@cspell/dict-powershell@5.0.14': {} + + '@cspell/dict-public-licenses@2.0.12': {} + + '@cspell/dict-python@4.2.14': + dependencies: + '@cspell/dict-data-science': 2.0.6 + + '@cspell/dict-r@2.1.0': {} + + '@cspell/dict-ruby@5.0.7': {} + + '@cspell/dict-rust@4.0.11': {} + + '@cspell/dict-scala@5.0.7': {} + + '@cspell/dict-shell@1.1.0': {} + + '@cspell/dict-software-terms@4.2.2': {} + + '@cspell/dict-sql@2.2.0': {} + + '@cspell/dict-svelte@1.0.6': {} + + '@cspell/dict-swift@2.0.5': {} + + '@cspell/dict-terraform@1.1.0': {} + + '@cspell/dict-typescript@3.2.0': {} + + '@cspell/dict-vue@3.0.4': {} + + '@cspell/dynamic-import@8.17.2': + dependencies: + '@cspell/url': 8.17.2 + import-meta-resolve: 4.1.0 + + '@cspell/filetypes@8.17.2': {} + + '@cspell/strong-weak-map@8.17.2': {} + + '@cspell/url@8.17.2': {} + '@ctrl/tinycolor@3.6.1': {} '@discoveryjs/json-ext@0.5.7': {} @@ -12950,6 +13547,11 @@ snapshots: react: 18.3.1 tslib: 2.7.0 + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + optional: true + '@emotion/hash@0.8.0': {} '@emotion/unitless@0.7.5': {} @@ -12977,9 +13579,6 @@ snapshots: '@eslint/js@8.57.1': {} - '@fastify/busboy@2.1.1': - optional: true - '@formatjs/cli@6.2.12': {} '@formatjs/ecma402-abstract@2.3.2': @@ -13112,7 +13711,7 @@ snapshots: '@google/generative-ai@0.14.1': {} - '@google/generative-ai@0.7.1': {} + '@google/generative-ai@0.21.0': {} '@grpc/grpc-js@1.10.8': dependencies: @@ -13126,43 +13725,118 @@ snapshots: protobufjs: 7.3.0 yargs: 17.7.2 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.7(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@ibm-cloud/watsonx-ai@1.3.1': + dependencies: + '@types/node': 18.19.64 + extend: 3.0.2 + ibm-cloud-sdk-core: 5.1.1 + transitivePeerDependencies: + - supports-color + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.1.33': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@antfu/utils': 0.7.10 + '@iconify/types': 2.0.0 + debug: 4.3.7(supports-color@8.1.1) + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.7.2 + transitivePeerDependencies: + - supports-color + + '@icons/material@0.2.4(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true - '@humanwhocodes/module-importer@1.0.1': {} + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true - '@humanwhocodes/object-schema@2.0.3': {} + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true - '@ibm-cloud/watsonx-ai@1.1.3': - dependencies: - '@types/node': 18.19.64 - extend: 3.0.2 - ibm-cloud-sdk-core: 5.1.0 - transitivePeerDependencies: - - supports-color + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true - '@iconify/types@2.0.0': {} + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true - '@iconify/utils@2.1.33': + '@img/sharp-wasm32@0.33.5': dependencies: - '@antfu/install-pkg': 0.4.1 - '@antfu/utils': 0.7.10 - '@iconify/types': 2.0.0 - debug: 4.3.7(supports-color@8.1.1) - kolorist: 1.8.0 - local-pkg: 0.5.0 - mlly: 1.7.2 - transitivePeerDependencies: - - supports-color + '@emnapi/runtime': 1.3.1 + optional: true - '@icons/material@0.2.4(react@18.3.1)': - dependencies: - react: 18.3.1 + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true '@isaacs/cliui@8.0.2': dependencies: @@ -13188,7 +13862,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -13233,7 +13907,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -13273,7 +13947,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 18.19.55 + '@types/node': 18.19.64 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -13534,137 +14208,109 @@ snapshots: transitivePeerDependencies: - crypto - '@langchain/anthropic@0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/anthropic@0.3.11(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: - '@anthropic-ai/sdk': 0.27.3(encoding@0.1.13) - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) + '@anthropic-ai/sdk': 0.32.1(encoding@0.1.13) + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) fast-xml-parser: 4.5.0 zod: 3.23.8 zod-to-json-schema: 3.23.0(zod@3.23.8) transitivePeerDependencies: - encoding - '@langchain/community@0.3.11(@google-ai/generativelanguage@2.7.0(encoding@0.1.13))(@google-cloud/storage@7.13.0(encoding@0.1.13))(@ibm-cloud/watsonx-ai@1.1.3)(@langchain/anthropic@0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/google-genai@0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8))(@langchain/mistralai@0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@qdrant/js-client-rest@1.12.0(typescript@5.7.3))(axios@1.7.7)(encoding@0.1.13)(fast-xml-parser@4.5.0)(google-auth-library@9.14.1(encoding@0.1.13))(googleapis@137.1.0(encoding@0.1.13))(handlebars@4.7.8)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.1)(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.63.0(encoding@0.1.13)(zod@3.23.8))(pg@8.13.1)(ws@8.18.0)': + '@langchain/community@0.3.24(x37dxigjnxhorsczml2unqokyu)': dependencies: - '@ibm-cloud/watsonx-ai': 1.1.3 - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.7(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@browserbasehq/stagehand': 1.9.0(@playwright/test@1.49.1)(deepmerge@4.3.1)(dotenv@16.4.7)(encoding@0.1.13)(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8) + '@ibm-cloud/watsonx-ai': 1.3.1 + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) binary-extensions: 2.2.0 expr-eval: 2.0.2 flat: 5.0.2 - ibm-cloud-sdk-core: 5.1.0 + ibm-cloud-sdk-core: 5.1.1 js-yaml: 4.1.0 - langchain: 0.2.20(@langchain/anthropic@0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@langchain/google-genai@0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8))(@langchain/mistralai@0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.7)(encoding@0.1.13)(fast-xml-parser@4.5.0)(handlebars@4.7.8)(ignore@5.3.1)(openai@4.63.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0) - langsmith: 0.2.3(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) + langchain: 0.3.11(@langchain/anthropic@0.3.11(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(@langchain/google-genai@0.1.6(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8))(@langchain/mistralai@0.2.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))))(axios@1.7.7)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) + openai: 4.78.1(encoding@0.1.13)(zod@3.23.8) uuid: 10.0.0 zod: 3.23.8 zod-to-json-schema: 3.23.0(zod@3.23.8) optionalDependencies: + '@browserbasehq/sdk': 2.0.0(encoding@0.1.13) '@google-ai/generativelanguage': 2.7.0(encoding@0.1.13) '@google-cloud/storage': 7.13.0(encoding@0.1.13) - '@qdrant/js-client-rest': 1.12.0(typescript@5.7.3) + fast-xml-parser: 4.5.0 google-auth-library: 9.14.1(encoding@0.1.13) googleapis: 137.1.0(encoding@0.1.13) ignore: 5.3.1 jsonwebtoken: 9.0.2 lodash: 4.17.21 - pg: 8.13.1 + pg: 8.13.0 + playwright: 1.49.1 ws: 8.18.0 transitivePeerDependencies: - - '@gomomento/sdk-web' - '@langchain/anthropic' - '@langchain/aws' + - '@langchain/cerebras' - '@langchain/cohere' - '@langchain/google-genai' - '@langchain/google-vertexai' + - '@langchain/google-vertexai-web' - '@langchain/groq' - '@langchain/mistralai' - '@langchain/ollama' - axios - - couchbase - encoding - - fast-xml-parser - handlebars - - node-llama-cpp - - openai - peggy - '@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8))': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - transitivePeerDependencies: - - openai - - '@langchain/core@0.3.17(openai@4.67.3(encoding@0.1.13)(zod@3.23.8))': + '@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))': dependencies: + '@cfworker/json-schema': 4.1.0 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.67.3(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 10.0.0 zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) + zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - openai - '@langchain/google-genai@0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': + '@langchain/google-genai@0.1.6(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': dependencies: - '@google/generative-ai': 0.7.1 - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) - zod-to-json-schema: 3.23.0(zod@3.23.8) + '@google/generative-ai': 0.21.0 + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) + zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - zod - '@langchain/mistralai@0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/mistralai@0.2.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) - '@mistralai/mistralai': 0.4.0(encoding@0.1.13) + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) + '@mistralai/mistralai': 1.3.6(zod@3.23.8) uuid: 10.0.0 zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - transitivePeerDependencies: - - encoding - - '@langchain/openai@0.2.11(encoding@0.1.13)': - dependencies: - '@langchain/core': 0.3.17(openai@4.67.3(encoding@0.1.13)(zod@3.23.8)) - js-tiktoken: 1.0.12 - openai: 4.67.3(encoding@0.1.13)(zod@3.23.8) - zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) - transitivePeerDependencies: - - encoding + zod-to-json-schema: 3.24.1(zod@3.23.8) - '@langchain/openai@0.3.7(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': + '@langchain/openai@0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)': dependencies: - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.12 - openai: 4.67.3(encoding@0.1.13)(zod@3.23.8) + openai: 4.78.1(encoding@0.1.13)(zod@3.23.8) zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) + zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - encoding - '@langchain/textsplitters@0.0.0(openai@4.63.0(encoding@0.1.13)(zod@3.23.8))': + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))': dependencies: - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.12 - transitivePeerDependencies: - - openai '@leichtgewicht/ip-codec@2.0.5': {} @@ -13828,11 +14474,9 @@ snapshots: - '@types/react' - encoding - '@mistralai/mistralai@0.4.0(encoding@0.1.13)': + '@mistralai/mistralai@1.3.6(zod@3.23.8)': dependencies: - node-fetch: 2.6.7(encoding@0.1.13) - transitivePeerDependencies: - - encoding + zod: 3.23.8 '@module-federation/runtime-tools@0.5.1': dependencies: @@ -14119,6 +14763,10 @@ snapshots: '@pkgr/core@0.1.1': {} + '@playwright/test@1.49.1': + dependencies: + playwright: 1.49.1 + '@plotly/d3-sankey-circular@0.33.1': dependencies: d3-array: 1.2.4 @@ -14201,17 +14849,6 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@qdrant/js-client-rest@1.12.0(typescript@5.7.3)': - dependencies: - '@qdrant/openapi-typescript-fetch': 1.2.6 - '@sevinf/maybe': 0.5.0 - typescript: 5.7.3 - undici: 5.28.4 - optional: true - - '@qdrant/openapi-typescript-fetch@1.2.6': - optional: true - '@rc-component/async-validator@5.0.4': dependencies: '@babel/runtime': 7.25.7 @@ -14401,7 +15038,7 @@ snapshots: optionalDependencies: react-refresh: 0.14.2 - '@sendgrid/client@8.1.3': + '@sendgrid/client@8.1.4': dependencies: '@sendgrid/helpers': 8.0.0 axios: 1.7.7 @@ -14412,16 +15049,13 @@ snapshots: dependencies: deepmerge: 4.3.1 - '@sendgrid/mail@8.1.3': + '@sendgrid/mail@8.1.4': dependencies: - '@sendgrid/client': 8.1.3 + '@sendgrid/client': 8.1.4 '@sendgrid/helpers': 8.0.0 transitivePeerDependencies: - debug - '@sevinf/maybe@0.5.0': - optional: true - '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@1.8.6': @@ -14647,7 +15281,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/graceful-fs@4.1.9': dependencies: @@ -14699,11 +15333,11 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/ldapjs@2.2.5': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/linkify-it@5.0.0': {} @@ -14750,7 +15384,7 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 form-data: 4.0.0 '@types/node-forge@1.3.11': @@ -14785,7 +15419,7 @@ snapshots: '@types/oauth@0.9.1': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/parse5@6.0.3': {} @@ -14853,13 +15487,13 @@ snapshots: '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 '@types/responselike@1.0.3': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/retry@0.12.0': {} @@ -14885,7 +15519,7 @@ snapshots: '@types/serve-static@1.15.0': dependencies: '@types/mime': 3.0.1 - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/serve-static@1.15.7': dependencies: @@ -14932,16 +15566,16 @@ snapshots: '@types/xml-crypto@1.4.6': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 xpath: 0.0.27 '@types/xml-encryption@1.2.4': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/xml2js@0.4.14': dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/yargs-parser@21.0.0': {} @@ -15412,6 +16046,8 @@ snapshots: array-rearrange@2.2.2: {} + array-timsort@1.0.3: {} + array-tree-filter@2.1.0: {} array-union@1.0.2: @@ -15917,6 +16553,10 @@ snapshots: ccount@2.0.1: {} + chalk-template@1.1.0: + dependencies: + chalk: 5.4.1 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -15928,6 +16568,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.4.1: {} + char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -16048,6 +16690,11 @@ snapshots: del: 4.1.1 webpack: 5.96.1 + clear-module@4.1.2: + dependencies: + parent-module: 2.0.0 + resolve-from: 5.0.0 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -16205,6 +16852,8 @@ snapshots: commander@10.0.1: {} + commander@13.0.0: {} + commander@2.20.3: {} commander@4.1.1: {} @@ -16215,6 +16864,14 @@ snapshots: commander@8.3.0: {} + comment-json@4.2.5: + dependencies: + array-timsort: 1.0.3 + core-util-is: 1.0.3 + esprima: 4.0.1 + has-own-prop: 2.0.0 + repeat-string: 1.6.1 + common-path-prefix@3.0.0: {} commondir@1.0.1: {} @@ -16414,6 +17071,95 @@ snapshots: crypto@1.0.1: {} + cspell-config-lib@8.17.2: + dependencies: + '@cspell/cspell-types': 8.17.2 + comment-json: 4.2.5 + yaml: 2.7.0 + + cspell-dictionary@8.17.2: + dependencies: + '@cspell/cspell-pipe': 8.17.2 + '@cspell/cspell-types': 8.17.2 + cspell-trie-lib: 8.17.2 + fast-equals: 5.2.2 + + cspell-gitignore@8.17.2: + dependencies: + '@cspell/url': 8.17.2 + cspell-glob: 8.17.2 + cspell-io: 8.17.2 + find-up-simple: 1.0.0 + + cspell-glob@8.17.2: + dependencies: + '@cspell/url': 8.17.2 + micromatch: 4.0.8 + + cspell-grammar@8.17.2: + dependencies: + '@cspell/cspell-pipe': 8.17.2 + '@cspell/cspell-types': 8.17.2 + + cspell-io@8.17.2: + dependencies: + '@cspell/cspell-service-bus': 8.17.2 + '@cspell/url': 8.17.2 + + cspell-lib@8.17.2: + dependencies: + '@cspell/cspell-bundled-dicts': 8.17.2 + '@cspell/cspell-pipe': 8.17.2 + '@cspell/cspell-resolver': 8.17.2 + '@cspell/cspell-types': 8.17.2 + '@cspell/dynamic-import': 8.17.2 + '@cspell/filetypes': 8.17.2 + '@cspell/strong-weak-map': 8.17.2 + '@cspell/url': 8.17.2 + clear-module: 4.1.2 + comment-json: 4.2.5 + cspell-config-lib: 8.17.2 + cspell-dictionary: 8.17.2 + cspell-glob: 8.17.2 + cspell-grammar: 8.17.2 + cspell-io: 8.17.2 + cspell-trie-lib: 8.17.2 + env-paths: 3.0.0 + fast-equals: 5.2.2 + gensequence: 7.0.0 + import-fresh: 3.3.0 + resolve-from: 5.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + xdg-basedir: 5.1.0 + + cspell-trie-lib@8.17.2: + dependencies: + '@cspell/cspell-pipe': 8.17.2 + '@cspell/cspell-types': 8.17.2 + gensequence: 7.0.0 + + cspell@8.17.2: + dependencies: + '@cspell/cspell-json-reporter': 8.17.2 + '@cspell/cspell-pipe': 8.17.2 + '@cspell/cspell-types': 8.17.2 + '@cspell/dynamic-import': 8.17.2 + '@cspell/url': 8.17.2 + chalk: 5.4.1 + chalk-template: 1.1.0 + commander: 13.0.0 + cspell-dictionary: 8.17.2 + cspell-gitignore: 8.17.2 + cspell-glob: 8.17.2 + cspell-io: 8.17.2 + cspell-lib: 8.17.2 + fast-json-stable-stringify: 2.1.0 + file-entry-cache: 9.1.0 + get-stdin: 9.0.0 + semver: 7.6.3 + tinyglobby: 0.2.10 + css-color-names@0.0.4: {} css-font-size-keywords@1.0.0: {} @@ -16994,7 +17740,7 @@ snapshots: commander: 6.2.1 glob: 7.2.3 - dotenv@16.4.5: {} + dotenv@16.4.7: {} draw-svg-path@1.0.0: dependencies: @@ -17108,6 +17854,8 @@ snapshots: entities@4.5.0: {} + env-paths@3.0.0: {} + env-variable@0.0.6: {} errno@0.1.8: @@ -17558,6 +18306,8 @@ snapshots: fast-diff@1.2.0: {} + fast-equals@5.2.2: {} + fast-fifo@1.3.2: {} fast-glob@3.3.2: @@ -17620,6 +18370,10 @@ snapshots: transitivePeerDependencies: - encoding + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fflate@0.7.3: {} figures@3.2.0: @@ -17630,6 +18384,10 @@ snapshots: dependencies: flat-cache: 3.2.0 + file-entry-cache@9.1.0: + dependencies: + flat-cache: 5.0.0 + file-type@16.5.4: dependencies: readable-web-to-node-stream: 3.0.2 @@ -17669,6 +18427,8 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 + find-up-simple@1.0.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -17690,6 +18450,11 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + flat-zip@1.0.1: {} flat@5.0.2: {} @@ -17797,6 +18562,9 @@ snapshots: fs.realpath@1.0.0: {} + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -17847,6 +18615,8 @@ snapshots: - encoding - supports-color + gensequence@7.0.0: {} + gensync@1.0.0-beta.2: {} geojson-vt@3.2.1: {} @@ -17873,6 +18643,8 @@ snapshots: dependencies: global: 4.4.0 + get-stdin@9.0.0: {} + get-stream@3.0.0: {} get-stream@6.0.1: {} @@ -17968,6 +18740,10 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + global-prefix@4.0.0: dependencies: ini: 4.1.3 @@ -18220,6 +18996,8 @@ snapshots: dependencies: is-browser: 2.1.0 + has-own-prop@2.0.0: {} + has-passive-events@1.0.0: dependencies: is-browser: 2.1.0 @@ -18517,7 +19295,7 @@ snapshots: hyperdyperid@1.2.0: {} - ibm-cloud-sdk-core@5.1.0: + ibm-cloud-sdk-core@5.1.1: dependencies: '@types/debug': 4.1.12 '@types/node': 10.14.22 @@ -18525,7 +19303,7 @@ snapshots: axios: 1.7.4(debug@4.3.7) camelcase: 6.3.0 debug: 4.3.7(supports-color@8.1.1) - dotenv: 16.4.5 + dotenv: 16.4.7 extend: 3.0.2 file-type: 16.5.4 form-data: 4.0.0 @@ -18579,6 +19357,8 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + import-meta-resolve@4.1.0: {} + imports-loader@3.1.1(webpack@5.96.1): dependencies: source-map: 0.6.1 @@ -18600,6 +19380,8 @@ snapshots: ini@1.3.8: {} + ini@4.1.1: {} + ini@4.1.3: {} inline-style-parser@0.1.1: {} @@ -19005,7 +19787,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -19154,7 +19936,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -19166,7 +19948,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 18.19.55 + '@types/node': 18.19.64 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -19261,7 +20043,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -19289,7 +20071,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -19354,7 +20136,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.19.55 + '@types/node': 18.19.64 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -19369,7 +20151,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -19611,31 +20393,27 @@ snapshots: lambda-cloud-node-api@1.0.1: {} - langchain@0.2.20(@langchain/anthropic@0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@langchain/google-genai@0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8))(@langchain/mistralai@0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(axios@1.7.7)(encoding@0.1.13)(fast-xml-parser@4.5.0)(handlebars@4.7.8)(ignore@5.3.1)(openai@4.63.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0): + langchain@0.3.11(@langchain/anthropic@0.3.11(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13))(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(@langchain/google-genai@0.1.6(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8))(@langchain/mistralai@0.2.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))))(axios@1.7.7)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)): dependencies: - '@langchain/core': 0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.2.11(encoding@0.1.13) - '@langchain/textsplitters': 0.0.0(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) - binary-extensions: 2.2.0 + '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))) js-tiktoken: 1.0.12 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.1.65(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 - yaml: 2.4.2 + yaml: 2.7.0 zod: 3.23.8 zod-to-json-schema: 3.23.0(zod@3.23.8) optionalDependencies: - '@langchain/anthropic': 0.3.3(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) - '@langchain/google-genai': 0.1.0(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) - '@langchain/mistralai': 0.1.1(@langchain/core@0.3.17(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/anthropic': 0.3.11(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) + '@langchain/google-genai': 0.1.6(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8) + '@langchain/mistralai': 0.2.0(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.23.8))) axios: 1.7.7 - fast-xml-parser: 4.5.0 handlebars: 4.7.8 - ignore: 5.3.1 - ws: 8.18.0 transitivePeerDependencies: - encoding - openai @@ -19650,29 +20428,7 @@ snapshots: langs@2.0.0: {} - langsmith@0.1.65(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)): - dependencies: - '@types/uuid': 10.0.0 - commander: 10.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.6.3 - uuid: 10.0.0 - optionalDependencies: - openai: 4.63.0(encoding@0.1.13)(zod@3.23.8) - - langsmith@0.2.3(openai@4.63.0(encoding@0.1.13)(zod@3.23.8)): - dependencies: - '@types/uuid': 10.0.0 - commander: 10.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.6.3 - uuid: 10.0.0 - optionalDependencies: - openai: 4.63.0(encoding@0.1.13)(zod@3.23.8) - - langsmith@0.2.3(openai@4.67.3(encoding@0.1.13)(zod@3.23.8)): + langsmith@0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.23.8)): dependencies: '@types/uuid': 10.0.0 commander: 10.0.1 @@ -19681,7 +20437,7 @@ snapshots: semver: 7.6.3 uuid: 10.0.0 optionalDependencies: - openai: 4.67.3(encoding@0.1.13)(zod@3.23.8) + openai: 4.78.1(encoding@0.1.13)(zod@3.23.8) launch-editor@2.9.1: dependencies: @@ -20303,12 +21059,12 @@ snapshots: next-tick@1.1.0: {} - next-translate@2.6.2(next@14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0))(react@18.3.1): + next-translate@2.6.2(next@14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0))(react@18.3.1): dependencies: - next: 14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0) + next: 14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0) react: 18.3.1 - next@14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0): + next@14.2.22(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0): dependencies: '@next/env': 14.2.22 '@swc/helpers': 0.5.5 @@ -20330,12 +21086,13 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.22 '@next/swc-win32-x64-msvc': 14.2.22 '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.49.1 sass: 1.81.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@14.2.22(@babel/core@7.25.8)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0): + next@14.2.22(@babel/core@7.25.8)(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.81.0): dependencies: '@next/env': 14.2.22 '@swc/helpers': 0.5.5 @@ -20357,6 +21114,7 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.22 '@next/swc-win32-x64-msvc': 14.2.22 '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.49.1 sass: 1.81.0 transitivePeerDependencies: - '@babel/core' @@ -20458,7 +21216,7 @@ snapshots: transitivePeerDependencies: - encoding - nodemailer@6.9.15: {} + nodemailer@6.9.16: {} nopt@5.0.0: dependencies: @@ -20657,23 +21415,9 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 - openai@4.63.0(encoding@0.1.13)(zod@3.23.8): - dependencies: - '@types/node': 18.19.50 - '@types/node-fetch': 2.6.11 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.6.7(encoding@0.1.13) - optionalDependencies: - zod: 3.23.8 - transitivePeerDependencies: - - encoding - - openai@4.67.3(encoding@0.1.13)(zod@3.23.8): + openai@4.78.1(encoding@0.1.13)(zod@3.23.8): dependencies: - '@types/node': 18.19.55 + '@types/node': 18.19.64 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -20788,6 +21532,10 @@ snapshots: dependencies: callsites: 3.1.0 + parent-module@2.0.0: + dependencies: + callsites: 3.1.0 + parenthesis@3.1.8: {} parse-domain@5.0.0(encoding@0.1.13): @@ -21014,11 +21762,6 @@ snapshots: dependencies: pg: 8.13.0 - pg-pool@3.7.0(pg@8.13.1): - dependencies: - pg: 8.13.1 - optional: true - pg-protocol@1.5.0: {} pg-protocol@1.7.0: {} @@ -21051,17 +21794,6 @@ snapshots: optionalDependencies: pg-cloudflare: 1.1.1 - pg@8.13.1: - dependencies: - pg-connection-string: 2.7.0 - pg-pool: 3.7.0(pg@8.13.1) - pg-protocol: 1.7.0 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.1.1 - optional: true - pgpass@1.0.5: dependencies: split2: 4.1.0 @@ -21084,6 +21816,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pidusage@1.2.0: {} pify@2.3.0: {} @@ -21114,6 +21848,14 @@ snapshots: pkginfo@0.4.1: {} + playwright-core@1.49.1: {} + + playwright@1.49.1: + dependencies: + playwright-core: 1.49.1 + optionalDependencies: + fsevents: 2.3.2 + plotly.js@2.35.2(@rspack/core@1.1.1(@swc/helpers@0.5.15))(mapbox-gl@3.8.0)(webpack@5.96.1): dependencies: '@plotly/d3': 3.8.2 @@ -21389,7 +22131,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.55 + '@types/node': 18.19.64 long: 5.2.3 protocol-buffers-schema@3.6.0: {} @@ -21404,7 +22146,7 @@ snapshots: prr@1.0.1: optional: true - psl@1.10.0: + psl@1.15.0: dependencies: punycode: 2.3.1 @@ -22229,6 +22971,8 @@ snapshots: lodash: 4.17.21 strip-ansi: 6.0.1 + repeat-string@1.6.1: {} + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -22551,6 +23295,32 @@ snapshots: tar-fs: 3.0.6 tunnel-agent: 0.6.0 + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -23160,6 +23930,11 @@ snapshots: tinyexec@0.3.1: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinyqueue@2.0.3: {} tinyqueue@3.0.0: {} @@ -23199,7 +23974,7 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.10.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 @@ -23396,11 +24171,6 @@ snapshots: undici-types@5.26.5: {} - undici@5.28.4: - dependencies: - '@fastify/busboy': 2.1.1 - optional: true - unified@10.1.2: dependencies: '@types/unist': 2.0.11 @@ -23977,6 +24747,8 @@ snapshots: ws@8.18.0: {} + xdg-basedir@5.1.0: {} + xml-crypto@3.2.0: dependencies: '@xmldom/xmldom': 0.8.10 @@ -24043,7 +24815,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.2: {} + yaml@2.7.0: {} yargs-parser@18.1.3: dependencies: @@ -24124,6 +24896,10 @@ snapshots: dependencies: zod: 3.23.8 + zod-to-json-schema@3.24.1(zod@3.23.8): + dependencies: + zod: 3.23.8 + zod@3.23.8: {} zwitch@2.0.4: {} diff --git a/src/packages/server/llm/index.ts b/src/packages/server/llm/index.ts index 7a9feeed19..56f585aeaf 100644 --- a/src/packages/server/llm/index.ts +++ b/src/packages/server/llm/index.ts @@ -26,6 +26,7 @@ import { LanguageModel, LanguageServiceCore, OpenAIMessages, + OpenAIModel, getLLMCost, isAnthropicModel, isCoreLanguageModel, @@ -50,6 +51,7 @@ import { evaluateCustomOpenAI } from "./custom-openai"; import { GoogleGenAIClient } from "./google-genai-client"; import { evaluateMistral } from "./mistral"; import { evaluateOllama } from "./ollama"; +import { evaluateOpenAILC } from "./openai-lc"; import { saveResponse } from "./save-response"; import { evaluateUserDefinedLLM } from "./user-defined"; @@ -176,12 +178,15 @@ async function evaluateImpl({ throw new Error("Wrong client. This should never happen. [GenAI]"); } return await evaluateGoogleGenAI({ ...params, client }); + } else if (isOpenAIModel(model)) { + return await evaluateOpenAILC(params); } else { - const client = await getClient(model); - if (!(client instanceof OpenAI)) { - throw new Error("Wrong client. This should never happen. [OpenAI]"); - } - return await evaluateOpenAI({ ...params, client }); + throw new Error(`Unable to handel model '${model}'.`); + // const client = await getClient(model); + // if (!(client instanceof OpenAI)) { + // throw new Error("Wrong client. This should never happen. [OpenAI]"); + // } + // return await evaluateOpenAI({ ...params, client }); } })(); @@ -327,15 +332,7 @@ export async function evaluateOpenAI({ throw new Error(`Model "${model}" not an OpenAI model.`); } - // the *-8k variants are artificial – the input is already limited/truncated to 8k - // convert *-preview and all *-8k to "gpt-4-turbo" - if (model.startsWith("gpt-4-turbo")) { - model = "gpt-4-turbo"; - } else if (model.startsWith("gpt-4o-mini")) { - model = "gpt-4o-mini"; - } else if (model.startsWith("gpt-4o")) { - model = "gpt-4o"; - } + model = normalizeOpenAIModel(model); const messages: OpenAIMessages = []; if (system) { @@ -356,3 +353,23 @@ export async function evaluateOpenAI({ stream, }); } + +export function normalizeOpenAIModel(model): OpenAIModel { + // the *-8k variants are artificial – the input is already limited/truncated to 8k + // convert *-preview and all *-8k to "gpt-4-turbo" + if (model.startsWith("gpt-4-turbo")) { + model = "gpt-4-turbo"; + } else if (model.startsWith("gpt-4o-mini")) { + model = "gpt-4o-mini"; + } else if (model.startsWith("gpt-4o")) { + model = "gpt-4o"; + } else if (model.startsWith("o1-mini")) { + model = "o1-mini"; + } else if (model.startsWith("o1")) { + model = "o1"; + } + if (!isOpenAIModel(model)) { + throw new Error(`Internal problem normalizing OpenAI model name: ${model}`); + } + return model; +} diff --git a/src/packages/server/llm/openai-lc.ts b/src/packages/server/llm/openai-lc.ts index defd0dcbe4..625e674dc3 100644 --- a/src/packages/server/llm/openai-lc.ts +++ b/src/packages/server/llm/openai-lc.ts @@ -1,4 +1,4 @@ -import { AIMessageChunk } from "@langchain/core/messages"; +import { AIMessageChunk, MessageContent } from "@langchain/core/messages"; import { ChatPromptTemplate, MessagesPlaceholder, @@ -11,6 +11,7 @@ import getLogger from "@cocalc/backend/logger"; import { getServerSettings } from "@cocalc/database/settings"; import { isOpenAIModel } from "@cocalc/util/db-schema/llm-utils"; import { ChatOutput, History } from "@cocalc/util/types/llm"; +import { normalizeOpenAIModel } from "."; import { transformHistoryToMessages } from "./chat-history"; import { numTokens } from "./chatgpt-numtokens"; @@ -42,20 +43,28 @@ async function getParams(model: string) { } export async function evaluateOpenAILC( - opts: Readonly, + opts: OpenAIOpts, mode: "cocalc" | "user" = "cocalc", ): Promise { + if (mode === "cocalc") { + opts.model = normalizeOpenAIModel(opts.model); + } if (mode === "cocalc" && !isOpenAIModel(opts.model)) { throw new Error(`model ${opts.model} not supported`); } const { system, history, input, maxTokens, stream, model } = opts; + // As of Jan 2025: reasoning models (o1) do not support streaming + // https://platform.openai.com/docs/guides/reasoning/ + const isO1 = model != "o1-mini" && model != "o1"; + const streaming = stream != null && isO1; + log.debug("evaluateOpenAILC", { input, history, system, model, - stream: stream != null, + stream: streaming, maxTokens, }); @@ -65,13 +74,11 @@ export async function evaluateOpenAILC( const openai = new ChatOpenAI({ ...params, maxTokens, - streaming: stream != null, - }).bind({ - stream_options: { include_usage: true }, - }); + streaming, + }).bind(isO1 ? {} : { stream_options: { include_usage: true } }); const prompt = ChatPromptTemplate.fromMessages([ - ["system", system ?? ""], + [isO1 ? "developer" : "system", system ?? ""], new MessagesPlaceholder("history"), ["human", "{input}"], ]); @@ -94,25 +101,34 @@ export async function evaluateOpenAILC( }, }); - const chunks = await chainWithHistory.stream({ - input, - }); - let finalResult: AIMessageChunk | undefined; let output = ""; - for await (const chunk of chunks) { - const { content } = chunk; - if (typeof content !== "string") continue; - output += content; - opts.stream?.(content); - - if (finalResult) { - finalResult = concat(finalResult, chunk); - } else { - finalResult = chunk; + + if (streaming) { + const chunks = await chainWithHistory.stream({ + input, + }); + + for await (const chunk of chunks) { + const { content } = chunk; + const contentStr = content2string(content); + output += contentStr; + opts.stream?.(contentStr); + + if (finalResult) { + finalResult = concat(finalResult, chunk); + } else { + finalResult = chunk; + } } + } else { + finalResult = await chainWithHistory.invoke({ input }); + const { content } = finalResult; + output = content2string(content); } + log.debug("finalResult", finalResult); + // and an empty call when done opts.stream?.(); @@ -142,3 +158,17 @@ export async function evaluateOpenAILC( }; } } + +function content2string(content: MessageContent): string { + if (typeof content === "string") { + return content; + } else { + const output0 = content[0]; + if (output0.type === "text") { + return output0.text; + } else { + log.debug("content2string unable to process", content); + return "Problem processing returned message content."; + } + } +} diff --git a/src/packages/server/llm/test/00.test.ts b/src/packages/server/llm/test/00.test.ts index 178c8541c2..4f1fdb9476 100644 --- a/src/packages/server/llm/test/00.test.ts +++ b/src/packages/server/llm/test/00.test.ts @@ -12,12 +12,13 @@ import { isMistralModel, isOpenAIModel, } from "@cocalc/util/db-schema/llm-utils"; -import { evaluateGoogleGenAI, evaluateOpenAI } from ".."; +import { evaluateGoogleGenAI } from ".."; import { getClient } from "../client"; // import { evaluateMistral } from "../mistral"; import { evaluateAnthropic } from "../anthropic"; import { GoogleGenAIClient } from "../google-genai-client"; import { evaluateMistral } from "../mistral"; +import { evaluateOpenAILC } from "../openai-lc"; import { enableModels, setupAPIKeys, test_llm } from "./shared"; beforeAll(async () => { @@ -48,12 +49,7 @@ async function llmOpenAI(model: LanguageModelCore) { throw new Error(`model: ${model} is not an OpenAI model`); } - const client = await getClient(model); - if (client == null) { - throw new Error(`model: ${model} not found`); - } - const answer = await evaluateOpenAI({ - client: client as any, + const answer = await evaluateOpenAILC({ model, ...QUERY, }); @@ -78,6 +74,13 @@ test_llm("openai")("OpenAI", () => { test("gpt 4o mini works", async () => { llmOpenAI("gpt-4o-mini-8k"); }); + + // test("gpt o1", async () => { + // llmOpenAI("o1-8k"); + // }); + // test("gpt o1 mini works", async () => { + // llmOpenAI("o1-mini-8k"); + // }); }); // ATTN: does not work everywhere around, geolocation matters diff --git a/src/packages/server/messages/admin-alert.ts b/src/packages/server/messages/admin-alert.ts index f159d1035e..5b80b0b335 100644 --- a/src/packages/server/messages/admin-alert.ts +++ b/src/packages/server/messages/admin-alert.ts @@ -17,11 +17,10 @@ is broken. */ -import { getServerSettings } from "@cocalc/database/settings/server-settings"; -import send from "./send"; -import getAdmins from "@cocalc/server/accounts/admins"; import { getLogger } from "@cocalc/backend/logger"; import { db } from "@cocalc/database"; +import getAdmins from "@cocalc/server/accounts/admins"; +import send from "./send"; const logger = getLogger("server:messages:admin"); @@ -75,12 +74,9 @@ export default async function adminAlert({ logger.debug("no admins so nothing to do"); return; } - const { support_account_id } = await getServerSettings(); - const from_id = support_account_id ? support_account_id : to_ids[0]; return await send({ subject: `Admin Alert - ${subject}`, body: toString(body) + stack, - from_id, to_ids, dedupMinutes, }); diff --git a/src/packages/server/messages/send.ts b/src/packages/server/messages/send.ts index 3f620fed55..5c42cd6494 100644 --- a/src/packages/server/messages/send.ts +++ b/src/packages/server/messages/send.ts @@ -2,16 +2,17 @@ Send an internal message via cocalc's internal messaging system. */ -import isValidAccount from "@cocalc/server/accounts/is-valid-account"; +import { join } from "path"; + +import basePath from "@cocalc/backend/base-path"; +import { getLogger } from "@cocalc/backend/logger"; import getPool from "@cocalc/database/pool"; -import { getServerSettings } from "@cocalc/database/settings/server-settings"; import { updateUnreadMessageCount } from "@cocalc/database/postgres/messages"; -import basePath from "@cocalc/backend/base-path"; -import { join } from "path"; -import type { Message } from "@cocalc/util/db-schema/messages"; +import { getServerSettings } from "@cocalc/database/settings/server-settings"; +import isValidAccount from "@cocalc/server/accounts/is-valid-account"; import { getUser } from "@cocalc/server/purchases/statements/email-statement"; +import type { Message } from "@cocalc/util/db-schema/messages"; import { getSupportAccountId } from "./support-account"; -import { getLogger } from "@cocalc/backend/logger"; const logger = getLogger("server:messages:send"); diff --git a/src/packages/server/messages/support-account.ts b/src/packages/server/messages/support-account.ts index b24c9ce82f..ec39e0e728 100644 --- a/src/packages/server/messages/support-account.ts +++ b/src/packages/server/messages/support-account.ts @@ -1,15 +1,16 @@ -import { getServerSettings } from "@cocalc/database/settings/server-settings"; -import createAccount from "@cocalc/server/accounts/create-account"; -import { uuid } from "@cocalc/util/misc"; import { randomBytes } from "crypto"; + +import { db } from "@cocalc/database"; import getPool from "@cocalc/database/pool"; +import { getServerSettings } from "@cocalc/database/settings/server-settings"; +import createAccount from "@cocalc/server/accounts/create-account"; import { callback2 } from "@cocalc/util/async-utils"; -import { db } from "@cocalc/database"; +import { uuid } from "@cocalc/util/misc"; -export async function getSupportAccountId() { +export async function getSupportAccountId(): Promise { const { support_account_id } = await getServerSettings(); if (support_account_id) { - return support_account_id; + return support_account_id as string; } return await createSupportAccount(); } diff --git a/src/packages/server/package.json b/src/packages/server/package.json index 81c29eeb6b..a479089cf6 100644 --- a/src/packages/server/package.json +++ b/src/packages/server/package.json @@ -50,18 +50,18 @@ "@google-cloud/storage-transfer": "^3.3.0", "@google/generative-ai": "^0.14.0", "@isaacs/ttlcache": "^1.2.1", - "@langchain/anthropic": "^0.3.3", - "@langchain/community": "^0.3.11", - "@langchain/core": "^0.3.17", - "@langchain/google-genai": "^0.1.0", - "@langchain/mistralai": "^0.1.1", - "@langchain/openai": "^0.3.7", + "@langchain/anthropic": "^0.3.11", + "@langchain/community": "^0.3.24", + "@langchain/core": "^0.3.30", + "@langchain/google-genai": "^0.1.6", + "@langchain/mistralai": "^0.2.0", + "@langchain/openai": "^0.3.17", "@node-saml/passport-saml": "^4.0.4", "@passport-js/passport-twitter": "^1.0.8", "@passport-next/passport-google-oauth2": "^1.0.0", "@passport-next/passport-oauth2": "^2.1.4", - "@sendgrid/client": "^8.1.3", - "@sendgrid/mail": "^8.1.3", + "@sendgrid/client": "^8.1.4", + "@sendgrid/mail": "^8.1.4", "@types/async": "^2.0.43", "@types/cloudflare": "^2.7.11", "@types/dot-object": "^2.1.6", @@ -100,8 +100,8 @@ "ms": "2.1.2", "nanoid": "^3.3.8", "node-zendesk": "^5.0.13", - "nodemailer": "^6.9.14", - "openai": "^4.52.1", + "nodemailer": "^6.9.16", + "openai": "^4.78.1", "parse-domain": "^5.0.0", "passport": "^0.6.0", "passport-activedirectory": "^1.0.4", diff --git a/src/packages/util/db-schema/accounts.ts b/src/packages/util/db-schema/accounts.ts index 49568e2d78..8914b0b4bb 100644 --- a/src/packages/util/db-schema/accounts.ts +++ b/src/packages/util/db-schema/accounts.ts @@ -624,6 +624,9 @@ export const EDITOR_COLOR_SCHEMES: { [name: string]: string } = { "3024-day": "3024 day", "3024-night": "3024 night", abcdef: "abcdef", + abbott: "Abbott", + "ayu-dark": "Ayu dark", + "ayu-mirage": "Ayu mirage", //'ambiance-mobile' : 'Ambiance mobile' # doesn't highlight python, confusing ambiance: "Ambiance", "base16-dark": "Base 16 dark", @@ -644,10 +647,14 @@ export const EDITOR_COLOR_SCHEMES: { [name: string]: string } = { icecoder: "Icecoder", idea: "Idea", // this messes with the global hinter CSS! isotope: "Isotope", + juejin: "Juejin", "lesser-dark": "Lesser dark", liquibyte: "Liquibyte", lucario: "Lucario", material: "Material", + "material-darker": "Material darker", + "material-ocean": "Material ocean", + "material-palenight": "Material palenight", mbo: "mbo", "mdn-like": "MDN like", midnight: "Midnight", @@ -676,6 +683,7 @@ export const EDITOR_COLOR_SCHEMES: { [name: string]: string } = { "xq-dark": "Xq dark", "xq-light": "Xq light", yeti: "Yeti", + yonce: "Yonce", zenburn: "Zenburn", }; diff --git a/src/packages/util/db-schema/llm-utils.ts b/src/packages/util/db-schema/llm-utils.ts index 0168459fff..44744444e5 100644 --- a/src/packages/util/db-schema/llm-utils.ts +++ b/src/packages/util/db-schema/llm-utils.ts @@ -118,6 +118,10 @@ export const MODELS_OPENAI = [ "gpt-4-32k", "gpt-3.5-turbo-16k", "text-embedding-ada-002", // TODO: this is for embeddings, should be moved to a different place + "o1-mini-8k", + "o1-mini", + "o1-8k", + "o1", ] as const; export type OpenAIModel = (typeof MODELS_OPENAI)[number]; @@ -226,6 +230,12 @@ export const USER_SELECTABLE_LLMS_BY_VENDOR: { m === "gpt-4-turbo-preview-8k" || m === "gpt-4o-8k" || m === "gpt-4o-mini-8k", + + // ATTN: there is code for o1 and o1-mini, but it does not work yet. + // The API changed, there is no support for streaming, and it took + // too much of my time trying to get it to work already. + // m === "o1-mini-8k" || + // m === "o1-8k", ), google: GOOGLE_MODELS.filter( (m) => @@ -707,6 +717,10 @@ export const LLM_USERNAMES: LLM2String = { "gpt-4o-8k": "GPT-4o", "gpt-4o-mini": "GPT-4o Mini 128k", "gpt-4o-mini-8k": "GPT-4o Mini", + "o1-mini-8k": "OpenAI o1-mini", + "o1-8k": "OpenAI o1", + "o1-mini": "OpenAI o1-mini", + o1: "OpenAI o1", "text-embedding-ada-002": "Text Embedding Ada 002", // TODO: this is for embeddings, should be moved to a different place "text-bison-001": "PaLM 2", "chat-bison-001": "PaLM 2", @@ -742,8 +756,7 @@ export const LLM_DESCR: LLM2String = { "gpt-3.5-turbo-16k": `Same as ${LLM_USERNAMES["gpt-3.5-turbo"]} but with larger 16k token context`, "gpt-4-turbo-preview-8k": "More powerful, fresher knowledge, and lower price than GPT-4. (OpenAI, 8k token context)", - "gpt-4-turbo-preview": - "Like GPT-4 Turbo, but with up to 128k token context", + "gpt-4-turbo-preview": "Like GPT-4 Turbo, but with up to 128k token context", "gpt-4-turbo-8k": "Faster, fresher knowledge, and lower price than GPT-4. (OpenAI, 8k token context)", "gpt-4-turbo": "Like GPT-4 Turbo, but with up to 128k token context", @@ -754,6 +767,10 @@ export const LLM_DESCR: LLM2String = { "Most cost-efficient small model (OpenAI, 8k token context)", "gpt-4o-mini": "Most cost-efficient small model (OpenAI, 128k token context)", "text-embedding-ada-002": "Text embedding Ada 002 by OpenAI", // TODO: this is for embeddings, should be moved to a different place + "o1-8k": "Spends more time thinking (8k token context)", + "o1-mini-8k": "A cost-efficient reasoning model (8k token context)", + o1: "Spends more time thinking (8k token context)", + "o1-mini": "A cost-efficient reasoning model (8k token context)", "text-bison-001": "", "chat-bison-001": "", "gemini-pro": @@ -933,6 +950,30 @@ export const LLM_COST: { [name in LanguageModelCore]: Cost } = { max_tokens: 128000, // This is a lot: blows up the "max cost" calculation → requires raising the minimum balance and quota limit free: true, }, + o1: { + prompt_tokens: usd1Mtokens(15), + completion_tokens: usd1Mtokens(7.5), + max_tokens: 8192, // like gpt-4-turbo-8k + free: false, + }, + "o1-mini": { + prompt_tokens: usd1Mtokens(3), + completion_tokens: usd1Mtokens(1.5), + max_tokens: 8192, // like gpt-4-turbo-8k + free: false, + }, + "o1-8k": { + prompt_tokens: usd1Mtokens(15), + completion_tokens: usd1Mtokens(7.5), + max_tokens: 8192, // like gpt-4-turbo-8k + free: false, + }, + "o1-mini-8k": { + prompt_tokens: usd1Mtokens(3), + completion_tokens: usd1Mtokens(1.5), + max_tokens: 8192, // like gpt-4-turbo-8k + free: false, + }, // also OpenAI "text-embedding-ada-002": { prompt_tokens: 0.0001 / 1000, @@ -948,14 +989,14 @@ export const LLM_COST: { [name in LanguageModelCore]: Cost } = { free: true, }, "gemini-1.5-pro-8k": { - prompt_tokens: usd1Mtokens(3.5), // (we're below the 128k context) - completion_tokens: usd1Mtokens(10.5), + prompt_tokens: usd1Mtokens(1.25), // (we're below the 128k context) + completion_tokens: usd1Mtokens(5), max_tokens: 8_000, free: false, }, "gemini-1.5-pro": { - prompt_tokens: usd1Mtokens(7), - completion_tokens: usd1Mtokens(21), + prompt_tokens: usd1Mtokens(2.5), + completion_tokens: usd1Mtokens(10), max_tokens: 1048576, free: false, }, @@ -1028,14 +1069,14 @@ export const LLM_COST: { [name in LanguageModelCore]: Cost } = { free: false, }, "claude-3-haiku-8k": { - prompt_tokens: usd1Mtokens(0.25), - completion_tokens: usd1Mtokens(1.25), + prompt_tokens: usd1Mtokens(0.8), + completion_tokens: usd1Mtokens(4), max_tokens: 8_000, // limited to 8k tokens, offered for free free: true, }, "claude-3-haiku": { - prompt_tokens: usd1Mtokens(0.25), - completion_tokens: usd1Mtokens(1.25), + prompt_tokens: usd1Mtokens(0.8), + completion_tokens: usd1Mtokens(4), max_tokens: 200_000, free: false, }, diff --git a/src/packages/util/db-schema/purchase-quotas.ts b/src/packages/util/db-schema/purchase-quotas.ts index c6747c6d4c..9e892f6333 100644 --- a/src/packages/util/db-schema/purchase-quotas.ts +++ b/src/packages/util/db-schema/purchase-quotas.ts @@ -62,12 +62,22 @@ const GPT_OMNI_8K: Spec = { const GPT_OMNI_MINI_128k: Spec = { ...GPT_OMNI_128k, display: "OpenAI GPT-4o Mini 128k", -}; +} as const; const GPT_OMNI_MINI_8K: Spec = { ...GPT_OMNI_MINI_128k, display: "OpenAI GPT-4o Mini", -}; +} as const; + +const GPT_O1_8K: Spec = { + ...GPT_OMNI_128k, + display: "OpenAI o1", +} as const; + +const GPT_O1_MINI_8K: Spec = { + ...GPT_O1_8K, + display: "OpenAI o1 mini", +} as const; const GOOGLE_AI_COLOR = "#ff4d4f"; @@ -168,6 +178,10 @@ export const QUOTA_SPEC: QuotaSpec = { "openai-gpt-4o-8k": GPT_OMNI_8K, "openai-gpt-4o-mini": GPT_OMNI_MINI_128k, "openai-gpt-4o-mini-8k": GPT_OMNI_MINI_8K, + "openai-o1-mini-8k": GPT_O1_8K, + "openai-o1-8k": GPT_O1_MINI_8K, + "openai-o1-mini": GPT_O1_8K, + "openai-o1": GPT_O1_MINI_8K, "google-text-bison-001": { display: "Google Palm 2 (Text)", color: GOOGLE_AI_COLOR,