@doubao-apps/ai 0.0.26 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/994.js +3 -3
- package/dist/contexts/doubao-apps-dev/.ai/examples/common-patterns.md +600 -0
- package/dist/contexts/doubao-apps-dev/.ai/examples/component-basics.md +509 -0
- package/dist/contexts/doubao-apps-dev/.ai/guides/best-practices.md +571 -0
- package/dist/contexts/doubao-apps-dev/.ai/guides/component-development.md +857 -0
- package/dist/contexts/doubao-apps-dev/.ai/guides/performance-optimization.md +404 -0
- package/dist/contexts/doubao-apps-dev/.ai/guides/system-prompt.md +331 -0
- package/dist/contexts/doubao-apps-dev/.ai/guides/troubleshooting.md +291 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/components-quick-ref.md +103 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/framework-api-quick-ref.md +537 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/01-/345/237/272/347/241/200-/350/264/246/345/217/267-/347/263/273/347/273/237.md +699 -0
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/02-storage.md → contexts/doubao-apps-dev/.ai/reference/open-api/02-/345/255/230/345/202/250.md} +13 -21
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/03-router.md → contexts/doubao-apps-dev/.ai/reference/open-api/03-/350/267/257/347/224/261.md} +9 -9
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/04-ui- → contexts/doubao-apps-dev/.ai/reference/open-api/04-/347/225/214/351/235/242-}/344/272/244/344/272/222.md +12 -12
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/05-/347/225/214/351/235/242-/350/276/223/345/205/245.md +42 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/06-/347/275/221/347/273/234.md +148 -0
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/07-media.md → contexts/doubao-apps-dev/.ai/reference/open-api/07-/345/252/222/344/275/223.md} +8 -8
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/08-open- → contexts/doubao-apps-dev/.ai/reference/open-api/08-/345/274/200/346/224/276/350/203/275/345/212/233-}/344/270/232/345/212/241/350/203/275/345/212/233.md +83 -14
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/09-device-bluetooth.md → contexts/doubao-apps-dev/.ai/reference/open-api/09-/350/256/276/345/244/207-/350/223/235/347/211/231.md} +22 -46
- package/dist/{skills/doubao-apps-dev/.ai/reference/open-api/10-device-wi-fi.md → contexts/doubao-apps-dev/.ai/reference/open-api/10-/350/256/276/345/244/207-wi-fi.md} +9 -9
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/11-/350/256/276/345/244/207-/345/212/240/351/200/237/345/272/246/350/256/241.md +104 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/12-/350/256/276/345/244/207-ibeacon.md +148 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/13-/350/256/276/345/244/207-/347/275/227/347/233/230.md +82 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/14-/350/256/276/345/244/207-/350/256/276/345/244/207/346/226/271/345/220/221.md +70 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/15-/350/256/276/345/244/207-/351/231/200/350/236/272/344/273/252.md +104 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/16-ui-/350/276/223/345/205/245.md +65 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/17-/350/256/276/345/244/207-/347/275/221/347/273/234.md +164 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/18-/350/256/276/345/244/207-/347/237/255/344/277/241.md +62 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/19-/350/256/276/345/244/207-/346/227/240/351/232/234/347/242/215.md +43 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/20-/350/256/276/345/244/207-/347/224/265/346/261/240.md +83 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/21-/350/256/276/345/244/207-/346/227/245/345/216/206.md +215 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/22-/350/256/276/345/244/207-/345/211/252/350/264/264/346/235/277.md +70 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/23-/350/256/276/345/244/207-/350/201/224/347/263/273/344/272/272.md +270 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/24-/350/256/276/345/244/207-/345/212/240/345/257/206.md +56 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/25-/350/256/276/345/244/207-/347/224/265/350/257/235.md +41 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/26-/350/256/276/345/244/207-/346/211/253/347/240/201.md +100 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/27-/350/256/276/345/244/207-/345/261/217/345/271/225.md +173 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/28-/350/256/276/345/244/207-/351/234/207/345/212/250.md +66 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api/README.md +36 -0
- package/dist/contexts/doubao-apps-dev/.ai/reference/open-api.md +326 -0
- package/dist/contexts/doubao-apps-dev/.ai/rules/dos-and-donts.md +390 -0
- package/dist/{skills → contexts}/doubao-apps-dev/AGENTS.md +54 -31
- package/dist/manifest.json +45 -0
- package/dist/skills/doubao-apps-dev/.ai/examples/common-patterns.md +53 -43
- package/dist/skills/doubao-apps-dev/.ai/examples/component-basics.md +0 -17
- package/dist/skills/doubao-apps-dev/.ai/guides/component-development.md +96 -214
- package/dist/skills/doubao-apps-dev/.ai/guides/system-prompt.md +14 -14
- package/dist/skills/doubao-apps-dev/.ai/reference/framework-api-quick-ref.md +46 -85
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/01-/345/237/272/347/241/200-/350/264/246/345/217/267-/347/263/273/347/273/237.md +13 -13
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/02-/345/255/230/345/202/250.md +409 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/03-/350/267/257/347/224/261.md +165 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/04-/347/225/214/351/235/242-/344/272/244/344/272/222.md +432 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/05-/347/225/214/351/235/242-/350/276/223/345/205/245.md +42 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/06-/347/275/221/347/273/234.md +148 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/07-/345/252/222/344/275/223.md +346 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/08-/345/274/200/346/224/276/350/203/275/345/212/233-/344/270/232/345/212/241/350/203/275/345/212/233.md +546 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/09-/350/256/276/345/244/207-/350/223/235/347/211/231.md +961 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/10-/350/256/276/345/244/207-wi-fi.md +277 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/11-/350/256/276/345/244/207-/345/212/240/351/200/237/345/272/246/350/256/241.md +104 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/12-/350/256/276/345/244/207-ibeacon.md +148 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/13-/350/256/276/345/244/207-/347/275/227/347/233/230.md +82 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/14-/350/256/276/345/244/207-/350/256/276/345/244/207/346/226/271/345/220/221.md +70 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/15-/350/256/276/345/244/207-/351/231/200/350/236/272/344/273/252.md +104 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/16-ui-/350/276/223/345/205/245.md +65 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/17-/350/256/276/345/244/207-/347/275/221/347/273/234.md +164 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/18-/350/256/276/345/244/207-/347/237/255/344/277/241.md +62 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/19-/350/256/276/345/244/207-/346/227/240/351/232/234/347/242/215.md +43 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/20-/350/256/276/345/244/207-/347/224/265/346/261/240.md +83 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/21-/350/256/276/345/244/207-/346/227/245/345/216/206.md +215 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/22-/350/256/276/345/244/207-/345/211/252/350/264/264/346/235/277.md +70 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/23-/350/256/276/345/244/207-/350/201/224/347/263/273/344/272/272.md +270 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/24-/350/256/276/345/244/207-/345/212/240/345/257/206.md +56 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/25-/350/256/276/345/244/207-/347/224/265/350/257/235.md +41 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/26-/350/256/276/345/244/207-/346/211/253/347/240/201.md +100 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/27-/350/256/276/345/244/207-/345/261/217/345/271/225.md +173 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/28-/350/256/276/345/244/207-/351/234/207/345/212/250.md +66 -0
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/README.md +27 -11
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api.md +282 -166
- package/dist/skills/doubao-apps-dev/.ai/rules/dos-and-donts.md +50 -37
- package/dist/skills/doubao-apps-dev/SKILL.md +55 -27
- package/dist/skills/douyin-to-doubao/SKILL.md +2 -2
- package/dist/skills/h5-to-doubao/SKILL.md +2 -2
- package/dist/skills/uniapp-to-doubao/SKILL.md +2 -2
- package/dist/skills/weixin-to-doubao/SKILL.md +2 -2
- package/package.json +4 -2
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/05-ui-/350/276/223/345/205/245.md +0 -95
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/06-network.md +0 -298
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/11-device-/344/274/240/346/204/237/345/231/250.md +0 -372
- package/dist/skills/doubao-apps-dev/.ai/reference/open-api/12-device-/346/234/254/345/234/260/350/203/275/345/212/233.md +0 -1005
- /package/dist/{skills → contexts}/doubao-apps-dev/CLAUDE.md +0 -0
|
@@ -87,19 +87,6 @@ interface UserInfo {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
export default defineWidget({
|
|
90
|
-
aiMeta: {
|
|
91
|
-
id: 'user-card',
|
|
92
|
-
name: '用户卡片',
|
|
93
|
-
input: {
|
|
94
|
-
type: 'object',
|
|
95
|
-
properties: {
|
|
96
|
-
name: { type: 'string', title: '姓名' },
|
|
97
|
-
age: { type: 'number', title: '年龄' },
|
|
98
|
-
avatar: { type: 'string', title: '头像' }
|
|
99
|
-
},
|
|
100
|
-
required: ['name', 'age']
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
90
|
render() {
|
|
104
91
|
const input = getViewData<UserInfo>();
|
|
105
92
|
return <view>{input.name}</view>;
|
|
@@ -107,6 +94,21 @@ export default defineWidget({
|
|
|
107
94
|
});
|
|
108
95
|
```
|
|
109
96
|
|
|
97
|
+
```ts
|
|
98
|
+
// ✅ 把 metadata 写到 src/app.config.ts
|
|
99
|
+
import { defineAppConfig } from '@doubao-apps/kit';
|
|
100
|
+
|
|
101
|
+
export default defineAppConfig({
|
|
102
|
+
widgets: {
|
|
103
|
+
'widgets/user-card': {
|
|
104
|
+
id: 'user-card',
|
|
105
|
+
name: '用户卡片',
|
|
106
|
+
description: '用户信息卡片'
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
```
|
|
111
|
+
|
|
110
112
|
```tsx
|
|
111
113
|
// ❌ 不好的做法
|
|
112
114
|
export default defineWidget({
|
|
@@ -247,20 +249,26 @@ export default definePage({
|
|
|
247
249
|
```
|
|
248
250
|
|
|
249
251
|
```tsx
|
|
250
|
-
// ✅
|
|
251
|
-
|
|
252
|
-
data: {
|
|
253
|
-
userData: null
|
|
254
|
-
},
|
|
252
|
+
// ✅ 推荐 - 使用 Hook 管理请求和状态
|
|
253
|
+
import { useEffect, useState } from '@doubao-apps/framework';
|
|
255
254
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
255
|
+
function UserPage() {
|
|
256
|
+
const [userData, setUserData] = useState<{ name?: string } | null>(null);
|
|
257
|
+
|
|
258
|
+
useEffect(() => {
|
|
259
|
+
fetch('/api/data')
|
|
260
|
+
.then(res => res.json())
|
|
261
|
+
.then(data => {
|
|
262
|
+
setUserData(data);
|
|
263
|
+
});
|
|
264
|
+
}, []);
|
|
261
265
|
|
|
266
|
+
return <view>{userData?.name}</view>;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export default definePage({
|
|
262
270
|
render() {
|
|
263
|
-
return <
|
|
271
|
+
return <UserPage />;
|
|
264
272
|
}
|
|
265
273
|
});
|
|
266
274
|
```
|
|
@@ -351,21 +359,26 @@ export default defineWidget({
|
|
|
351
359
|
```
|
|
352
360
|
|
|
353
361
|
```tsx
|
|
354
|
-
// ✅
|
|
362
|
+
// ✅ 推荐 - 使用组件内状态,实例之间互不影响
|
|
363
|
+
import { useState } from '@doubao-apps/framework';
|
|
364
|
+
|
|
365
|
+
function CounterWidget() {
|
|
366
|
+
const [count, setCount] = useState(0);
|
|
367
|
+
|
|
368
|
+
return (
|
|
369
|
+
<view
|
|
370
|
+
onClick={() => {
|
|
371
|
+
setCount(prev => prev + 1);
|
|
372
|
+
}}
|
|
373
|
+
>
|
|
374
|
+
Count: {count}
|
|
375
|
+
</view>
|
|
376
|
+
);
|
|
377
|
+
}
|
|
378
|
+
|
|
355
379
|
export default defineWidget({
|
|
356
|
-
data: {
|
|
357
|
-
count: 0
|
|
358
|
-
},
|
|
359
380
|
render() {
|
|
360
|
-
return
|
|
361
|
-
<view
|
|
362
|
-
onClick={() => {
|
|
363
|
-
this.setData({ count: this.data.count + 1 });
|
|
364
|
-
}}
|
|
365
|
-
>
|
|
366
|
-
Count: {this.data.count}
|
|
367
|
-
</view>
|
|
368
|
-
);
|
|
381
|
+
return <CounterWidget />;
|
|
369
382
|
}
|
|
370
383
|
});
|
|
371
384
|
```
|
|
@@ -7,7 +7,7 @@ description:
|
|
|
7
7
|
当用户开发豆包应用、创建页面或卡片组件、调用端能力 API 时使用此技能。
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
# Doubao Apps SDK AI 开发指南
|
|
11
11
|
|
|
12
12
|
本文件专供 AI coding agents(如 Claude、Copilot、Cursor)和开发者使用,提供 Doubao Apps SDK 框架的快速入门、开发规则和文档导航。
|
|
13
13
|
|
|
@@ -35,12 +35,17 @@ Doubao Apps SDK 是豆包应用开发框架,基于 React Lynx 框架提供完
|
|
|
35
35
|
### 3. 创建项目
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
+
# 使用 create 创建一个 empty 工程,注意,使用正式的项目文件夹名
|
|
39
|
+
npm create @byted-doubao-apps my-doubao-app -- --template empty -y
|
|
40
|
+
|
|
41
|
+
# 进入项目目录
|
|
42
|
+
cd my-doubao-app
|
|
43
|
+
|
|
38
44
|
# 安装依赖
|
|
39
45
|
pnpm install
|
|
40
46
|
|
|
41
47
|
# 启动开发
|
|
42
48
|
pnpm dev
|
|
43
|
-
|
|
44
49
|
```
|
|
45
50
|
|
|
46
51
|
**开发服务器命令**:
|
|
@@ -53,7 +58,6 @@ pnpm dev
|
|
|
53
58
|
|
|
54
59
|
```
|
|
55
60
|
my-doubao-app/
|
|
56
|
-
├── doubao.config.ts # 项目配置
|
|
57
61
|
├── package.json # 依赖管理
|
|
58
62
|
├── pnpm-lock.yaml # 依赖锁定
|
|
59
63
|
└── src/
|
|
@@ -76,9 +80,9 @@ my-doubao-app/
|
|
|
76
80
|
|
|
77
81
|
- **优先使用 pnpm** 作为包管理器
|
|
78
82
|
- **分离样式文件**:每个组件使用独立的 `.scss` 文件
|
|
79
|
-
-
|
|
83
|
+
- **在 `src/app.config.ts` 中配置 metadata**:为 App、Page 和 Widget 统一配置元数据
|
|
80
84
|
- **使用生命周期钩子**:合理使用 `onShow`、`onMounted` 等
|
|
81
|
-
- **TypeScript
|
|
85
|
+
- **TypeScript 类型**:使用 `getViewData<T>()`、为 props 和 state 提供类型定义
|
|
82
86
|
- **错误处理**:处理边界情况和错误状态
|
|
83
87
|
|
|
84
88
|
### 禁止做法
|
|
@@ -102,22 +106,37 @@ my-doubao-app/
|
|
|
102
106
|
|
|
103
107
|
Page 是全屏 UI 组件,支持九宫格、浮窗等变体。
|
|
104
108
|
|
|
105
|
-
|
|
109
|
+
**metadata 配置**:
|
|
110
|
+
```ts
|
|
111
|
+
import { defineAppConfig } from '@doubao-apps/kit';
|
|
112
|
+
|
|
113
|
+
export default defineAppConfig({
|
|
114
|
+
pages: {
|
|
115
|
+
'pages/home': {
|
|
116
|
+
id: 'my-page',
|
|
117
|
+
title: '我的页面',
|
|
118
|
+
description: '页面功能描述'
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**页面实现**:
|
|
106
125
|
```tsx
|
|
107
126
|
import { definePage, getViewData } from '@doubao-apps/framework';
|
|
108
127
|
import './index.scss';
|
|
109
128
|
|
|
129
|
+
interface HomePageData {
|
|
130
|
+
title: string;
|
|
131
|
+
}
|
|
132
|
+
|
|
110
133
|
export default definePage({
|
|
111
|
-
aiMeta: {
|
|
112
|
-
id: 'my-page',
|
|
113
|
-
title: '我的页面',
|
|
114
|
-
},
|
|
115
134
|
onShow() {
|
|
116
135
|
// 页面显示时触发
|
|
117
136
|
},
|
|
118
137
|
render() {
|
|
119
|
-
const input = getViewData();
|
|
120
|
-
return <view
|
|
138
|
+
const input = getViewData<HomePageData>();
|
|
139
|
+
return <view>{input.title}</view>;
|
|
121
140
|
}
|
|
122
141
|
});
|
|
123
142
|
```
|
|
@@ -128,28 +147,38 @@ export default definePage({
|
|
|
128
147
|
|
|
129
148
|
Widget 是聊天流中的卡片组件,在对话中展示。
|
|
130
149
|
|
|
131
|
-
|
|
150
|
+
**metadata 配置**:
|
|
151
|
+
```ts
|
|
152
|
+
import { defineAppConfig } from '@doubao-apps/kit';
|
|
153
|
+
|
|
154
|
+
export default defineAppConfig({
|
|
155
|
+
widgets: {
|
|
156
|
+
'widgets/my-widget': {
|
|
157
|
+
id: 'my-widget',
|
|
158
|
+
name: '我的卡片',
|
|
159
|
+
description: '卡片功能描述',
|
|
160
|
+
boxType: 'inbox',
|
|
161
|
+
border: true
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**卡片实现**:
|
|
132
168
|
```tsx
|
|
133
169
|
import { defineWidget, getViewData } from '@doubao-apps/framework';
|
|
134
170
|
import './index.scss';
|
|
135
171
|
|
|
172
|
+
interface MyWidgetData {
|
|
173
|
+
title: string;
|
|
174
|
+
}
|
|
175
|
+
|
|
136
176
|
export default defineWidget({
|
|
137
|
-
aiMeta: {
|
|
138
|
-
id: 'my-widget',
|
|
139
|
-
name: '我的卡片',
|
|
140
|
-
boxType: 'inbox',
|
|
141
|
-
input: {
|
|
142
|
-
type: 'object',
|
|
143
|
-
properties: {
|
|
144
|
-
title: { type: 'string', title: '标题' }
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
177
|
onMounted() {
|
|
149
178
|
// 卡片挂载后触发
|
|
150
179
|
},
|
|
151
180
|
render() {
|
|
152
|
-
const input = getViewData();
|
|
181
|
+
const input = getViewData<MyWidgetData>();
|
|
153
182
|
return <view>{input.title}</view>;
|
|
154
183
|
}
|
|
155
184
|
});
|
|
@@ -218,7 +247,6 @@ API 参考文档
|
|
|
218
247
|
- **[组件库](.ai/reference/components-quick-ref.md)** - SDK 内置组件速查
|
|
219
248
|
- **[Open API](.ai/reference/open-api/README.md)** - 系统能力 API 目录与详细文档
|
|
220
249
|
|
|
221
|
-
|
|
222
250
|
### 依赖包
|
|
223
251
|
|
|
224
252
|
- **Framework**:`@doubao-apps/framework` - 核心框架
|
|
@@ -253,7 +281,7 @@ API 参考文档
|
|
|
253
281
|
|
|
254
282
|
```
|
|
255
283
|
<skill-directory>/
|
|
256
|
-
├── SKILL.md
|
|
284
|
+
├── SKILL.md # 主入口文档(AI Agent 必读)
|
|
257
285
|
└── .ai/ # 详细文档目录
|
|
258
286
|
├── guides/ # 开发指南
|
|
259
287
|
├── rules/ # 开发规则
|
|
@@ -108,8 +108,8 @@ npx @doubao-apps/ai skills add doubao-apps-dev --agent codex
|
|
|
108
108
|
依次检测以下路径,取第一个存在的作为 `$SKILLS_BASE`:
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
ls .agents/skills/doubao-apps-dev/
|
|
112
|
-
ls .claude/skills/doubao-apps-dev/
|
|
111
|
+
ls .agents/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.agents/skills/doubao-apps-dev"
|
|
112
|
+
ls .claude/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.claude/skills/doubao-apps-dev"
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
**2. 如未安装,执行安装**
|
|
@@ -140,10 +140,10 @@ view {
|
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
142
|
# Claude Code 优先
|
|
143
|
-
ls .claude/skills/doubao-apps-dev/
|
|
143
|
+
ls .claude/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.claude/skills/doubao-apps-dev"
|
|
144
144
|
|
|
145
145
|
# 其他 Agent(Cursor 等)
|
|
146
|
-
ls .agent/skills/doubao-apps-dev/
|
|
146
|
+
ls .agent/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.agent/skills/doubao-apps-dev"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
**2. 如未安装,执行安装**:
|
|
@@ -109,8 +109,8 @@ npx @doubao-apps/ai skills add doubao-apps-dev --agent codex
|
|
|
109
109
|
依次检测以下路径,取第一个存在的作为 `$SKILLS_BASE`:
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
|
-
ls .agents/skills/doubao-apps-dev/
|
|
113
|
-
ls .claude/skills/doubao-apps-dev/
|
|
112
|
+
ls .agents/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.agents/skills/doubao-apps-dev"
|
|
113
|
+
ls .claude/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.claude/skills/doubao-apps-dev"
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
**2. 如未安装,执行安装**
|
|
@@ -78,10 +78,10 @@ description: Migrate WeChat Mini Program (微信小程序) projects to Doubao Ap
|
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
80
|
# Claude Code 优先
|
|
81
|
-
ls .claude/skills/doubao-apps-dev/
|
|
81
|
+
ls .claude/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.claude/skills/doubao-apps-dev"
|
|
82
82
|
|
|
83
83
|
# 其他 Agent(Cursor 等)
|
|
84
|
-
ls .agent/skills/doubao-apps-dev/
|
|
84
|
+
ls .agent/skills/doubao-apps-dev/SKILL.md 2>/dev/null && echo "SKILLS_BASE=.agent/skills/doubao-apps-dev"
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
**2. 如未安装,执行安装**:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doubao-apps/ai",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.27",
|
|
4
4
|
"description": "Doubao Apps SDK AI tools with context and skills management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
"import": "./dist/cli.js",
|
|
17
17
|
"types": "./dist/cli.d.ts"
|
|
18
18
|
},
|
|
19
|
-
"./
|
|
19
|
+
"./manifest": "./dist/manifest.json",
|
|
20
|
+
"./skills/*": "./dist/skills/*",
|
|
21
|
+
"./contexts/*": "./dist/contexts/*"
|
|
20
22
|
},
|
|
21
23
|
"files": [
|
|
22
24
|
"bin.js",
|
package/dist/skills/doubao-apps-dev/.ai/reference/open-api/05-ui-/350/276/223/345/205/245.md
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# Open API: UI / 输入
|
|
2
|
-
|
|
3
|
-
键盘和输入框选区能力。
|
|
4
|
-
|
|
5
|
-
[返回目录](./README.md) | [返回速查](../open-api.md)
|
|
6
|
-
|
|
7
|
-
## 速查
|
|
8
|
-
|
|
9
|
-
| API | 签名 | 用途 | 参数类型 | 结果类型 | 注意点 |
|
|
10
|
-
| --- | --- | --- | --- | --- | --- |
|
|
11
|
-
| [`onKeyboardHeightChange`](#onkeyboardheightchange) | `onKeyboardHeightChange(handler): () => void` | 监听键盘高度变化事件 | `handler` | `() => void` | 返回取消监听函数 |
|
|
12
|
-
| [`hideKeyboard`](#hidekeyboard) | `hideKeyboard(params?): Promise<object>` | 收起键盘 | `params?` | `Promise<object>` | - |
|
|
13
|
-
| [`getSelectedTextRange`](#getselectedtextrange) | `getSelectedTextRange(params?): Promise<GetSelectedTextRangeResult>` | 获取当前输入框的选区范围 | `params?` | `Promise<GetSelectedTextRangeResult>` | - |
|
|
14
|
-
|
|
15
|
-
## API 详情
|
|
16
|
-
|
|
17
|
-
<a id="onkeyboardheightchange"></a>
|
|
18
|
-
### onKeyboardHeightChange()
|
|
19
|
-
|
|
20
|
-
> **onKeyboardHeightChange**(`handler`): () => `void`
|
|
21
|
-
|
|
22
|
-
监听键盘高度变化事件。
|
|
23
|
-
|
|
24
|
-
#### Parameters
|
|
25
|
-
|
|
26
|
-
• **handler**
|
|
27
|
-
|
|
28
|
-
#### Returns
|
|
29
|
-
|
|
30
|
-
`Function`
|
|
31
|
-
|
|
32
|
-
##### Returns
|
|
33
|
-
|
|
34
|
-
`void`
|
|
35
|
-
|
|
36
|
-
#### Example
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
import { onKeyboardHeightChange } from '@doubao-apps/framework/api';
|
|
40
|
-
|
|
41
|
-
const unsubscribe = onKeyboardHeightChange(({ height }) => {
|
|
42
|
-
console.log('Keyboard height change event:', { height });
|
|
43
|
-
});
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
<a id="hidekeyboard"></a>
|
|
47
|
-
### hideKeyboard()
|
|
48
|
-
|
|
49
|
-
> **hideKeyboard**(`params`?): `Promise`\<`object`\>
|
|
50
|
-
|
|
51
|
-
收起键盘。
|
|
52
|
-
|
|
53
|
-
#### Parameters
|
|
54
|
-
|
|
55
|
-
• **params?**
|
|
56
|
-
|
|
57
|
-
#### Returns
|
|
58
|
-
|
|
59
|
-
`Promise`\<`object`\>
|
|
60
|
-
|
|
61
|
-
<a id="getselectedtextrange"></a>
|
|
62
|
-
### getSelectedTextRange()
|
|
63
|
-
|
|
64
|
-
> **getSelectedTextRange**(`params`?): `Promise`\<[`GetSelectedTextRangeResult`](#getselectedtextrangeresult)\>
|
|
65
|
-
|
|
66
|
-
获取当前输入框的选区范围。
|
|
67
|
-
|
|
68
|
-
#### Parameters
|
|
69
|
-
|
|
70
|
-
• **params?**
|
|
71
|
-
|
|
72
|
-
#### Returns
|
|
73
|
-
|
|
74
|
-
`Promise`\<[`GetSelectedTextRangeResult`](#getselectedtextrangeresult)\>
|
|
75
|
-
|
|
76
|
-
## 相关类型
|
|
77
|
-
|
|
78
|
-
<a id="getselectedtextrangeresult"></a>
|
|
79
|
-
### GetSelectedTextRangeResult
|
|
80
|
-
|
|
81
|
-
获取输入框选区范围的返回结果。
|
|
82
|
-
|
|
83
|
-
#### Properties
|
|
84
|
-
|
|
85
|
-
##### end
|
|
86
|
-
|
|
87
|
-
> **end**: `number`
|
|
88
|
-
|
|
89
|
-
选区结束位置。
|
|
90
|
-
|
|
91
|
-
##### start
|
|
92
|
-
|
|
93
|
-
> **start**: `number`
|
|
94
|
-
|
|
95
|
-
选区起始位置。
|