├── .gitignore
├── .npmrc
├── .prettierrc.cjs
├── .vscode
└── extensions.json
├── LICENSE
├── README.md
├── examples
├── .gitignore
├── README.md
├── index.html
├── package.json
├── public
│ └── vite.svg
├── src
│ ├── App.vue
│ ├── assets
│ │ └── vue.svg
│ ├── components
│ │ ├── ProvideApiKeyDialog.tsx
│ │ └── TodoItem.vue
│ ├── hooks
│ │ └── utils.ts
│ ├── lib
│ │ └── email-history.json
│ ├── main.ts
│ ├── pages
│ │ ├── form.vue
│ │ ├── index.vue
│ │ ├── presentation.vue
│ │ ├── spreadsheet.vue
│ │ ├── table.tsx
│ │ ├── textarea.vue
│ │ └── todolist.vue
│ ├── router
│ │ └── index.ts
│ ├── style.css
│ └── vite-env.d.ts
├── tsconfig.json
└── vite.config.ts
├── lerna.json
├── package.json
├── packages
├── vite-config
│ ├── package.json
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── vue-core
│ ├── .autocodercommands
│ │ └── hello.md
│ ├── .autocoderignore
│ ├── .gitignore
│ ├── package.json
│ ├── src
│ │ ├── components
│ │ │ ├── copilotkit-props.ts
│ │ │ ├── copilotkit.tsx
│ │ │ └── index.ts
│ │ ├── context
│ │ │ ├── copilot-context.ts
│ │ │ └── index.ts
│ │ ├── hooks
│ │ │ ├── index.ts
│ │ │ ├── use-chat.ts
│ │ │ ├── use-copilot-action.ts
│ │ │ ├── use-copilot-chat.ts
│ │ │ ├── use-copilot-readable.ts
│ │ │ ├── use-flat-category-store.ts
│ │ │ ├── use-make-copilot-document-readable.ts
│ │ │ └── use-tree.ts
│ │ ├── index.ts
│ │ └── types
│ │ │ ├── chat-suggestion-configuration.ts
│ │ │ ├── document-pointer.ts
│ │ │ ├── frontend-action.ts
│ │ │ ├── index.ts
│ │ │ └── system-message.ts
│ ├── tsconfig.json
│ └── vite.config.ts
├── vue-textarea
│ ├── README.md
│ ├── auto-imports.d.ts
│ ├── package.json
│ ├── src
│ │ ├── components
│ │ │ ├── base-copilot-textarea
│ │ │ │ ├── base-copilot-textarea.css
│ │ │ │ ├── base-copilot-textarea.tsx
│ │ │ │ ├── use-add-branding-css.tsx
│ │ │ │ └── use-add-placeholder-css.tsx
│ │ │ ├── copilot-textarea
│ │ │ │ └── copilot-textarea.tsx
│ │ │ ├── hovering-toolbar
│ │ │ │ ├── hovering-editor-provider.tsx
│ │ │ │ ├── hovering-toolbar.tsx
│ │ │ │ └── text-insertion-prompt-box
│ │ │ │ │ ├── hovering-insertion-prompt-box-core.tsx
│ │ │ │ │ ├── hovering-insertion-prompt-box.tsx
│ │ │ │ │ ├── included-files-preview.tsx
│ │ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ └── source-search-box
│ │ │ │ └── source-search-box.tsx
│ │ ├── css
│ │ │ ├── baseTextarea.css
│ │ │ └── tailwind.css
│ │ ├── hooks
│ │ │ ├── base-copilot-textarea-implementation
│ │ │ │ ├── use-autosuggestions.ts
│ │ │ │ └── use-copilot-textarea-editor.tsx
│ │ │ ├── index.ts
│ │ │ ├── make-autosuggestions-function
│ │ │ │ ├── use-make-standard-autosuggestions-function.tsx
│ │ │ │ └── use-make-standard-insertion-function.tsx
│ │ │ ├── misc
│ │ │ │ └── use-autosize-textarea.tsx
│ │ │ └── track-cursor-moved-since-last-text-change.ts
│ │ ├── index.ts
│ │ ├── lib
│ │ │ ├── debouncer.ts
│ │ │ ├── editor-to-text.ts
│ │ │ ├── get-text-around-cursor.ts
│ │ │ ├── retry.tsx
│ │ │ ├── stream-promise-flatten.ts
│ │ │ ├── tiptap-edits
│ │ │ │ ├── add-autocompletions.tsx
│ │ │ │ ├── clear-autocompletions.tsx
│ │ │ │ └── replace-text.ts
│ │ │ └── utils.ts
│ │ ├── styles.css
│ │ └── types
│ │ │ ├── autosuggestions-config
│ │ │ ├── autosuggestions-config-user-specified.tsx
│ │ │ ├── autosuggestions-config.tsx
│ │ │ ├── editing-api-config.tsx
│ │ │ ├── index.ts
│ │ │ ├── insertions-api-config.tsx
│ │ │ ├── subtypes
│ │ │ │ └── make-system-prompt.ts
│ │ │ └── suggestions-api-config.tsx
│ │ │ ├── base
│ │ │ ├── autosuggestion-state.ts
│ │ │ ├── autosuggestions-bare-function.ts
│ │ │ ├── base-autosuggestions-config.tsx
│ │ │ ├── base-copilot-textarea-props.tsx
│ │ │ ├── editor-autocomplete-state.ts
│ │ │ └── index.ts
│ │ │ ├── html-copilot-textarea-element.ts
│ │ │ └── index.ts
│ ├── tsconfig.json
│ └── vite.config.ts
└── vue-ui
│ ├── package.json
│ ├── src
│ ├── components
│ │ ├── chat
│ │ │ ├── Button.tsx
│ │ │ ├── Chat.tsx
│ │ │ ├── ChatContext.tsx
│ │ │ ├── Header.tsx
│ │ │ ├── Icon.tsx
│ │ │ ├── Input.tsx
│ │ │ ├── Markdown.tsx
│ │ │ ├── Messages.tsx
│ │ │ ├── Modal.tsx
│ │ │ ├── Popup.tsx
│ │ │ ├── Response.tsx
│ │ │ ├── Sidebar.tsx
│ │ │ ├── Suggestion.tsx
│ │ │ ├── Textarea.tsx
│ │ │ ├── Window.tsx
│ │ │ └── props.ts
│ │ └── index.ts
│ ├── css
│ │ ├── animations.css
│ │ ├── button.css
│ │ ├── chat.css
│ │ ├── colors.css
│ │ ├── header.css
│ │ ├── input.css
│ │ ├── markdown.css
│ │ ├── messages.css
│ │ ├── popup.css
│ │ ├── response.css
│ │ ├── sidebar.css
│ │ ├── suggestions.css
│ │ └── window.css
│ ├── index.ts
│ ├── styles.css
│ └── types
│ │ └── suggestions.ts
│ ├── tsconfig.json
│ └── vite.config.ts
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── tsconfig.json
└── turbo.json
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | node_modules
5 | .pnp
6 | .pnp.js
7 |
8 | # testing
9 | coverage
10 |
11 | # next.js
12 | .next/
13 | out/
14 | build
15 | .swc/
16 |
17 | # misc
18 | .DS_Store
19 | *.pem
20 |
21 | # debug
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 |
26 | # local env files
27 | .env.local
28 | .env.development.local
29 | .env.test.local
30 | .env.production.local
31 |
32 | # turbo
33 | .turbo
34 |
35 | # ui
36 | dist/
37 |
38 | TODO.local.md
39 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | auto-install-peers = true
2 |
--------------------------------------------------------------------------------
/.prettierrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // 每一行代码允许的字符数
3 | printWidth: 120,
4 | // 指定每行缩进的空格数
5 | tabWidth: 2,
6 | // 结尾不带分号
7 | semi: false,
8 | // 使用单引号
9 | singleQuote: true,
10 | // 关闭尾逗号
11 | trailingComma: 'none',
12 | // 指定 HTML 文件的全局空白区域敏感度
13 | htmlWhitespaceSensitivity: 'ignore',
14 | // always 始终保留括号,avoid 不保留括号
15 | arrowParens: 'avoid'
16 | }
17 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar"]
3 | }
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 fe-51shebao
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-copilotkit
2 | #### Implement a Vue version based on the React UI library of copilotkit
3 | #### Welcome to use vue-copilotkit and submit issues.
4 | ## Future possible improvements:
5 | ### 1. keep update with copilotkit
6 | ### 2. Simpler integration, just enter the URL to connect to ollama, xinference, etc. Models can be switched.
7 | ### 3. Support some combination functions of the chat window, refer to open-webui, cursor.
8 |
9 | 基于copilotkit的react UI库实现一个vue版
10 |
11 | 欢迎各位提issue。
12 |
13 | ## 未来可能改进方向:
14 | ### 1、保持跟上copilotkit的更新节奏
15 | ### 2、接入更简单,输入url即可接入ollama,xinference之类。可切换模型,或者直接用国产大模型的key。(初步解决)
16 | ### 3、支持聊天窗口的一些组合功能,参照open-webui, cursor。
17 |
18 | ## 使用教程相关文档
19 | ## Usage Tutorial Documentation
20 | 演示站点:vue-copilotkit
21 | 借助MoAiStudio不写一行代码,完成页面开发-掘金
22 | 借助MoAiStudio不写一行代码,完成页面开发-csdn
23 |
24 | 
25 | 
26 | 
27 | 
--------------------------------------------------------------------------------
/examples/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/examples/README.md:
--------------------------------------------------------------------------------
1 | # Vue 3 + TypeScript + Vite
2 |
3 | This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `
12 |