npx prettier --check "**/*.{js,jsx,ts,tsx,json,css,md}" --ignore-path .
gitignore --ignore-path .prettierignore --write
This commit is contained in:
parent
fe1a05042e
commit
4f7ebf0c1b
|
@ -14,21 +14,21 @@ religion, or sexual identity and orientation.
|
|||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
- Using welcoming and inclusive language
|
||||
- Being respectful of differing viewpoints and experiences
|
||||
- Gracefully accepting constructive criticism
|
||||
- Focusing on what is best for the community
|
||||
- Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
- The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
- Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
- Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
|
|
@ -3,35 +3,35 @@
|
|||
## Table of Contents
|
||||
|
||||
- [Contributing to Continue](#contributing-to-continue)
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [❤️ Ways to Contribute](#️-ways-to-contribute)
|
||||
- [👋 Continue Contribution Ideas](#-continue-contribution-ideas)
|
||||
- [🐛 Report Bugs](#-report-bugs)
|
||||
- [✨ Suggest Enhancements](#-suggest-enhancements)
|
||||
- [📖 Updating / Improving Documentation](#-updating--improving-documentation)
|
||||
- [Running the Documentation Server Locally](#running-the-documentation-server-locally)
|
||||
- [Method 1: NPM Script](#method-1-npm-script)
|
||||
- [Method 2: VS Code Task](#method-2-vs-code-task)
|
||||
- [🧑💻 Contributing Code](#-contributing-code)
|
||||
- [Environment Setup](#environment-setup)
|
||||
- [Pre-requisites](#pre-requisites)
|
||||
- [Fork the Continue Repository](#fork-the-continue-repository)
|
||||
- [VS Code](#vs-code)
|
||||
- [Debugging](#debugging)
|
||||
- [JetBrains](#jetbrains)
|
||||
- [Our Git Workflow](#our-git-workflow)
|
||||
- [Development workflow](#development-workflow)
|
||||
- [Formatting](#formatting)
|
||||
- [Testing](#testing)
|
||||
- [Review Process](#review-process)
|
||||
- [Getting help](#getting-help)
|
||||
- [Contribtuing new LLM Providers/Models](#contribtuing-new-llm-providersmodels)
|
||||
- [Adding an LLM Provider](#adding-an-llm-provider)
|
||||
- [Adding Models](#adding-models)
|
||||
- [📐 Continue Architecture](#-continue-architecture)
|
||||
- [Continue VS Code Extension](#continue-vs-code-extension)
|
||||
- [Continue JetBrains Extension](#continue-jetbrains-extension)
|
||||
- [Contibutor License Agreement](#contributor-license-agreement-cla)
|
||||
- [👋 Continue Contribution Ideas](#-continue-contribution-ideas)
|
||||
- [🐛 Report Bugs](#-report-bugs)
|
||||
- [✨ Suggest Enhancements](#-suggest-enhancements)
|
||||
- [📖 Updating / Improving Documentation](#-updating--improving-documentation)
|
||||
- [Running the Documentation Server Locally](#running-the-documentation-server-locally)
|
||||
- [Method 1: NPM Script](#method-1-npm-script)
|
||||
- [Method 2: VS Code Task](#method-2-vs-code-task)
|
||||
- [🧑💻 Contributing Code](#-contributing-code)
|
||||
- [Environment Setup](#environment-setup)
|
||||
- [Pre-requisites](#pre-requisites)
|
||||
- [Fork the Continue Repository](#fork-the-continue-repository)
|
||||
- [VS Code](#vs-code)
|
||||
- [Debugging](#debugging)
|
||||
- [JetBrains](#jetbrains)
|
||||
- [Our Git Workflow](#our-git-workflow)
|
||||
- [Development workflow](#development-workflow)
|
||||
- [Formatting](#formatting)
|
||||
- [Testing](#testing)
|
||||
- [Review Process](#review-process)
|
||||
- [Getting help](#getting-help)
|
||||
- [Contribtuing new LLM Providers/Models](#contribtuing-new-llm-providersmodels)
|
||||
- [Adding an LLM Provider](#adding-an-llm-provider)
|
||||
- [Adding Models](#adding-models)
|
||||
- [📐 Continue Architecture](#-continue-architecture)
|
||||
- [Continue VS Code Extension](#continue-vs-code-extension)
|
||||
- [Continue JetBrains Extension](#continue-jetbrains-extension)
|
||||
- [Contibutor License Agreement](#contributor-license-agreement-cla)
|
||||
|
||||
# ❤️ Ways to Contribute
|
||||
|
||||
|
@ -60,9 +60,9 @@ an enhancement are:
|
|||
|
||||
- Create an issue
|
||||
|
||||
- First, check whether a similar proposal has already been made
|
||||
- If not, [create an issue](https://github.com/continuedev/continue/issues)
|
||||
- Please describe the enhancement in as much detail as you can, and why it would be useful
|
||||
- First, check whether a similar proposal has already been made
|
||||
- If not, [create an issue](https://github.com/continuedev/continue/issues)
|
||||
- Please describe the enhancement in as much detail as you can, and why it would be useful
|
||||
|
||||
- Join the [Continue Discord](https://discord.gg/NWtdYexhMs) and tell us about your idea in the `#feedback` channel
|
||||
|
||||
|
@ -140,12 +140,12 @@ nvm use
|
|||
|
||||
2. Start debugging:
|
||||
|
||||
1. Switch to Run and Debug view
|
||||
2. Select `Launch extension` from drop down
|
||||
3. Hit play button
|
||||
4. This will start the extension in debug mode and open a new VS Code window with it installed
|
||||
1. The new VS Code window with the extension is referred to as the _Host VS Code_
|
||||
2. The window you started debugging from is referred to as the _Main VS Code_
|
||||
1. Switch to Run and Debug view
|
||||
2. Select `Launch extension` from drop down
|
||||
3. Hit play button
|
||||
4. This will start the extension in debug mode and open a new VS Code window with it installed
|
||||
1. The new VS Code window with the extension is referred to as the _Host VS Code_
|
||||
2. The window you started debugging from is referred to as the _Main VS Code_
|
||||
|
||||
3. To package the extension, run `npm run package` in the `extensions/vscode` directory, select `Tasks: Run Task` and
|
||||
then select `vscode-extension:package`. This will generate `extensions/vscode/build/continue-{VERSION}.vsix`, which
|
||||
|
@ -239,10 +239,10 @@ model:
|
|||
|
||||
- [AddNewModel page](./gui/src/pages/AddNewModel/configs/) - This directory defines which model options are shown in the
|
||||
side bar model selection UI. To add a new model:
|
||||
1. Add a `ModelPackage` entry for the model into [configs/models.ts](./gui/src/pages/AddNewModel/configs/models.ts),
|
||||
following the lead of the many examples near the top of the file
|
||||
2. Add the model within its provider's array
|
||||
to [configs/providers.ts](./gui/src/pages/AddNewModel/configs/providers.ts) (add provider if needed)
|
||||
1. Add a `ModelPackage` entry for the model into [configs/models.ts](./gui/src/pages/AddNewModel/configs/models.ts),
|
||||
following the lead of the many examples near the top of the file
|
||||
2. Add the model within its provider's array
|
||||
to [configs/providers.ts](./gui/src/pages/AddNewModel/configs/providers.ts) (add provider if needed)
|
||||
- LLM Providers: Since many providers use their own custom strings to identify models, you'll have to add the
|
||||
translation from Continue's model name (the one you added to `index.d.ts`) and the model string for each of these
|
||||
providers: [Ollama](./core/llm/llms/Ollama.ts), [Together](./core/llm/llms/Together.ts),
|
||||
|
@ -264,4 +264,4 @@ We require all contributors to accept the CLA and have made it as easy as commen
|
|||
I have read the CLA Document and I hereby sign the CLA
|
||||
```
|
||||
|
||||
3. The CLA‑Assistant bot records your signature in the repo and marks the status check as passed.
|
||||
3. The CLA‑Assistant bot records your signature in the repo and marks the status check as passed.
|
||||
|
|
|
@ -58,7 +58,6 @@ file
|
|||
|
||||

|
||||
|
||||
|
||||
</div>
|
||||
|
||||
## Getting Started
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
const path = require('path');
|
||||
const path = require("path");
|
||||
process.env.CONTINUE_DEVELOPMENT = true;
|
||||
|
||||
process.env.CONTINUE_GLOBAL_DIR = path.join(process.env.PROJECT_DIR, 'extensions', '.continue-debug');
|
||||
process.env.CONTINUE_GLOBAL_DIR = path.join(
|
||||
process.env.PROJECT_DIR,
|
||||
"extensions",
|
||||
".continue-debug",
|
||||
);
|
||||
|
||||
require('./out/index.js');
|
||||
require("./out/index.js");
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const logDirPath = path.join(__dirname, '..', 'extensions', '.continue-debug', 'logs');
|
||||
const logDirPath = path.join(
|
||||
__dirname,
|
||||
"..",
|
||||
"extensions",
|
||||
".continue-debug",
|
||||
"logs",
|
||||
);
|
||||
const logFilePath = path.join(logDirPath, "prompt.log");
|
||||
|
||||
// Ensure the log directory exists
|
||||
|
@ -12,7 +18,7 @@ if (!fs.existsSync(logDirPath)) {
|
|||
|
||||
// Create the log file if it doesn't exist
|
||||
if (!fs.existsSync(logFilePath)) {
|
||||
fs.writeFileSync(logFilePath, ''); // Create an empty file synchronously
|
||||
fs.writeFileSync(logFilePath, ""); // Create an empty file synchronously
|
||||
console.log("Created empty log file at " + logFilePath);
|
||||
}
|
||||
|
||||
|
@ -25,14 +31,16 @@ try {
|
|||
// console.clear();
|
||||
const stream = fs.createReadStream(logFilePath);
|
||||
stream.pipe(process.stdout);
|
||||
stream.on('error', (err) => {
|
||||
console.error('Error reading log file:', err.message);
|
||||
stream.on("error", (err) => {
|
||||
console.error("Error reading log file:", err.message);
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error while handling file change:', err.message);
|
||||
console.error("Error while handling file change:", err.message);
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error setting up file watcher:', err.message);
|
||||
console.log('You may need to restart the script after the extension generates the first log entry.');
|
||||
}
|
||||
console.error("Error setting up file watcher:", err.message);
|
||||
console.log(
|
||||
"You may need to restart the script after the extension generates the first log entry.",
|
||||
);
|
||||
}
|
||||
|
|
|
@ -39,4 +39,4 @@ module.exports = {
|
|||
TARGET_TO_RIPGREP_RELEASE,
|
||||
TARGET_TO_LANCEDB,
|
||||
RIPGREP_VERSION,
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
|
||||
};
|
||||
|
|
|
@ -22,7 +22,7 @@ Project a perpetual, worldwide, non‑exclusive, royalty‑free, irrevocable
|
|||
license to reproduce, prepare derivative works of, publicly display, publicly
|
||||
perform, sublicense, and distribute Your Contributions and derivative works.
|
||||
|
||||
## 3. Patent License
|
||||
## 3. Patent License
|
||||
|
||||
You grant **Continue Dev, Inc.** and all recipients of the Project a perpetual,
|
||||
worldwide, non‑exclusive, royalty‑free, irrevocable (except as below) patent
|
||||
|
|
|
@ -7,6 +7,6 @@ sidebar_position: 3
|
|||
|
||||
You can use the same [methods to manually add context as Chat](../chat/context-selection.md).
|
||||
|
||||
In addition, tool call responses are automatically included as context items.
|
||||
In addition, tool call responses are automatically included as context items.
|
||||
|
||||
This enables Agent mode to see the result of the previous action and decide what to do next.
|
||||
This enables Agent mode to see the result of the previous action and decide what to do next.
|
||||
|
|
|
@ -29,4 +29,4 @@ Then, you can view and change tool policies. To change a policy, click on the po
|
|||
|
||||

|
||||
|
||||
Tool policies are stored locally per user.
|
||||
Tool policies are stored locally per user.
|
||||
|
|
|
@ -28,7 +28,7 @@ Agent lives within the same interface as [Chat](../chat/how-it-works.md), so the
|
|||
|
||||
#### Use natural language
|
||||
|
||||
With Agent, you can provide natural language instruction and let the model do the work. As an example, you might say
|
||||
With Agent, you can provide natural language instruction and let the model do the work. As an example, you might say
|
||||
|
||||
> Set the @typescript-eslint/naming-convention rule to "off" for all eslint configurations in this project
|
||||
|
||||
|
@ -46,4 +46,4 @@ You can use tool policies to exclude or make usage automatic for specific tools.
|
|||
|
||||
Any data returned from a tool call is automatically fed back into the model as a context item. Most errors are also caught and returned, so that Agent mode can decide how to proceed.
|
||||
|
||||

|
||||

|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Venice
|
||||
|
||||
Venice.AI is a privacy focused generative AI platform, allowing users to interact with open-source LLMs without storing any private user data. To get started with Venice's API, either purchase a pro account, stake $VVV to obtain daily inference allotments or fund your account with USD and head over to https://venice.ai/settings/api. Venice hosts state of the art open-source AI models and supports the OpenAI API standard, allowing users to easily interact with the platform. Learn more about the Venice API at https://venice.ai/api.
|
||||
Venice.AI is a privacy focused generative AI platform, allowing users to interact with open-source LLMs without storing any private user data. To get started with Venice's API, either purchase a pro account, stake $VVV to obtain daily inference allotments or fund your account with USD and head over to https://venice.ai/settings/api. Venice hosts state of the art open-source AI models and supports the OpenAI API standard, allowing users to easily interact with the platform. Learn more about the Venice API at https://venice.ai/api.
|
||||
|
||||
Change `~/.continue/config.json` to look like the following.
|
||||
|
||||
|
@ -28,8 +28,8 @@ For example, to use models with no system prompt, you can explicitly turn off th
|
|||
"include_venice_system_prompt" : false
|
||||
},
|
||||
...
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Learn more about available settings [here](https://docs.venice.ai/api-reference/api-spec).
|
||||
Learn more about available settings [here](https://docs.venice.ai/api-reference/api-spec).
|
||||
|
|
|
@ -38,4 +38,4 @@ models:
|
|||
globalThis.importantFunc = importantFunc
|
||||
<|fim_prefix|>{{{prefix}}}<|fim_suffix|>{{{suffix}}}<|fim_middle|>
|
||||
`
|
||||
```
|
||||
```
|
||||
|
|
|
@ -23,4 +23,4 @@ If a block you want to use does not exist yet, you can [create a new block](../b
|
|||
|
||||
When you are done editing, click "Publish" to publish a new version of the assistant.
|
||||
|
||||
Click "Open VS Code" or "Open JetBrains" to open your IDE for using the assistant.
|
||||
Click "Open VS Code" or "Open JetBrains" to open your IDE for using the assistant.
|
||||
|
|
|
@ -17,4 +17,4 @@ Once you've found the assistant you want to use
|
|||
|
||||
After this, you can then go to your IDE extension and begin using the assistant by selecting it from the assistant dropdown.
|
||||
|
||||
[Extension Assistant Selector](/img/hub/assistant-extension-select.png)
|
||||
[Extension Assistant Selector](/img/hub/assistant-extension-select.png)
|
||||
|
|
|
@ -36,4 +36,4 @@ Once you have added all the blocks you want in your bundle, click "Create Bundle
|
|||
|
||||
## Remix a bundle
|
||||
|
||||
It is not currently possible to remix a bundle.
|
||||
It is not currently possible to remix a bundle.
|
||||
|
|
|
@ -7,9 +7,10 @@ keywords: [blocks, usage, use]
|
|||
# Use a block
|
||||
|
||||
Blocks can be used by adding them to assistants:
|
||||
|
||||
- [Create an assistant](../assistants/create-an-assistant.md)
|
||||
- [Edit an assistant](../assistants/edit-an-assistant.md)
|
||||
|
||||
Some blocks require inputs. If you are missing an input for a block, a notification icon will show up in the sidebar next to the block. Click the notification to select which secret to use for the block input:
|
||||
|
||||

|
||||

|
||||
|
|
|
@ -15,4 +15,4 @@ keywords: [governance, organization, org, permissions]
|
|||
|
||||
- [Solo](./pricing.md#solo)
|
||||
- [Teams](./pricing.md#teams)
|
||||
- [Enterprise](./pricing.md#enterprise)
|
||||
- [Enterprise](./pricing.md#enterprise)
|
||||
|
|
|
@ -8,28 +8,28 @@ keywords: [solo, teams, enterprise, models add-on]
|
|||
|
||||
## Solo
|
||||
|
||||
**Solo** is best suited for individuals and small teams with "single-player" problems.
|
||||
**Solo** is best suited for individuals and small teams with "single-player" problems.
|
||||
|
||||
You can read more about what **Solo** includes [here](https://hub.continue.dev/pricing).
|
||||
|
||||
## Teams
|
||||
|
||||
**Teams** is best suited for growing teams with "multiplayer" problems.
|
||||
**Teams** is best suited for growing teams with "multiplayer" problems.
|
||||
|
||||
You can read more about what **Teams** includes [here](https://hub.continue.dev/pricing).
|
||||
|
||||
## Enterprise
|
||||
|
||||
**Enterprise** is best suited for large teams with enterprise-grade requirements.
|
||||
**Enterprise** is best suited for large teams with enterprise-grade requirements.
|
||||
|
||||
You can read more about what **Enterprise** includes [here](https://hub.continue.dev/pricing).
|
||||
|
||||
## Models Add-On
|
||||
|
||||
The **Models Add-On** allows you to use a variety of frontier models for a flat monthly fee. It’s designed to cover the usage of most developers.
|
||||
The **Models Add-On** allows you to use a variety of frontier models for a flat monthly fee. It’s designed to cover the usage of most developers.
|
||||
|
||||
You can read more about usage limits and what models are included [here](https://hub.continue.dev/pricing).
|
||||
|
||||
### Free Trial
|
||||
|
||||
To try out Continue, we offer a free trial of the **Models Add-On** that allows you to use 50 Chat requests and 2,000 autocomplete requests.
|
||||
To try out Continue, we offer a free trial of the **Models Add-On** that allows you to use 50 Chat requests and 2,000 autocomplete requests.
|
||||
|
|
|
@ -19,4 +19,4 @@ For [Teams](../governance/pricing.md#teams) and [Enterprise](../governance/prici
|
|||
|
||||
1. Org [models add-on](../governance/pricing.md#models-add-on) (if subscribed)
|
||||
2. [Org secrets](../secrets/secret-types.md#org-secrets) (if set)
|
||||
3. [User secrets](../secrets/secret-types.md#user-secrets) (if set)
|
||||
3. [User secrets](../secrets/secret-types.md#user-secrets) (if set)
|
||||
|
|
|
@ -11,12 +11,12 @@ The Continue Hub comes with secrets management built-in. Secrets are values such
|
|||
|
||||
## User secrets
|
||||
|
||||
User secrets are defined by the user for themselves. This means that user secrets are available only to the user that created them. User secrets are assumed to be safe for the user to know, so they will be sent to the IDE extensions alongside the assistant `config.yaml`.
|
||||
User secrets are defined by the user for themselves. This means that user secrets are available only to the user that created them. User secrets are assumed to be safe for the user to know, so they will be sent to the IDE extensions alongside the assistant `config.yaml`.
|
||||
|
||||
This allows API requests to be made directly from the IDE extensions. You can use user secrets with [Solo](../governance/pricing.md#solo), [Teams](../governance/pricing.md#teams), and [Enterprise](../governance/pricing.md#enterprise). User secrets can be managed [here](https://hub.continue.dev/settings/secrets) in the hub.
|
||||
|
||||
## Org secrets
|
||||
|
||||
Org secrets are defined by admins for their organization. Org secrets are available to anyone in the organization to use with assistants in that organization. Org secrets are assumed to not be shareable with the user (e.g. you are a team lead who wants to give team members access to models without passing out API keys).
|
||||
Org secrets are defined by admins for their organization. Org secrets are available to anyone in the organization to use with assistants in that organization. Org secrets are assumed to not be shareable with the user (e.g. you are a team lead who wants to give team members access to models without passing out API keys).
|
||||
|
||||
This is why LLM requests are proxied through api.continue.dev / on-premise proxy and secrets are never sent to the IDE extensions. You can only use org secrets on [Teams](../governance/pricing.md#teams) and [Enterprise](../governance/pricing.md#enterprise). If you are an admin, you can manage secrets for your organization from the org settings page.
|
||||
This is why LLM requests are proxied through api.continue.dev / on-premise proxy and secrets are never sent to the IDE extensions. You can only use org secrets on [Teams](../governance/pricing.md#teams) and [Enterprise](../governance/pricing.md#enterprise). If you are an admin, you can manage secrets for your organization from the org settings page.
|
||||
|
|
|
@ -83,9 +83,10 @@ the [Continue Explore Page](https://hub.continue.dev/explore/models)
|
|||
|
||||
:::info
|
||||
Local blocks utilizing mustache notation for secrets (`${{ secrets.SECRET_NAME }}`) can read secret values:
|
||||
|
||||
- globally, from a `.env` located in the global `.continue` folder (`~/.continue/.env`)
|
||||
- per-workspace, from a `.env` file located at the root of the current workspace.
|
||||
:::
|
||||
:::
|
||||
|
||||
### Inputs
|
||||
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
---
|
||||
title: Telemetry
|
||||
description: Learn how Continue collects anonymous usage information and how you can opt out.
|
||||
keywords: [telemetry, anonymous, usage info, opt out]
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The open-source Continue Extensions collect and report **anonymous** usage information to help us improve our product. This data enables us to understand user interactions and optimize the user experience effectively. You can opt out of telemetry collection at any time if you prefer not to share your usage information.
|
||||
|
||||
We utilize [Posthog](https://posthog.com/), an open-source platform for product analytics, to gather and store this data. For transparency, you can review the implementation code [here](https://github.com/continuedev/continue/blob/main/gui/src/hooks/CustomPostHogProvider.tsx) or read our [official privacy policy](https://continue.dev/privacy).
|
||||
|
||||
## Tracking Policy
|
||||
|
||||
All data collected by the open-source Continue extensions is anonymized and stripped of personally identifiable information (PII) before being sent to PostHog. We are committed to maintaining the privacy and security of your data.
|
||||
|
||||
## What We Track
|
||||
|
||||
The following usage information is collected and reported:
|
||||
|
||||
- **Suggestion Interactions:** Whether you accept or reject suggestions (excluding the actual code or prompts involved).
|
||||
- **Model and Command Information:** The name of the model and command used.
|
||||
- **Token Metrics:** The number of tokens generated.
|
||||
- **System Information:** The name of your operating system (OS) and integrated development environment (IDE).
|
||||
- **Pageviews:** General pageview statistics.
|
||||
|
||||
## How to Opt Out
|
||||
|
||||
You can disable anonymous telemetry by visiting the [User Settings Page](./customize/deep-dives/settings.md) and toggling "Allow Anonymous Telemetry" off.
|
||||
|
||||
Alternatively in VS Code, you can disable telemetry through your VS Code settings by unchecking the "Continue: Telemetry Enabled" box (this will override the Settings Page settings). VS Code settings can be accessed with `File` > `Preferences` > `Settings` (or use the keyboard shortcut <kbd>ctrl</kbd> + <kbd>,</kbd> on Windows/Linux or <kbd>cmd</kbd> + <kbd>,</kbd> on macOS).
|
||||
---
|
||||
title: Telemetry
|
||||
description: Learn how Continue collects anonymous usage information and how you can opt out.
|
||||
keywords: [telemetry, anonymous, usage info, opt out]
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The open-source Continue Extensions collect and report **anonymous** usage information to help us improve our product. This data enables us to understand user interactions and optimize the user experience effectively. You can opt out of telemetry collection at any time if you prefer not to share your usage information.
|
||||
|
||||
We utilize [Posthog](https://posthog.com/), an open-source platform for product analytics, to gather and store this data. For transparency, you can review the implementation code [here](https://github.com/continuedev/continue/blob/main/gui/src/hooks/CustomPostHogProvider.tsx) or read our [official privacy policy](https://continue.dev/privacy).
|
||||
|
||||
## Tracking Policy
|
||||
|
||||
All data collected by the open-source Continue extensions is anonymized and stripped of personally identifiable information (PII) before being sent to PostHog. We are committed to maintaining the privacy and security of your data.
|
||||
|
||||
## What We Track
|
||||
|
||||
The following usage information is collected and reported:
|
||||
|
||||
- **Suggestion Interactions:** Whether you accept or reject suggestions (excluding the actual code or prompts involved).
|
||||
- **Model and Command Information:** The name of the model and command used.
|
||||
- **Token Metrics:** The number of tokens generated.
|
||||
- **System Information:** The name of your operating system (OS) and integrated development environment (IDE).
|
||||
- **Pageviews:** General pageview statistics.
|
||||
|
||||
## How to Opt Out
|
||||
|
||||
You can disable anonymous telemetry by visiting the [User Settings Page](./customize/deep-dives/settings.md) and toggling "Allow Anonymous Telemetry" off.
|
||||
|
||||
Alternatively in VS Code, you can disable telemetry through your VS Code settings by unchecking the "Continue: Telemetry Enabled" box (this will override the Settings Page settings). VS Code settings can be accessed with `File` > `Preferences` > `Settings` (or use the keyboard shortcut <kbd>ctrl</kbd> + <kbd>,</kbd> on Windows/Linux or <kbd>cmd</kbd> + <kbd>,</kbd> on macOS).
|
||||
|
|
|
@ -67,7 +67,7 @@ const config = {
|
|||
|
||||
scripts: [
|
||||
{
|
||||
src: "/scripts/custom-reo.js", // it references from static folder
|
||||
src: "/scripts/custom-reo.js", // it references from static folder
|
||||
},
|
||||
],
|
||||
|
||||
|
|
|
@ -449,7 +449,7 @@ HttpContextProvider 创建一个 POST 请求到配置中的 url 。服务器必
|
|||
{
|
||||
"name": "http",
|
||||
"params": {
|
||||
"url": "https://api.example.com/v1/users",
|
||||
"url": "https://api.example.com/v1/users"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -457,6 +457,7 @@ HttpContextProvider 创建一个 POST 请求到配置中的 url 。服务器必
|
|||
```
|
||||
|
||||
接收的 URL 应该接收下面的参数:
|
||||
|
||||
```json title="POST parameters"
|
||||
{
|
||||
query: string,
|
||||
|
@ -465,6 +466,7 @@ HttpContextProvider 创建一个 POST 请求到配置中的 url 。服务器必
|
|||
```
|
||||
|
||||
响应 200 OK 应该是一个有以下结构的 JSON 对象:
|
||||
|
||||
```json title="Response"
|
||||
[
|
||||
{
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# SambaNova Cloud
|
||||
|
||||
SambaNova 云是一个运行大型 AI 模型的云平台,有 Llama 3.1 70B/405B 性能的世界记录。你可以在 [这里](http://cloud.sambanova.ai?utm_source=continue&utm_medium=external&utm_campaign=cloud_signup ) 登录,在最初的欢迎屏幕复制你的 API key ,然后在 [模型列表](https://community.sambanova.ai/t/quick-start-guide/104) 任何模型上点击 play 按钮。
|
||||
SambaNova 云是一个运行大型 AI 模型的云平台,有 Llama 3.1 70B/405B 性能的世界记录。你可以在 [这里](http://cloud.sambanova.ai?utm_source=continue&utm_medium=external&utm_campaign=cloud_signup) 登录,在最初的欢迎屏幕复制你的 API key ,然后在 [模型列表](https://community.sambanova.ai/t/quick-start-guide/104) 任何模型上点击 play 按钮。
|
||||
|
||||
```json title="config.json"
|
||||
{
|
||||
"models": [
|
||||
|
|
|
@ -36,7 +36,7 @@ customCommands=[{
|
|||
|
||||
如果你想要比使用自然语言编写自定义命令更进一步,你可以编写一个自定义函数返回响应。这需要使用 `config.ts` 代替 `config.json` 。
|
||||
|
||||
为了做这个,放一个新的 `SlashCommand` 对象到 `slashCommands` 列表中。这个对象包含 "name" ,你用来触发斜杠命令的名称, "description" ,在下拉菜单中看到的描述,以及 "run" 。 `run` 函数是任何异步生成器,应该生成你想要流式输出到 UI 的字符串。作为函数的参数,你可以访问一个有实用工具的 `ContinueSDK` 对象,例如访问 IDE 中的当前信息/action ,当前语言模型,以及一些其他实用工具。例如,这是一个生成 commit 信息的斜杠命令:
|
||||
为了做这个,放一个新的 `SlashCommand` 对象到 `slashCommands` 列表中。这个对象包含 "name" ,你用来触发斜杠命令的名称, "description" ,在下拉菜单中看到的描述,以及 "run" 。 `run` 函数是任何异步生成器,应该生成你想要流式输出到 UI 的字符串。作为函数的参数,你可以访问一个有实用工具的 `ContinueSDK` 对象,例如访问 IDE 中的当前信息/action ,当前语言模型,以及一些其他实用工具。例如,这是一个生成 commit 信息的斜杠命令:
|
||||
|
||||
```typescript title="~/.continue/config.ts"
|
||||
export function modifyConfig(config: Config): Config {
|
||||
|
|
|
@ -2,17 +2,7 @@
|
|||
title: 简介
|
||||
description: 开发者的开源 AI 代码助手
|
||||
slug: /
|
||||
keywords:
|
||||
[
|
||||
continue,
|
||||
AI,
|
||||
代码助手,
|
||||
自动补全,
|
||||
聊天,
|
||||
VS Code,
|
||||
JetBrains,
|
||||
简介,
|
||||
]
|
||||
keywords: [continue, AI, 代码助手, 自动补全, 聊天, VS Code, JetBrains, 简介]
|
||||
---
|
||||
|
||||

|
||||
|
|
|
@ -1,50 +1,51 @@
|
|||
---
|
||||
title: 遥测
|
||||
description: 了解 Continue 如何收集匿名使用信息,以及你如何选择退出
|
||||
keywords: [遥测, 匿名, 使用信息, 选择退出]
|
||||
---
|
||||
|
||||
## 概述
|
||||
Continue 收集并报告 **匿名** 使用信息,来帮助我们提高产品。这个数据允许我们有效地理解用户交互,并优化用户体验。你可以在任何时候选择退出遥测收集,如果你倾向与不分享你的使用信息。
|
||||
|
||||
我们使用 [Posthog](https://posthog.com/) ,一个产品分析的开源平台,来收集并存储这个数据。为了透明,你可以 [在这里](https://github.com/continuedev/continue/blob/main/gui/src/hooks/CustomPostHogProvider.tsx) 检查实现代码,或者查看我们的 [官方隐私策略](https://continue.dev/privacy) 。
|
||||
|
||||
## 跟踪策略
|
||||
|
||||
所有 Continue 收集的数据是匿名的,在发送到 PostHog 之前,除去个人可识别信息 (PII) 。我们承诺维护你的数据的隐私和安全。
|
||||
|
||||
## 我们跟踪什么
|
||||
|
||||
以下使用信息被收集和报告:
|
||||
|
||||
- **建议交互:** 你是否接受或拒绝建议(不包括涉及的实际代码或提示词)。
|
||||
- **模型和命令信息:** 使用的模型和命令的名称。
|
||||
- **token 指标:** 生成的 token 的数量。
|
||||
- **系统信息:** 你的操作系统 (OS) 和集成开发环境 (IDE) 的名称。
|
||||
- **页面浏览量:** 一般页面浏览量统计。
|
||||
|
||||
## 如何退出
|
||||
|
||||
你可以通过修改位于 `~/.continue` 目录中 `config.json` 文件禁用匿名遥测。这个文件通常包含以下条目:
|
||||
|
||||
```json title="config.json"
|
||||
{
|
||||
"allowAnonymousTelemetry": true
|
||||
}
|
||||
```
|
||||
|
||||
为了退出,修改 `allowAnonymousTelemetry` 的值为 `false` 。另外,你可以通过 VS Code 设置禁用遥测,通过取消勾选 "Continue: Telemetry Enabled" 选择框。
|
||||
|
||||
### 通过配置文件禁用遥测的步骤
|
||||
|
||||
1. 用你的文件编辑器打开 `~/.continue/config.json` 文件。
|
||||
2. 定位到 `"allowAnonymousTelemetry"` 设置。
|
||||
3. 将值从 `true` 修改为 `false` 。
|
||||
4. 保存文件。
|
||||
|
||||
### 通过 VS Code 设置禁用遥测
|
||||
|
||||
1. 打开 VS Code 。
|
||||
2. 导航到 `File` > `Preferences` > `Settings` (或在 Windows/Linux 上使用快捷键 `Ctrl + ,` 或在 macOS 上使用 `Cmd + ,` )。
|
||||
3. 在搜索栏中,输入 "Continue: Telemetry Enabled" 。
|
||||
4. 取消勾选 "Continue: Telemetry Enabled" 选择框。
|
||||
---
|
||||
title: 遥测
|
||||
description: 了解 Continue 如何收集匿名使用信息,以及你如何选择退出
|
||||
keywords: [遥测, 匿名, 使用信息, 选择退出]
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
Continue 收集并报告 **匿名** 使用信息,来帮助我们提高产品。这个数据允许我们有效地理解用户交互,并优化用户体验。你可以在任何时候选择退出遥测收集,如果你倾向与不分享你的使用信息。
|
||||
|
||||
我们使用 [Posthog](https://posthog.com/) ,一个产品分析的开源平台,来收集并存储这个数据。为了透明,你可以 [在这里](https://github.com/continuedev/continue/blob/main/gui/src/hooks/CustomPostHogProvider.tsx) 检查实现代码,或者查看我们的 [官方隐私策略](https://continue.dev/privacy) 。
|
||||
|
||||
## 跟踪策略
|
||||
|
||||
所有 Continue 收集的数据是匿名的,在发送到 PostHog 之前,除去个人可识别信息 (PII) 。我们承诺维护你的数据的隐私和安全。
|
||||
|
||||
## 我们跟踪什么
|
||||
|
||||
以下使用信息被收集和报告:
|
||||
|
||||
- **建议交互:** 你是否接受或拒绝建议(不包括涉及的实际代码或提示词)。
|
||||
- **模型和命令信息:** 使用的模型和命令的名称。
|
||||
- **token 指标:** 生成的 token 的数量。
|
||||
- **系统信息:** 你的操作系统 (OS) 和集成开发环境 (IDE) 的名称。
|
||||
- **页面浏览量:** 一般页面浏览量统计。
|
||||
|
||||
## 如何退出
|
||||
|
||||
你可以通过修改位于 `~/.continue` 目录中 `config.json` 文件禁用匿名遥测。这个文件通常包含以下条目:
|
||||
|
||||
```json title="config.json"
|
||||
{
|
||||
"allowAnonymousTelemetry": true
|
||||
}
|
||||
```
|
||||
|
||||
为了退出,修改 `allowAnonymousTelemetry` 的值为 `false` 。另外,你可以通过 VS Code 设置禁用遥测,通过取消勾选 "Continue: Telemetry Enabled" 选择框。
|
||||
|
||||
### 通过配置文件禁用遥测的步骤
|
||||
|
||||
1. 用你的文件编辑器打开 `~/.continue/config.json` 文件。
|
||||
2. 定位到 `"allowAnonymousTelemetry"` 设置。
|
||||
3. 将值从 `true` 修改为 `false` 。
|
||||
4. 保存文件。
|
||||
|
||||
### 通过 VS Code 设置禁用遥测
|
||||
|
||||
1. 打开 VS Code 。
|
||||
2. 导航到 `File` > `Preferences` > `Settings` (或在 Windows/Linux 上使用快捷键 `Ctrl + ,` 或在 macOS 上使用 `Cmd + ,` )。
|
||||
3. 在搜索栏中,输入 "Continue: Telemetry Enabled" 。
|
||||
4. 取消勾选 "Continue: Telemetry Enabled" 选择框。
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
--ifm-color-primary-lightest: rgb(67, 31, 242);
|
||||
--ifm-code-font-size: 95%;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
||||
--ifm-list-item-margin: 0.70rem;
|
||||
--ifm-list-item-margin: 0.7rem;
|
||||
/* These vars control the colors of the kbd tag 3d keycap */
|
||||
--kbd-keycap-bg-color: #ffffffce;
|
||||
--kbd-keycap-border-color: #ccc;
|
||||
--kbd-text-color: #ca3a18;
|
||||
--kbd-shadow-color: #b4b4b4;
|
||||
--kbd-shadow-color-outer: #9c9c9c;
|
||||
--kbd-shadow-tint: rgba(0, 0, 0, .4);
|
||||
--kbd-shadow-tint: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||
|
@ -47,18 +47,18 @@
|
|||
kbd {
|
||||
display: inline-block;
|
||||
padding: 0.3em 0.4em;
|
||||
margin: 0.1em .4em;
|
||||
margin: 0.1em 0.4em;
|
||||
font-family: var(--ifm-font-family-monospace);
|
||||
font-size: .8rem;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 500;
|
||||
line-height: .8;
|
||||
line-height: 0.8;
|
||||
color: var(--kbd-text-color);
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-color: var(--kbd-keycap-bg-color);
|
||||
border: 1px solid var(--kbd-keycap-border-color);
|
||||
border-radius: 0.3em;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 2px 0 1px var(--kbd-shadow-color),
|
||||
0 3px 0 2px var(--kbd-shadow-color-outer),
|
||||
0 4px 6px var(--kbd-shadow-tint);
|
||||
|
|
|
@ -1 +1,12 @@
|
|||
!function(){var e,t,n;e="7aa28ed11570734",t=function(){Reo.init({clientID:"7aa28ed11570734"})},(n=document.createElement("script")).src="https://static.reo.dev/"+e+"/reo.js",n.async=!0,n.onload=t,document.head.appendChild(n)}();
|
||||
!(function () {
|
||||
var e, t, n;
|
||||
(e = "7aa28ed11570734"),
|
||||
(t = function () {
|
||||
Reo.init({ clientID: "7aa28ed11570734" });
|
||||
}),
|
||||
((n = document.createElement("script")).src =
|
||||
"https://static.reo.dev/" + e + "/reo.js"),
|
||||
(n.async = !0),
|
||||
(n.onload = t),
|
||||
document.head.appendChild(n);
|
||||
})();
|
||||
|
|
|
@ -7,26 +7,26 @@ This file is for contribution guidelines specific to the JetBrains extension. Se
|
|||
|
||||
- [Architecture Overview](#architecture-overview)
|
||||
- [Environment Setup](#environment-setup)
|
||||
- [IDE Installation](#ide-installation)
|
||||
- [IDE configuration](#ide-configuration)
|
||||
- [Node.js Requirements](#nodejs-requirements)
|
||||
- [Install all dependencies](#install-all-dependencies)
|
||||
- [Misc](#misc)
|
||||
- [IDE Installation](#ide-installation)
|
||||
- [IDE configuration](#ide-configuration)
|
||||
- [Node.js Requirements](#nodejs-requirements)
|
||||
- [Install all dependencies](#install-all-dependencies)
|
||||
- [Misc](#misc)
|
||||
- [Development Workflow](#development-workflow)
|
||||
- [Running the extension in debug mode](#running-the-extension-in-debug-mode)
|
||||
- [Accessing files in the `.continue` directory](#accessing-files-in-the-continue-directory)
|
||||
- [Viewing logs](#viewing-logs)
|
||||
- [Reloading changes](#reloading-changes)
|
||||
- [Setting breakpoints](#setting-breakpoints)
|
||||
- [Available Gradle tasks](#available-gradle-tasks)
|
||||
- [Packaging](#packaging)
|
||||
- [Installing the packaged extension](#installing-the-packaged-extension)
|
||||
- [Running the extension in debug mode](#running-the-extension-in-debug-mode)
|
||||
- [Accessing files in the `.continue` directory](#accessing-files-in-the-continue-directory)
|
||||
- [Viewing logs](#viewing-logs)
|
||||
- [Reloading changes](#reloading-changes)
|
||||
- [Setting breakpoints](#setting-breakpoints)
|
||||
- [Available Gradle tasks](#available-gradle-tasks)
|
||||
- [Packaging](#packaging)
|
||||
- [Installing the packaged extension](#installing-the-packaged-extension)
|
||||
- [Testing](#testing)
|
||||
- [e2e testing](#e2e-testing)
|
||||
- [Overview](#overview)
|
||||
- [Setup](#setup)
|
||||
- [Running the tests](#running-the-tests)
|
||||
- [Identifying selectors](#identifying-selectors)
|
||||
- [e2e testing](#e2e-testing)
|
||||
- [Overview](#overview)
|
||||
- [Setup](#setup)
|
||||
- [Running the tests](#running-the-tests)
|
||||
- [Identifying selectors](#identifying-selectors)
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
|
@ -96,7 +96,7 @@ When using the `Run Continue` task, we automatically tail both prompt logs and I
|
|||
|
||||
- `extensions/intellij`: Attempt to reload changed classes by selecting
|
||||
_Run | Debugging Actions | Reload Changed Classes`_
|
||||
- This will often fail on new imports, schema changes etc. In that case, you need to stop and restart the extension
|
||||
- This will often fail on new imports, schema changes etc. In that case, you need to stop and restart the extension
|
||||
- `gui`: Changes will be reloaded automatically
|
||||
- `core`: Run `npm run build -- --os [darwin | linux | win32]` from the `binary` directory (requires
|
||||
restarting the
|
||||
|
@ -107,8 +107,8 @@ When using the `Run Continue` task, we automatically tail both prompt logs and I
|
|||
- `extensions/intellij`: Breakpoints can be set in Intellij
|
||||
- `gui`: You'll need to set explicit `debugger` statements in the source code, or through the browser dev tools
|
||||
- `core`: Breakpoints can be set in Intellij (requires restarting the `Start Core Dev Server` task)
|
||||
- If you have Community Edition installed, you won't be able to use breakpoints in IntelliJ. Instead, you can start
|
||||
the `Core Binary` task in VS Code and set breakpoints in that IDE.
|
||||
- If you have Community Edition installed, you won't be able to use breakpoints in IntelliJ. Instead, you can start
|
||||
the `Core Binary` task in VS Code and set breakpoints in that IDE.
|
||||
|
||||
### Available Gradle tasks
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ class Calculator {
|
|||
this.result += number;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
subtract(number: number): Calculator {
|
||||
this.result -= number;
|
||||
return this;
|
||||
|
|
|
@ -18,4 +18,4 @@
|
|||
"dependencies": {
|
||||
"zod": "^3.24.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ export const modelDescriptionSchema = z.object({
|
|||
"continue-proxy",
|
||||
"nebius",
|
||||
"scaleway",
|
||||
"watsonx"
|
||||
"watsonx",
|
||||
]),
|
||||
model: z.string(),
|
||||
apiKey: z.string().optional(),
|
||||
|
@ -115,7 +115,7 @@ export const embeddingsProviderSchema = z.object({
|
|||
"continue-proxy",
|
||||
"nebius",
|
||||
"scaleway",
|
||||
"watsonx"
|
||||
"watsonx",
|
||||
]),
|
||||
apiBase: z.string().optional(),
|
||||
apiKey: z.string().optional(),
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
export default {
|
||||
branches: ['main'],
|
||||
branches: ["main"],
|
||||
plugins: [
|
||||
'@semantic-release/commit-analyzer',
|
||||
'@semantic-release/release-notes-generator',
|
||||
'@semantic-release/npm',
|
||||
'@semantic-release/github',
|
||||
"@semantic-release/commit-analyzer",
|
||||
"@semantic-release/release-notes-generator",
|
||||
"@semantic-release/npm",
|
||||
"@semantic-release/github",
|
||||
],
|
||||
}
|
||||
};
|
||||
|
|
|
@ -164,7 +164,7 @@ describe("E2E Scenarios", () => {
|
|||
);
|
||||
|
||||
const proxyOllamaModel = unrolledConfig.models?.[3]!;
|
||||
expect(proxyOllamaModel.provider).toBe('ollama')
|
||||
expect(proxyOllamaModel.provider).toBe("ollama");
|
||||
expect(proxyOllamaModel.defaultCompletionOptions?.stream).toBe(false);
|
||||
|
||||
expect(unrolledConfig.rules?.length).toBe(2);
|
||||
|
|
|
@ -50,17 +50,20 @@ export const completionOptionsSchema = z.object({
|
|||
reasoning: z.boolean().optional(),
|
||||
reasoningBudgetTokens: z.number().optional(),
|
||||
promptCaching: z.boolean().optional(),
|
||||
stream: z.boolean().optional()
|
||||
stream: z.boolean().optional(),
|
||||
});
|
||||
export type CompletionOptions = z.infer<typeof completionOptionsSchema>;
|
||||
|
||||
export const embeddingTasksSchema = z.union([
|
||||
z.literal("chunk"),
|
||||
z.literal("query")
|
||||
z.literal("query"),
|
||||
]);
|
||||
export type EmbeddingTasks = z.infer<typeof embeddingTasksSchema>;
|
||||
|
||||
export const embeddingPrefixesSchema = z.record(embeddingTasksSchema, z.string());
|
||||
export const embeddingPrefixesSchema = z.record(
|
||||
embeddingTasksSchema,
|
||||
z.string(),
|
||||
);
|
||||
export type EmbeddingPrefixes = z.infer<typeof embeddingPrefixesSchema>;
|
||||
|
||||
export const cacheBehaviorSchema = z.object({
|
||||
|
@ -69,7 +72,6 @@ export const cacheBehaviorSchema = z.object({
|
|||
});
|
||||
export type CacheBehavior = z.infer<typeof cacheBehaviorSchema>;
|
||||
|
||||
|
||||
export const embedOptionsSchema = z.object({
|
||||
maxChunkSize: z.number().optional(),
|
||||
maxBatchSize: z.number().optional(),
|
||||
|
@ -79,7 +81,7 @@ export type EmbedOptions = z.infer<typeof embedOptionsSchema>;
|
|||
|
||||
export const chatOptionsSchema = z.object({
|
||||
baseSystemMessage: z.string().optional(),
|
||||
baseAgentSystemMessage: z.string().optional()
|
||||
baseAgentSystemMessage: z.string().optional(),
|
||||
});
|
||||
export type ChatOptions = z.infer<typeof chatOptionsSchema>;
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { zodToJsonSchema } from 'zod-to-json-schema';
|
||||
import { configYamlSchema } from '../schemas/index.js';
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
import { zodToJsonSchema } from "zod-to-json-schema";
|
||||
import { configYamlSchema } from "../schemas/index.js";
|
||||
|
||||
// Get the directory name of the current module
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
// Convert Zod schema to JSON schema
|
||||
const jsonSchema = zodToJsonSchema(configYamlSchema, {
|
||||
$refStrategy: 'none',
|
||||
name: 'ConfigYaml',
|
||||
$refStrategy: "none",
|
||||
name: "ConfigYaml",
|
||||
});
|
||||
|
||||
// Output directory and file path
|
||||
const outDir = path.resolve(__dirname, '../../schema');
|
||||
const outFile = path.join(outDir, 'config-yaml-schema.json');
|
||||
const outDir = path.resolve(__dirname, "../../schema");
|
||||
const outFile = path.join(outDir, "config-yaml-schema.json");
|
||||
|
||||
// Ensure output directory exists
|
||||
if (!fs.existsSync(outDir)) {
|
||||
|
@ -25,4 +25,4 @@ if (!fs.existsSync(outDir)) {
|
|||
// Write the JSON schema to file
|
||||
fs.writeFileSync(outFile, JSON.stringify(jsonSchema, null, 2));
|
||||
|
||||
console.log(`JSON schema has been written to ${outFile}`);
|
||||
console.log(`JSON schema has been written to ${outFile}`);
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
// This file declares the Jest globals for TypeScript
|
||||
import '@jest/globals';
|
||||
import "@jest/globals";
|
||||
|
||||
declare global {
|
||||
const describe: typeof import('@jest/globals').describe;
|
||||
const expect: typeof import('@jest/globals').expect;
|
||||
const it: typeof import('@jest/globals').it;
|
||||
const test: typeof import('@jest/globals').test;
|
||||
const beforeAll: typeof import('@jest/globals').beforeAll;
|
||||
const afterAll: typeof import('@jest/globals').afterAll;
|
||||
const beforeEach: typeof import('@jest/globals').beforeEach;
|
||||
const afterEach: typeof import('@jest/globals').afterEach;
|
||||
const jest: typeof import('@jest/globals').jest;
|
||||
}
|
||||
const describe: typeof import("@jest/globals").describe;
|
||||
const expect: typeof import("@jest/globals").expect;
|
||||
const it: typeof import("@jest/globals").it;
|
||||
const test: typeof import("@jest/globals").test;
|
||||
const beforeAll: typeof import("@jest/globals").beforeAll;
|
||||
const afterAll: typeof import("@jest/globals").afterAll;
|
||||
const beforeEach: typeof import("@jest/globals").beforeEach;
|
||||
const afterEach: typeof import("@jest/globals").afterEach;
|
||||
const jest: typeof import("@jest/globals").jest;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue