diff --git a/.github/workflows/auto-deploy-site.yml b/.github/workflows/auto-deploy-site.yml index 92b98d2bd9..0f9aab8491 100644 --- a/.github/workflows/auto-deploy-site.yml +++ b/.github/workflows/auto-deploy-site.yml @@ -63,4 +63,4 @@ jobs: uses: actions/deploy-pages@v4 environment: name: github-pages - url: ${{ steps.deployment.outputs.page_url }} \ No newline at end of file + url: ${{ steps.deployment.outputs.page_url }} diff --git a/examples/sites/demos/pc/app/grid/ai-agent/basic-usage-composition-api.vue b/examples/sites/demos/pc/app/grid/ai-agent/basic-usage-composition-api.vue new file mode 100644 index 0000000000..e67ee11946 --- /dev/null +++ b/examples/sites/demos/pc/app/grid/ai-agent/basic-usage-composition-api.vue @@ -0,0 +1,100 @@ + + + diff --git a/examples/sites/demos/pc/app/grid/ai-agent/basic-usage.vue b/examples/sites/demos/pc/app/grid/ai-agent/basic-usage.vue new file mode 100644 index 0000000000..e2a063f477 --- /dev/null +++ b/examples/sites/demos/pc/app/grid/ai-agent/basic-usage.vue @@ -0,0 +1,182 @@ + + + diff --git a/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.cn.md b/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.cn.md new file mode 100644 index 0000000000..50af58c043 --- /dev/null +++ b/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.cn.md @@ -0,0 +1,7 @@ +--- +title: Grid 表格 +--- + +# Grid 表格 + +
表格组件,提供了非常强大数据表格功能,在 Grid 可以展示数据列表,可以对数据列表进行选择、编辑等。
diff --git a/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.en.md b/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.en.md new file mode 100644 index 0000000000..f01c63ec0b --- /dev/null +++ b/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.en.md @@ -0,0 +1,7 @@ +--- +title: Grid Table +--- + +# Grid Table + +
Table component, which provides powerful data table functions. In Grid, data lists can be displayed, selected, and edited.
diff --git a/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.js b/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.js new file mode 100644 index 0000000000..19bd85545a --- /dev/null +++ b/examples/sites/demos/pc/app/grid/webdoc/grid-ai-agent.js @@ -0,0 +1,23 @@ +export default { + column: '1', + owner: '', + demos: [ + { + demoId: 'grid-ai-agent', + name: { 'zh-CN': '表格智能体', 'en-US': 'grid agent' }, + desc: { + 'zh-CN': `表格智能体是表格组件面向 AI 领域的应用,提供了一个基于表格数据的智能体交互界面。用户可以通过自然语言与表格进行交互,智能体会根据表格内容和用户输入执行操作。
+ 目前表格智能体支持的操作包括:
+ - 查询表格数据:用户可以输入自然语言查询表格中的数据,智能体会解析查询并返回结果,以及根据结果执行后续的操作。
+ - 滚动到指定行:用户可以通过自然语言指令,将表格滚动到指定位置。
+ - 选中表格数据:用户可以通过自然语言指令,选中表格数据。
+ - 选中全部数据:用户可以通过自然语言指令,选中全部数据。
+ + 通过属性 tiny-mcp-config 可以配置表格的业务意义以及传入server对象,详见示例。`, + 'en-US': `` + }, + codeFiles: ['ai-agent/basic-usage.vue'] + } + ], + apis: [{ name: 'grid-ai-agent', 'type': 'component', 'props': [], 'events': [], 'slots': [] }] +} diff --git a/examples/sites/demos/pc/menus.js b/examples/sites/demos/pc/menus.js index 1f95d26254..635e81b316 100644 --- a/examples/sites/demos/pc/menus.js +++ b/examples/sites/demos/pc/menus.js @@ -175,6 +175,7 @@ export const cmpMenus = [ 'key': 'cmp-table-components', 'children': [ { 'nameCn': '基本用法', 'name': '', 'key': 'grid' }, + { 'nameCn': 'AI智能体', 'name': '', 'key': 'grid-ai-agent' }, { 'nameCn': '序号列', 'name': '', 'key': 'grid-serial-column' }, { 'nameCn': '选中行', 'name': '', 'key': 'grid-operation-column' }, { 'nameCn': '空数据', 'name': '', 'key': 'grid-empty' }, diff --git a/examples/sites/package.json b/examples/sites/package.json index e27cb914ad..5c3d81f7c0 100644 --- a/examples/sites/package.json +++ b/examples/sites/package.json @@ -27,6 +27,13 @@ "@docsearch/css": "^3.8.0", "@docsearch/js": "^3.8.0", "@docsearch/react": "npm:@docsearch/css", + "@modelcontextprotocol/sdk": "1.12.1", + "@opentiny/next": "0.1.2", + "@opentiny/tiny-robot": "0.2.0-alpha.7", + "@opentiny/tiny-robot-kit": "0.2.0-alpha.7", + "@opentiny/tiny-robot-svgs": "0.2.0-alpha.7", + "@opentiny/tiny-schema-renderer": "1.0.0-beta.5", + "@opentiny/tiny-vue-mcp": "0.0.1-beta.1", "@opentiny/utils": "workspace:~", "@opentiny/vue": "workspace:~", "@opentiny/vue-common": "workspace:~", @@ -100,4 +107,4 @@ "vite-svg-loader": "^3.6.0", "vue-tsc": "^1.8.5" } -} \ No newline at end of file +} diff --git a/examples/sites/src/i18n/index.js b/examples/sites/src/i18n/index.js index 5cc5fd2756..be9c63dba0 100644 --- a/examples/sites/src/i18n/index.js +++ b/examples/sites/src/i18n/index.js @@ -1,10 +1,11 @@ import { createI18n } from 'vue-i18n' -import { initI18n } from '@opentiny/vue-locale' +import { initI18n, t } from '@opentiny/vue-locale' import { $local } from '../tools' import zh from './zh.json' import en from './en.json' +import { zhCN, enUS } from '@opentiny/tiny-vue-mcp' -const messages = { enUS: en, zhCN: zh } +const messages = { enUS: { ...en, ...enUS }, zhCN: { ...zh, ...zhCN } } // $local._lang = $local._lang !== 'zhCN' && $local._lang !== 'enUS' ? 'zhCN' : $local._lang $local._lang = 'zhCN' const customCreateI18n = ({ locale, messages }) => @@ -26,3 +27,5 @@ const i18nByKey = i18n.global.t const getWord = (cn, en) => (i18n.global.locale === 'zhCN' ? cn : en) export { i18n, i18nByKey, getWord } + +export { t } diff --git a/examples/sites/src/main.js b/examples/sites/src/main.js index d009daa8d5..ac9499d3f4 100644 --- a/examples/sites/src/main.js +++ b/examples/sites/src/main.js @@ -2,6 +2,9 @@ import { createHead } from '@vueuse/head' import { createApp } from 'vue' import '@unocss/reset/eric-meyer.css' +// tiny-robot 对话框 +import '@opentiny/tiny-robot/dist/style.css' + // markdown文件内代码高亮 import 'prismjs/themes/prism.css' import 'uno.css' @@ -16,7 +19,7 @@ import './assets/custom-markdown.css' import './assets/custom-block.less' import './assets/md-preview.less' -import { i18n } from './i18n/index' +import { i18n, t } from './i18n/index' import { router } from './router' import App from './App.vue' import { appData } from './tools' @@ -33,6 +36,12 @@ import '@docsearch/css' import { doSearchEverySite } from './tools/docsearch' import '@opentiny/vue-theme/dark-theme-index.css' +import { registerMcpConfig } from '@opentiny/vue-common' +import { createMcpTools, getTinyVueMcpConfig } from '@opentiny/tiny-vue-mcp' + +// 注册TinyVue组件mcp配置 +registerMcpConfig(getTinyVueMcpConfig({ t }), createMcpTools) + const envTarget = import.meta.env.VITE_BUILD_TARGET || 'open' hljs.registerLanguage('javascript', javascript) diff --git a/examples/sites/src/views/components-doc/common.vue b/examples/sites/src/views/components-doc/common.vue index c5e47340d9..8abe5e43ef 100644 --- a/examples/sites/src/views/components-doc/common.vue +++ b/examples/sites/src/views/components-doc/common.vue @@ -9,7 +9,13 @@ -
+
@@ -84,6 +90,7 @@
+