Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chore: Update in-app copy #4448

Merged
merged 14 commits into from
Jan 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions electron/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "jan",
"version": "0.1.1736316956",
"version": "0.1.1736864554",
"main": "./build/main.js",
"author": "Jan <[email protected]>",
"license": "MIT",
Expand Down Expand Up @@ -144,4 +144,4 @@
"hoistingLimits": "workspaces"
},
"packageManager": "[email protected]"
}
}
2 changes: 1 addition & 1 deletion extensions/assistant-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@janhq/assistant-extension",
"productName": "Jan Assistant",
"version": "1.0.2",
"description": "This extension enables assistants, including Jan, a default assistant that can call all downloaded models",
"description": "Powers the default AI assistant that works with all your installed models.",
"main": "dist/index.js",
"node": "dist/node/index.js",
"author": "Jan <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion extensions/conversational-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@janhq/conversational-extension",
"productName": "Conversational",
"version": "1.0.0",
"description": "This extension enables conversations and state persistence via your filesystem",
"description": "Enables conversations and state persistence via your filesystem.",
"main": "dist/index.js",
"author": "Jan <[email protected]>",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion extensions/engine-management-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@janhq/engine-management-extension",
"productName": "Engine Management",
"version": "1.0.0",
"description": "Extension for managing engines and their configurations",
"description": "Manages AI engines and their configurations.",
"main": "dist/index.js",
"node": "dist/node/index.cjs.js",
"author": "Jan <[email protected]>",
Expand Down
2 changes: 1 addition & 1 deletion extensions/model-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@janhq/model-extension",
"productName": "Model Management",
"version": "1.0.35",
"description": "This extension manages model lists, model details, and model configurations",
"description": "Handles model lists, their details, and settings.",
"main": "dist/index.js",
"author": "Jan <[email protected]>",
"license": "AGPL-3.0",
Expand Down
2 changes: 1 addition & 1 deletion extensions/monitoring-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "@janhq/monitoring-extension",
"productName": "System Monitoring",
"version": "1.0.10",
"description": "This extension provides system health and OS level data",
"description": "Provides system health and OS level data.",
"main": "dist/index.js",
"node": "dist/node/index.cjs.js",
"author": "Jan <[email protected]>",
Expand Down
29 changes: 15 additions & 14 deletions extensions/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -509,71 +509,71 @@ __metadata:

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension":
version: 0.1.10
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=e8dac7&locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension"
resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension"
dependencies:
rxjs: "npm:^7.8.1"
ulidx: "npm:^2.3.0"
checksum: 10c0/394734b0cc26f051a9ad138f8ae642d066acff07de26ab7c4b944d190c030cb422ac044da6352461589e13a480425200cbd8e5a549cf0181cd5c9af4b1d7eb2c
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
languageName: node
linkType: hard

Expand All @@ -588,6 +588,7 @@ __metadata:
p-queue: "npm:^8.0.1"
rimraf: "npm:^3.0.2"
rolldown: "npm:^1.0.0-beta.1"
run-script-os: "npm:^1.1.6"
ts-loader: "npm:^9.5.0"
typescript: "npm:^5.3.3"
languageName: unknown
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ const ModalConfirmReset = () => {
content={
<div>
<p className="text-[hsla(var(--text-secondary))]">
Restore app to initial state, erasing all models and chat history.
This action is irreversible and recommended only if the application
is corrupted.
Restore appplication to its initial state, erasing all models and
chat history. This action is irreversible and recommended only if
the application is corrupted.
</p>

<div className="my-4">
Expand Down
6 changes: 3 additions & 3 deletions web/screens/Settings/Advanced/FactoryReset/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ const FactoryReset = () => {
</h6>
</div>
<p className="whitespace-pre-wrap font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Restore app to initial state, erasing all models and chat history.
This action is irreversible and recommended only if the application is
corrupted.
Restore appplication to its initial state, erasing all models and chat
history. This action is irreversible and recommended only if the
application is corrupted.
</p>
</div>
<Button
Expand Down
9 changes: 5 additions & 4 deletions web/screens/Settings/Advanced/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
const selectedGpu = gpuList
.filter((x) => gpusInUse.includes(x.id))
.map((y) => {
return y['name']

Check warning on line 81 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

81 line is not covered with tests
})

/**
Expand All @@ -87,7 +87,7 @@
* there is also a case where state update persist everytime user type in the input
*/
const updatePullOptions = useDebouncedCallback(
() => configurePullOptions(),

Check warning on line 90 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

90 line is not covered with tests
300
)
/**
Expand All @@ -100,7 +100,7 @@
if (value.trim().startsWith('http')) {
setProxy(value.trim())
} else {
setProxy('')

Check warning on line 103 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

103 line is not covered with tests
}
updatePullOptions()
},
Expand All @@ -118,10 +118,10 @@
relaunch: boolean = true
) => {
const appConfiguration: AppConfiguration =
await window.core?.api?.getAppConfigurations()
appConfiguration.quick_ask = e
await window.core?.api?.updateAppConfiguration(appConfiguration)
if (relaunch) window.core?.api?.relaunch()

Check warning on line 124 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

121-124 lines are not covered with tests
}

/**
Expand All @@ -131,15 +131,15 @@
* @returns void
*/
const updateVulkanEnabled = async (e: boolean, relaunch: boolean = true) => {
toaster({

Check warning on line 134 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

134 line is not covered with tests
title: 'Reload',
description: 'Vulkan settings updated. Reload now to apply the changes.',
})
stopModel()
setVulkanEnabled(e)
await saveSettings({ vulkan: e, gpusInUse: [] })

Check warning on line 140 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

138-140 lines are not covered with tests
// Relaunch to apply settings
if (relaunch) window.location.reload()

Check warning on line 142 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

142 line is not covered with tests
}

/**
Expand Down Expand Up @@ -185,20 +185,20 @@
* @returns
*/
const handleGPUChange = async (gpuId: string) => {
let updatedGpusInUse = [...gpusInUse]
if (updatedGpusInUse.includes(gpuId)) {
updatedGpusInUse = updatedGpusInUse.filter((id) => id !== gpuId)
if (

Check warning on line 191 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

188-191 lines are not covered with tests
gpuEnabled &&
updatedGpusInUse.length === 0 &&
gpuId &&
gpuId.trim()
) {
// Vulkan support only allow 1 active device at a time
if (vulkanEnabled) {
updatedGpusInUse = []

Check warning on line 199 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

198-199 lines are not covered with tests
}
updatedGpusInUse.push(gpuId)

Check warning on line 201 in web/screens/Settings/Advanced/index.tsx

View workflow job for this annotation

GitHub Actions / coverage-check

201 line is not covered with tests
}
} else {
// Vulkan support only allow 1 active device at a time
Expand Down Expand Up @@ -232,7 +232,8 @@
<h6 className="font-semibold capitalize">Experimental Mode</h6>
</div>
<p className="font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Enable new features that may be unstable.
New features that are still unstable and could affect app
performance. Enable with caution.
</p>
</div>
<Switch
Expand Down Expand Up @@ -446,8 +447,8 @@
<h6 className="font-semibold capitalize">HTTPS Proxy</h6>
</div>
<p className="font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Specify the HTTPS proxy or leave blank (proxy auto-configuration
and SOCKS not supported).
Optional proxy server for internet connections. Only HTTPS proxies
supported.
</p>
</div>

Expand Down Expand Up @@ -501,7 +502,7 @@
<h6 className="font-semibold capitalize">Jan Quick Ask</h6>
</div>
<p className="font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Enable Quick Ask to be triggered via the default hotkey{' '}
Enable Quick Ask to be triggered via the default hotkey .
<span className="text-[hsla(var(--text-secondary)] bg-secondary inline-flex items-center justify-center rounded-full px-1 py-0.5 text-xs font-bold">
<span className="font-bold">{isMac ? '⌘' : 'Ctrl'} + J</span>
</span>{' '}
Expand Down
4 changes: 2 additions & 2 deletions web/screens/Settings/Appearance/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ export default function AppearanceOptions() {
</div>
<p className=" font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Choose the width of the chat area to customize your conversation
view
view.
</p>
</div>
<div className="flex-shrink-0">
Expand Down Expand Up @@ -184,7 +184,7 @@ export default function AppearanceOptions() {
<h6 className="font-semibold capitalize">Spell Check</h6>
</div>
<p className=" font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Turn on to enable spell check
Turn on to enable spell check.
</p>
</div>
<div className="flex-shrink-0">
Expand Down
2 changes: 1 addition & 1 deletion web/screens/Settings/Engines/LocalEngineItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const LocalEngineItems = ({ engine }: { engine: InferenceEngine }) => {
const manualDescription = (engine: string) => {
switch (engine) {
case InferenceEngine.cortex_llamacpp:
return 'Fast, efficient local inference engine that runs GGUF models directly on your device'
return 'Fast, efficient local inference engine that runs GGUF models directly on your device.'

default:
break
Expand Down
3 changes: 2 additions & 1 deletion web/screens/Settings/Engines/LocalEngineSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,8 @@ const LocalEngineSettings = ({ engine }: { engine: InferenceEngine }) => {
<div className="mt-2 w-full font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
<p>
Choose the default variant that best suited for your
hardware. See more information here.
hardware. See [our
guides](https://jan.ai/docs/local-engines/llama-cpp).
</p>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion web/screens/Settings/Engines/RemoteEngineItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ const RemoteEngineItems = ({
<div className="mt-2 w-full font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
<p>
Access models from {getTitleByEngine(engine as InferenceEngine)}{' '}
via their API
via their API.
</p>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion web/screens/Settings/Privacy/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ const Privacy = () => {
<h6 className="font-semibold capitalize">Logs</h6>
</div>
<p className="font-medium leading-relaxed text-[hsla(var(--text-secondary))]">
Open App Logs and Cortex Logs
Open App Logs and Cortex Logs.
</p>
</div>
<div className="flex items-center gap-x-3">
Expand Down
27 changes: 5 additions & 22 deletions web/screens/Thread/ThreadRightPanel/Tools/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,7 @@ const Tools = () => {
className="ml-2 flex-shrink-0 text-[hsl(var(--text-secondary))]"
/>
}
content="Retrieval helps the assistant use information from
files you send to it. Once you share a file, the
assistant automatically fetches the relevant content
based on your request."
content="Allows assistant to pull information from your uploaded files to provide context-aware responses."
/>
</label>
<div className="flex items-center justify-between">
Expand Down Expand Up @@ -147,13 +144,7 @@ const Tools = () => {
className="ml-2 flex-shrink-0 text-[hsl(var(--text-secondary))]"
/>
}
content="Embedding model is crucial for understanding and
processing the input text effectively by
converting text to numerical representations.
Align the model choice with your task, evaluate
its performance, and consider factors like
resource availability. Experiment to find the best
fit for your specific use case."
content="Converts text into numbers for AI processing."
/>
</div>
<div className="w-full">
Expand All @@ -174,11 +165,7 @@ const Tools = () => {
className="ml-2 flex-shrink-0 text-[hsl(var(--text-secondary))]"
/>
}
content="Vector Database is crucial for efficient storage
and retrieval of embeddings. Consider your
specific task, available resources, and language
requirements. Experiment to find the best fit for
your specific use case."
content="Stores and searches text data efficiently. Pick settings that balance speed and accuracy for your data size."
/>
</label>
</div>
Expand All @@ -193,7 +180,7 @@ const Tools = () => {
id="use-time-weighted-retriever"
className="inline-block font-medium"
>
Time-Weighted Retrieval?
Time-Weighted Retrieval
</label>
<Tooltip
trigger={
Expand All @@ -202,11 +189,7 @@ const Tools = () => {
className="ml-2 flex-shrink-0 text-[hsl(var(--text-secondary))]"
/>
}
content="Time-Weighted Retriever looks at how similar
they are and how new they are. It compares
documents based on their meaning like usual, but
also considers when they were added to give
newer ones more importance."
content="Prioritizes newer documents while searching but still considers older ones."
/>
<div className="ml-auto flex items-center justify-between">
<Switch
Expand Down
11 changes: 5 additions & 6 deletions web/utils/predefinedComponent.test.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@

import { presetConfiguration } from './predefinedComponent';
import { presetConfiguration } from './predefinedComponent'

it('should have correct configuration for prompt_template', () => {
const config = presetConfiguration['prompt_template'];
const config = presetConfiguration['prompt_template']
expect(config).toEqual({
key: 'prompt_template',
title: 'Prompt template',
description: `A predefined text or framework that guides the AI model's response generation. It includes placeholders or instructions for the model to fill in or expand upon.`,
description: `A structured format that guides how the model should respond.`,
controllerType: 'input',
controllerProps: {
placeholder: 'Prompt template',
value: '',
},
requireModelReload: true,
configType: 'setting',
});
});
})
})
Loading
Loading