@doubao-apps/ai 0.0.35-rc.0 → 0.0.35

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.
Files changed (118) hide show
  1. package/README.md +2 -0
  2. package/dist/cli.js +1 -1
  3. package/dist/index.d.ts +4 -1
  4. package/dist/index.js +33 -1
  5. package/dist/{manifest.json → public/manifest.json} +7 -2
  6. package/dist/{skills → public/skills}/doubao-apps-dev/SKILL.md +11 -10
  7. package/dist/{skills → public/skills}/doubao-apps-dev/references/examples/common-patterns.md +2 -2
  8. package/dist/{skills/doubao-apps-dev/references/examples/component-basics.md → public/skills/doubao-apps-dev/references/examples/page-widget-basics.md} +1 -1
  9. package/dist/{skills/doubao-apps-dev/references/examples/component-recipes.md → public/skills/doubao-apps-dev/references/examples/page-widget-recipes.md} +2 -3
  10. package/dist/{skills → public/skills}/doubao-apps-dev/references/guides/component-development.md +2 -2
  11. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/01-/345/237/272/347/241/200.md +270 -0
  12. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/02-/347/263/273/347/273/237.md +438 -0
  13. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/03-/345/256/232/344/275/215.md +32 -55
  14. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/04-/345/255/230/345/202/250.md +18 -0
  15. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/05-/350/267/257/347/224/261.md +8 -0
  16. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/06-/344/272/244/344/272/222.md +49 -3
  17. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/07-/350/276/223/345/205/245.md +47 -0
  18. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/08-/347/275/221/347/273/234.md +238 -0
  19. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/09-/345/252/222/344/275/223.md +81 -1
  20. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/10-/344/270/232/345/212/241/350/203/275/345/212/233.md +143 -13
  21. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/11-/347/231/273/345/275/225.md +11 -0
  22. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/14-/350/223/235/347/211/231.md +212 -1
  23. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/15-wi-fi.md +104 -27
  24. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/16-/345/212/240/351/200/237/345/272/246/350/256/241.md +122 -0
  25. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/17-ibeacon.md +38 -0
  26. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/18-/347/275/227/347/233/230.md +45 -22
  27. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/19-/350/256/276/345/244/207/346/226/271/345/220/221.md +120 -0
  28. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/20-/351/231/200/350/236/272/344/273/252.md +122 -0
  29. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/21-/350/256/276/345/244/207-/347/275/221/347/273/234.md +153 -0
  30. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/23-/346/227/240/351/232/234/347/242/215.md +11 -0
  31. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/24-/345/237/272/347/241/200/344/277/241/346/201/257.md +19 -0
  32. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/25-/347/224/265/346/261/240.md +92 -0
  33. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/26-/346/227/245/345/216/206.md +11 -0
  34. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/27-/345/211/252/350/264/264/346/235/277.md +11 -0
  35. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/28-/350/201/224/347/263/273/344/272/272.md +13 -0
  36. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/29-/345/212/240/345/257/206.md +11 -0
  37. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/31-/346/211/253/347/240/201.md +51 -0
  38. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/32-/345/261/217/345/271/225.md +60 -20
  39. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/33-/351/234/207/345/212/250.md +11 -0
  40. package/dist/public/skills/doubao-apps-dev/references/reference/open-api/34-/346/226/207/344/273/266/347/263/273/347/273/237.md +334 -0
  41. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/README.md +4 -4
  42. package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api.md +14 -12
  43. package/dist/public/skills/doubao-components-api/SKILL.md +50 -0
  44. package/dist/public/skills/doubao-components-api/references/reference/form.md +146 -0
  45. package/dist/public/skills/doubao-components-api/references/reference/interactive.md +120 -0
  46. package/dist/public/skills/doubao-components-api/references/reference/layout-overlay.md +131 -0
  47. package/dist/public/skills/doubao-components-api/references/reference/layout-scroll.md +149 -0
  48. package/dist/public/skills/doubao-components-api/references/reference/map-canvas.md +107 -0
  49. package/dist/public/skills/doubao-components-api/references/reference/media.md +195 -0
  50. package/dist/{skills → public/skills}/douyin-to-doubao/SKILL.md +1 -1
  51. package/dist/{skills → public/skills}/h5-to-doubao/SKILL.md +2 -2
  52. package/dist/{skills → public/skills}/quality-gate/scripts/collect-doubao-page-data.js +3 -3
  53. package/dist/{skills → public/skills}/uniapp-to-doubao/SKILL.md +1 -1
  54. package/dist/{skills → public/skills}/weixin-to-doubao/SKILL.md +1 -1
  55. package/package.json +5 -5
  56. package/dist/733.js +0 -33
  57. package/dist/skills/doubao-apps-dev/references/reference/components-quick-ref.md +0 -114
  58. package/dist/skills/doubao-apps-dev/references/reference/open-api/01-/345/237/272/347/241/200.md +0 -136
  59. package/dist/skills/doubao-apps-dev/references/reference/open-api/02-/347/263/273/347/273/237.md +0 -257
  60. package/dist/skills/doubao-apps-dev/references/reference/open-api/08-/347/275/221/347/273/234.md +0 -124
  61. package/dist/skills/doubao-apps-dev/references/reference/open-api/16-/345/212/240/351/200/237/345/272/246/350/256/241.md +0 -87
  62. package/dist/skills/doubao-apps-dev/references/reference/open-api/19-/350/256/276/345/244/207/346/226/271/345/220/221.md +0 -86
  63. package/dist/skills/doubao-apps-dev/references/reference/open-api/20-/351/231/200/350/236/272/344/273/252.md +0 -87
  64. package/dist/skills/doubao-apps-dev/references/reference/open-api/21-/350/256/276/345/244/207-/347/275/221/347/273/234.md +0 -102
  65. package/dist/skills/doubao-apps-dev/references/reference/open-api/25-/347/224/265/346/261/240.md +0 -63
  66. package/dist/skills/doubao-apps-dev/references/reference/open-api/34-/346/226/207/344/273/266/347/263/273/347/273/237.md +0 -73
  67. /package/dist/{skills → public/skills}/doubao-apps-dev/references/examples/open-api-recipes.md +0 -0
  68. /package/dist/{skills → public/skills}/doubao-apps-dev/references/guides/best-practices.md +0 -0
  69. /package/dist/{skills → public/skills}/doubao-apps-dev/references/guides/expired-widget.md +0 -0
  70. /package/dist/{skills → public/skills}/doubao-apps-dev/references/guides/mcp-ui.md +0 -0
  71. /package/dist/{skills → public/skills}/doubao-apps-dev/references/guides/performance-optimization.md +0 -0
  72. /package/dist/{skills → public/skills}/doubao-apps-dev/references/guides/troubleshooting.md +0 -0
  73. /package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/framework-api-quick-ref.md +0 -0
  74. /package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/12-/346/224/257/344/273/230.md" +0 -0
  75. /package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/13-/346/225/260/346/215/256/345/210/206/346/236/220.md" +0 -0
  76. /package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/22-/347/237/255/344/277/241.md" +0 -0
  77. /package/dist/{skills → public/skills}/doubao-apps-dev/references/reference/open-api/30-/347/224/265/350/257/235.md" +0 -0
  78. /package/dist/{skills → public/skills}/doubao-apps-dev/references/rules/dos-and-donts.md +0 -0
  79. /package/dist/{skills → public/skills}/douyin-to-doubao/assets/migration-checklist-template.md +0 -0
  80. /package/dist/{skills → public/skills}/douyin-to-doubao/references/mapping/component-mapping.md +0 -0
  81. /package/dist/{skills → public/skills}/douyin-to-doubao/references/mapping/core-api-mapping.md +0 -0
  82. /package/dist/{skills → public/skills}/douyin-to-doubao/references/mapping/event-mapping.md +0 -0
  83. /package/dist/{skills → public/skills}/douyin-to-doubao/references/mapping/lifecycle-mapping.md +0 -0
  84. /package/dist/{skills → public/skills}/douyin-to-doubao/references/mapping/style-mapping.md +0 -0
  85. /package/dist/{skills → public/skills}/douyin-to-doubao/references/source-framework/api-reference.md +0 -0
  86. /package/dist/{skills → public/skills}/douyin-to-doubao/references/source-framework/components.md +0 -0
  87. /package/dist/{skills → public/skills}/h5-to-doubao/references/common/troubleshooting.md +0 -0
  88. /package/dist/{skills → public/skills}/h5-to-doubao/references/source-framework/react-to-doubao.md +0 -0
  89. /package/dist/{skills → public/skills}/h5-to-doubao/references/source-framework/vue-to-doubao.md +0 -0
  90. /package/dist/{skills → public/skills}/quality-gate/SKILL.md +0 -0
  91. /package/dist/{skills → public/skills}/quality-gate/gates/bronze.md +0 -0
  92. /package/dist/{skills → public/skills}/quality-gate/gates/gold-phase1.md +0 -0
  93. /package/dist/{skills → public/skills}/quality-gate/gates/gold-phase2.md +0 -0
  94. /package/dist/{skills → public/skills}/quality-gate/gates/gold-phase3.md +0 -0
  95. /package/dist/{skills → public/skills}/quality-gate/gates/silver.md +0 -0
  96. /package/dist/{skills → public/skills}/quality-gate/runtime-fix.md +0 -0
  97. /package/dist/{skills → public/skills}/quality-gate/screenshots/doubao-faq.md +0 -0
  98. /package/dist/{skills → public/skills}/quality-gate/screenshots/doubao.md +0 -0
  99. /package/dist/{skills → public/skills}/quality-gate/screenshots/h5-react.md +0 -0
  100. /package/dist/{skills → public/skills}/quality-gate/screenshots/weixin.md +0 -0
  101. /package/dist/{skills → public/skills}/quality-gate/scripts/phase2-normalized-compare.py +0 -0
  102. /package/dist/{skills → public/skills}/quality-gate/scripts/run-doubao-screenshots.sh +0 -0
  103. /package/dist/{skills → public/skills}/uniapp-to-doubao/assets/migration-checklist-template.md +0 -0
  104. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/mapping/component-mapping.md +0 -0
  105. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/mapping/core-api-mapping.md +0 -0
  106. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/mapping/event-mapping.md +0 -0
  107. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/mapping/lifecycle-mapping.md +0 -0
  108. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/mapping/style-mapping.md +0 -0
  109. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/source-framework/api-reference.md +0 -0
  110. /package/dist/{skills → public/skills}/uniapp-to-doubao/references/source-framework/components.md +0 -0
  111. /package/dist/{skills → public/skills}/weixin-to-doubao/assets/migration-checklist-template.md +0 -0
  112. /package/dist/{skills → public/skills}/weixin-to-doubao/references/mapping/component-mapping.md +0 -0
  113. /package/dist/{skills → public/skills}/weixin-to-doubao/references/mapping/core-api-mapping.md +0 -0
  114. /package/dist/{skills → public/skills}/weixin-to-doubao/references/mapping/event-mapping.md +0 -0
  115. /package/dist/{skills → public/skills}/weixin-to-doubao/references/mapping/lifecycle-mapping.md +0 -0
  116. /package/dist/{skills → public/skills}/weixin-to-doubao/references/mapping/style-mapping.md +0 -0
  117. /package/dist/{skills → public/skills}/weixin-to-doubao/references/source-framework/api-reference.md +0 -0
  118. /package/dist/{skills → public/skills}/weixin-to-doubao/references/source-framework/components.md +0 -0
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Doubao Apps SDK AI 工具,为 AI coding agents 提供 skills 管理。
4
4
 
5
+ 该包随发布产物携带 `packages/ai` 编译出的 public skill profile;安装命令不会在本地再做文档 rewrite。
6
+
5
7
  ## 安装
6
8
 
7
9
  ```bash
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
- import"node:module";import{__webpack_require__ as o}from"./rslib-runtime.js";import"./733.js";(0,o("../../ai/dist/cli.js").runCli)({commandName:"doubao-cli",preferBundledAssets:!0});
1
+ import"node:module";import{runCli as o}from"./index.js";o({commandName:"doubao-cli"});
2
2
  //# sourceMappingURL=cli.js.map
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  export declare function runCli(options?: RunCliOptions): void;
2
2
 
3
- declare interface RunCliOptions {
3
+ export declare interface RunCliOptions {
4
4
  commandName?: string;
5
+ profile?: SkillProfile;
5
6
  }
6
7
 
8
+ declare type SkillProfile = 'internal' | 'public';
9
+
7
10
  export { }
package/dist/index.js CHANGED
@@ -1 +1,33 @@
1
- import"node:module";import{__webpack_require__ as _}from"./rslib-runtime.js";import"./733.js";var i=_("../../ai/dist/cli.js").runCli;export{i as runCli};
1
+ import{createRequire as l}from"node:module";import{__webpack_require__ as o}from"./rslib-runtime.js";import{fileURLToPath as e}from"node:url";import{dirname as s}from"node:path";let t=l(import.meta.url);o.add({"node:fs"(l){l.exports=t("node:fs")},"node:path"(l){l.exports=t("node:path")},"../../ai/dist/cli.js"(l,o,t){var i=s(e(import.meta.url));let a=t("node:fs"),n=t("node:path"),r=new Set(["internal","public"]),c={amp:{projectPath:".agents/skills/",globalPath:"~/.config/agents/skills/"},"kimi-cli":{projectPath:".agents/skills/",globalPath:"~/.config/agents/skills/"},replit:{projectPath:".agents/skills/",globalPath:"~/.config/agents/skills/"},universal:{projectPath:".agents/skills/",globalPath:"~/.config/agents/skills/"},antigravity:{projectPath:".agent/skills/",globalPath:"~/.gemini/antigravity/skills/"},augment:{projectPath:".augment/skills/",globalPath:"~/.augment/skills/"},claude:{projectPath:".claude/skills/",globalPath:"~/.claude/skills/"},"claude-code":{projectPath:".claude/skills/",globalPath:"~/.claude/skills/"},openclaw:{projectPath:"skills/",globalPath:"~/.openclaw/skills/"},cline:{projectPath:".agents/skills/",globalPath:"~/.agents/skills/"},codebuddy:{projectPath:".codebuddy/skills/",globalPath:"~/.codebuddy/skills/"},codex:{projectPath:".agents/skills/",globalPath:"~/.codex/skills/"},"command-code":{projectPath:".commandcode/skills/",globalPath:"~/.commandcode/skills/"},continue:{projectPath:".continue/skills/",globalPath:"~/.continue/skills/"},cortex:{projectPath:".cortex/skills/",globalPath:"~/.snowflake/cortex/skills/"},crush:{projectPath:".crush/skills/",globalPath:"~/.config/crush/skills/"},cursor:{projectPath:".agents/skills/",globalPath:"~/.cursor/skills/"},droid:{projectPath:".factory/skills/",globalPath:"~/.factory/skills/"},"gemini-cli":{projectPath:".agents/skills/",globalPath:"~/.gemini/skills/"},"github-copilot":{projectPath:".agents/skills/",globalPath:"~/.copilot/skills/"},goose:{projectPath:".goose/skills/",globalPath:"~/.config/goose/skills/"},junie:{projectPath:".junie/skills/",globalPath:"~/.junie/skills/"},"iflow-cli":{projectPath:".iflow/skills/",globalPath:"~/.iflow/skills/"},kilo:{projectPath:".kilocode/skills/",globalPath:"~/.kilocode/skills/"},"kiro-cli":{projectPath:".kiro/skills/",globalPath:"~/.kiro/skills/"},kode:{projectPath:".kode/skills/",globalPath:"~/.kode/skills/"},mcpjam:{projectPath:".mcpjam/skills/",globalPath:"~/.mcpjam/skills/"},"mistral-vibe":{projectPath:".vibe/skills/",globalPath:"~/.vibe/skills/"},mux:{projectPath:".mux/skills/",globalPath:"~/.mux/skills/"},opencode:{projectPath:".agents/skills/",globalPath:"~/.config/opencode/skills/"},openhands:{projectPath:".openhands/skills/",globalPath:"~/.openhands/skills/"},pi:{projectPath:".pi/skills/",globalPath:"~/.pi/agent/skills/"},qoder:{projectPath:".qoder/skills/",globalPath:"~/.qoder/skills/"},"qwen-code":{projectPath:".qwen/skills/",globalPath:"~/.qwen/skills/"},roo:{projectPath:".roo/skills/",globalPath:"~/.roo/skills/"},trae:{projectPath:".trae/skills/",globalPath:"~/.trae/skills/"},"trae-cn":{projectPath:".trae/skills/",globalPath:"~/.trae-cn/skills/"},windsurf:{projectPath:".windsurf/skills/",globalPath:"~/.codeium/windsurf/skills/"},zencoder:{projectPath:".zencoder/skills/",globalPath:"~/.zencoder/skills/"},neovate:{projectPath:".neovate/skills/",globalPath:"~/.neovate/skills/"},pochi:{projectPath:".pochi/skills/",globalPath:"~/.pochi/skills/"},adal:{projectPath:".adal/skills/",globalPath:"~/.adal/skills/"}};function d(l){return n.join(n.join(i,"..","dist"),l,"skills")}function k(l){return l.startsWith("~/")?n.join(process.env.HOME||process.env.USERPROFILE||"",l.slice(2)):l}function g(l,o){a.copyFileSync(l,o),a.chmodSync(o,a.statSync(l).mode)}function p(l){let o={agent:null,global:!1};for(let e=0;e<l.length;e++)("--agent"===l[e]||"-a"===l[e])&&l[e+1]?o.agent=l[++e]:("--global"===l[e]||"-g"===l[e])&&(o.global=!0);return o}function h(l,o,e,s){if(!c[o])throw Error(`Unknown agent: "${o}". Supported agents: ${Object.keys(c).join(", ")}`);let t=n.join(d(s),l);if(!a.existsSync(t)){let o=d(s),e=a.existsSync(o)?a.readdirSync(o).join(", "):"(none)";throw Error(`Skill "${l}" not found in profile "${s}". Available skills: ${e}`)}let i=c[o],r=e?i.globalPath:i.projectPath,p=e?n.join(k(r),l):n.join(process.cwd(),r,l);for(let e of(console.log(`Installing skill "${l}" for ${o}...`),console.log(` Target: ${p}`),a.existsSync(p)&&a.rmSync(p,{recursive:!0,force:!0}),a.mkdirSync(p,{recursive:!0}),a.readdirSync(t,{withFileTypes:!0}))){let l=n.join(t,e.name),o=n.join(p,e.name);e.isDirectory()?(!function l(o,e){if(!a.existsSync(o))throw Error(`Source directory not found: ${o}`);for(let s of(a.mkdirSync(e,{recursive:!0}),a.readdirSync(o,{withFileTypes:!0}))){let t=n.join(o,s.name),i=n.join(e,s.name);s.isDirectory()?l(t,i):g(t,i)}}(l,o),console.log(` ✓ ${e.name}/`)):(g(l,o),console.log(` ✓ ${e.name}`))}console.log(" ✓ Done")}l.exports={runCli:function(l={}){let o=l.commandName||"doubao-ai",e=l.profile||"internal";if(!r.has(e))throw Error(`Unknown skill profile: "${e}". Supported profiles: ${[...r].join(", ")}`);let[s,...t]=process.argv.slice(2);if(!s||"--help"===s||"-h"===s)return void console.log(`
2
+ ${o} - Doubao Apps SDK AI 工具
3
+
4
+ 用法:
5
+ ${o} skills add <skill1> [skill2...] --agent <agent> 安装一个或多个 skill 到指定 Agent
6
+ ${o} skills list 查看可用 skills
7
+ ${o} skills update [--global] 更新所有已安装的 skills
8
+
9
+ 选项:
10
+ --agent <agent> 指定 AI Agent(如 claude-code、opencode、cursor)
11
+ --global, -g 全局安装(用户目录而非项目目录)
12
+
13
+ 示例:
14
+ # 安装一个或多个 skill 到 Claude Code
15
+ ${o} skills add doubao-apps-dev quality-gate --agent claude-code
16
+
17
+ # 安装 skill 到 opencode
18
+ ${o} skills add doubao-apps-dev --agent opencode
19
+
20
+ # 全局安装 skill
21
+ ${o} skills add doubao-apps-dev --agent claude-code --global
22
+
23
+ # 查看可用 skills
24
+ ${o} skills list
25
+
26
+ # 更新所有已安装的 skills
27
+ ${o} skills update
28
+
29
+ 支持的 Agents:
30
+ ${Object.keys(c).join(", ")}
31
+ `);if("skills"===s){let[l,...s]=t;if("list"===l)return void function(l){let o=d(l);if(!a.existsSync(o))return console.log(`No skills available for profile "${l}". Run build first.`);let e=a.readdirSync(o,{withFileTypes:!0}).filter(l=>l.isDirectory()).map(l=>l.name);if(0===e.length)return console.log("No skills available.");for(let l of(console.log("Available skills:"),e)){let e=n.join(o,l,"SKILL.md");console.log(` - ${l}${a.existsSync(e)?"":" (not built)"}`)}}(e);if("add"===l){let{agent:l,global:t}=p(s),i=[];for(let l=0;l<s.length;l++){let o=s[l];"--agent"===o||"-a"===o?l++:"--global"!==o&&"-g"!==o&&i.push(o)}for(let s of(0===i.length&&(console.error(`Usage: ${o} skills add <skill-name>... --agent <agent>`),process.exit(1)),l||(console.error(`--agent is required. Example: ${o} skills add doubao-apps-dev --agent claude-code`),process.exit(1)),i))h(s,l,t,e);return}if("update"===l){let{global:l}=p(s);!function(l,o){let e=d(o);if(!a.existsSync(e))return console.log(`No skills to update for profile "${o}". Run build first.`);let s=a.readdirSync(e,{withFileTypes:!0}).filter(l=>l.isDirectory()).map(l=>l.name),t=0;for(let[e,i]of Object.entries(c)){let r=l?i.globalPath:i.projectPath,c=l?k(r):n.join(process.cwd(),r);for(let i of s)a.existsSync(n.join(c,i))&&(h(i,e,l,o),t++)}0===t?console.log("No installed skills found to update."):console.log(`
32
+ Updated ${t} skill installation(s).`)}(l,e);return}console.error(`Unknown skills subcommand: "${l}". Use: add, list, update`),process.exit(1)}console.error(`Unknown command: "${s}". Run \`${o} --help\` for usage.`),process.exit(1)}}}});let i=o("../../ai/dist/cli.js");function a(l={}){return(0,i.runCli)({...l,profile:"public"})}export{a as runCli};
33
+ //# sourceMappingURL=index.js.map
@@ -1,13 +1,18 @@
1
1
  {
2
2
  "packageName": "@doubao-apps/ai",
3
- "version": "0.0.35-rc.0",
4
- "generatedAt": "2026-06-11T11:28:29.397Z",
3
+ "version": "0.0.35",
4
+ "generatedAt": "2026-06-17T07:08:33.375Z",
5
5
  "skills": [
6
6
  {
7
7
  "name": "doubao-apps-dev",
8
8
  "entry": "skills/doubao-apps-dev/SKILL.md",
9
9
  "hasAiDir": true
10
10
  },
11
+ {
12
+ "name": "doubao-components-api",
13
+ "entry": "skills/doubao-components-api/SKILL.md",
14
+ "hasAiDir": true
15
+ },
11
16
  {
12
17
  "name": "douyin-to-doubao",
13
18
  "entry": "skills/douyin-to-doubao/SKILL.md",
@@ -34,14 +34,11 @@ Doubao Apps SDK 是豆包应用开发框架,基于 React Lynx 框架提供完
34
34
 
35
35
  ### 3. 创建项目
36
36
 
37
-
38
- **外网创建:**
39
-
40
37
  ```bash
41
38
  # 使用 create 创建一个名为 my-doubao-app 的 starter 工程
42
- npm create @doubao-apps my-doubao-app -- --template starter -y
39
+ pnpm create @doubao-apps my-doubao-app --template starter -y
43
40
  # 如果预期就地创建工程,使用 . 作为目录名
44
- # npm create @doubao-apps . -- --template starter -y
41
+ # pnpm create @doubao-apps . --template starter -y
45
42
 
46
43
  # 进入项目目录 (如果就地创建工程,则不需要执行 cd)
47
44
  cd my-doubao-app
@@ -50,6 +47,7 @@ cd my-doubao-app
50
47
  pnpm install
51
48
  ```
52
49
 
50
+
53
51
  ### 4. 项目结构
54
52
 
55
53
  ```
@@ -82,7 +80,7 @@ my-doubao-app/
82
80
  - **TypeScript 类型**:所有 Page / Widget 默认使用 `getViewData<T>()`,为 viewData、props 和 state 提供明确类型;不要使用裸 `getViewData()`、`getViewData<any>()`、`: any`
83
81
  - **Open API 导入**:`request`、`getLocation`、`showToast`、`navigateTo` 等端能力从 `@doubao-apps/framework/api` 导入;参数和返回值以 [Framework API 快速参考](references/reference/framework-api-quick-ref.md) / [Open API 目录](references/reference/open-api/README.md) 为准
84
82
  - **异步状态**:Open API 和异步请求必须在 `useEffect`、生命周期钩子或事件处理函数中调用,并包含 loading、error、success 状态
85
- - **内置组件**:`button`、`switch`、`slider` 等直接使用小写标签,不要从组件包 import;`button` 点击使用 `onClick`,不要使用 `onTap` / `bindtap`;事件和 props 先查 [组件库快速参考](references/reference/components-quick-ref.md)
83
+ - **内置组件**:`button`、`switch`、`slider` 等直接使用小写标签,不要从组件包 import;`button` 点击使用 `onClick`,不要使用 `onTap` / `bindtap`;`switch.onChange` 直接接收 `boolean`,`slider.onChange` 直接接收 `number`,`slider` 不支持 `step` / `defaultValue`;事件和 props 先查 `doubao-components-api` skill
86
84
  - **Framework Hooks**:`useState`、`useEffect` 等 Hooks 必须从 `@doubao-apps/framework` 导入,不要从 `react` 导入
87
85
  - **错误处理**:处理边界情况和错误状态
88
86
 
@@ -92,6 +90,7 @@ my-doubao-app/
92
90
  - **不在 render 中请求**:不要在 `render()` 中直接调用 `request`、`getLocation`、`showToast`、`navigateTo`、`fetch` 等异步或系统 API
93
91
  - **不过度嵌套**:保持组件层级扁平化
94
92
  - **不忽略类型**:避免使用 `any` 类型
93
+ - **先查文档再使用 API**:使用任何 API 前先查文档,确认参数、返回值、调用时机和使用限制
95
94
 
96
95
  ### Page / Widget 推荐入口模板
97
96
 
@@ -141,6 +140,8 @@ export default defineAppConfig({
141
140
  端能力参数/返回值和内置组件 props 的高风险细节维护在 reference 子文档中;生成前优先查对应小节,不要在主流程里临时扩展字段。
142
141
  如果需求里混入 `fetch`、`window`、`document`、`localStorage`、`style={{}}` 等 Web/H5 写法,先按文档导航里的“Web 写法纠偏”确认替代写法,再实现。
143
142
 
143
+ 查看 reference 时,以当前 `SKILL.md` 所在目录为基准解析相对链接;组件事件细节见 `doubao-components-api` skill。
144
+
144
145
  ### ⚠️ 文件命名约束
145
146
 
146
147
  页面/卡片目录下的入口文件必须命名为 **`index.tsx`**,样式文件为 **`index.scss`**。
@@ -182,7 +183,7 @@ export default defineAppConfig({
182
183
  });
183
184
  ```
184
185
 
185
- 详细 Page / Widget 生命周期、布局、metadata、boxType 和 viewData 示例见 [组件开发指南](references/guides/component-development.md),基础示例对比见 [component-basics.md](references/examples/component-basics.md)。
186
+ 详细 Page / Widget 生命周期、布局、metadata、boxType 和 viewData 示例见 [组件开发指南](references/guides/component-development.md),基础示例对比见 [page-widget-basics.md](references/examples/page-widget-basics.md)。
186
187
 
187
188
  ---
188
189
 
@@ -197,10 +198,10 @@ export default defineAppConfig({
197
198
  | Web 写法纠偏 | [dos-and-donts.md](references/rules/dos-and-donts.md)、[common-patterns.md](references/examples/common-patterns.md)、[open-api-recipes.md](references/examples/open-api-recipes.md) | 需求出现 `fetch`、`window`、`document`、`localStorage`、内联 `style` 等 Web/H5 写法时 |
198
199
  | API 集成和状态 | [common-patterns.md](references/examples/common-patterns.md) | 异步调用结构、错误处理、状态管理、导航 |
199
200
  | Open API 使用配方 | [open-api-recipes.md](references/examples/open-api-recipes.md) | 参考 `getLocation`、Storage 等端能力和 Page / Widget 的组合写法 |
200
- | 内置组件使用配方 | [component-recipes.md](references/examples/component-recipes.md) | 参考 `button`、`switch`、`slider` 等组件和状态的组合写法 |
201
+ | Page/Widget 组件配方 | [page-widget-recipes.md](references/examples/page-widget-recipes.md) | 参考 `button`、`switch`、`slider` 等组件在 Page/Widget 中的状态组合写法 |
201
202
  | Framework API | [framework-api-quick-ref.md](references/reference/framework-api-quick-ref.md) | 查 `definePage`、`defineWidget`、Hooks、viewData、常用端能力签名 |
202
203
  | Open API 详情 | [open-api/README.md](references/reference/open-api/README.md) | 查系统能力 API 的完整参数和返回值 |
203
- | 内置组件 | [components-quick-ref.md](references/reference/components-quick-ref.md) | 使用 `button`、`switch`、`slider`、`swiper` 等全局小写组件 |
204
+ | 内置组件 API | `doubao-components-api` skill | 查询 `button`、`switch`、`slider`、`swiper` 等所有内置组件的完整 props 和事件 |
204
205
  | 最佳实践 | [best-practices.md](references/guides/best-practices.md) | 代码组织、错误处理、可维护性 |
205
206
  | 性能优化 | [performance-optimization.md](references/guides/performance-optimization.md) | 渲染、列表、资源和内存优化 |
206
207
  | 问题排查 | [troubleshooting.md](references/guides/troubleshooting.md) | 编译、运行、样式、API 调用异常 |
@@ -211,4 +212,4 @@ export default defineAppConfig({
211
212
  - **端能力 API**:`@doubao-apps/framework/api` - 网络、存储、位置、导航、Toast 等系统能力
212
213
  - **Kit**:`@doubao-apps/kit` - `defineAppConfig` 和构建配置能力
213
214
 
214
- Lynx 组件库完整参考:<https://lynxjs.org/zh/>
215
+ Lynx 组件库完整参考:<https://lynxjs.org/llms.txt>
@@ -595,9 +595,9 @@ export default definePage({
595
595
 
596
596
  ## 📚 延伸阅读
597
597
 
598
- - **组件基础** → [./component-basics.md](./component-basics.md)
598
+ - **Page/Widget 基础** → [./page-widget-basics.md](./page-widget-basics.md)
599
599
  - **组件开发完整指南** → [../guides/component-development.md](../guides/component-development.md)
600
600
  - **Open API 使用配方** → [./open-api-recipes.md](./open-api-recipes.md)
601
- - **内置组件使用配方** → [./component-recipes.md](./component-recipes.md)
601
+ - **Page/Widget 组件配方** → [./page-widget-recipes.md](./page-widget-recipes.md)
602
602
  - **API 参考** → [../reference/framework-api-quick-ref.md](../reference/framework-api-quick-ref.md)
603
603
  - **最佳实践** → [../guides/best-practices.md](../guides/best-practices.md)
@@ -543,5 +543,5 @@ export default defineWidget({
543
543
  - **组件开发完整指南** → [../guides/component-development.md](../guides/component-development.md)
544
544
  - **常用开发模式** → [./common-patterns.md](./common-patterns.md)
545
545
  - **Open API 使用配方** → [./open-api-recipes.md](./open-api-recipes.md)
546
- - **内置组件使用配方** → [./component-recipes.md](./component-recipes.md)
546
+ - **Page/Widget 组件配方** → [./page-widget-recipes.md](./page-widget-recipes.md)
547
547
  - **API 参考** → [../reference/framework-api-quick-ref.md](../reference/framework-api-quick-ref.md)
@@ -1,7 +1,6 @@
1
- # 内置组件使用配方
1
+ # Page/Widget 组件配方
2
2
 
3
- 本文件放内置组件和 Page / Widget 状态组合的示例。组件的完整 props 和事件签名以
4
- [组件库快速参考](../reference/components-quick-ref.md) 为准;这里重点展示受控状态、事件处理和保存态如何组合。
3
+ 本文件放内置组件和 Page / Widget 状态组合的示例。组件的完整 props 和事件签名见 `doubao-components-api` skill;这里重点展示受控状态、事件处理和保存态如何组合。
5
4
 
6
5
  ---
7
6
 
@@ -903,12 +903,12 @@ useEffect(() => {
903
903
 
904
904
  ## 📚 延伸阅读
905
905
 
906
- - **组件示例** → [../examples/component-basics.md](../examples/component-basics.md)
906
+ - **Page/Widget 基础示例** → [../examples/page-widget-basics.md](../examples/page-widget-basics.md)
907
907
  - **常用模式** → [../examples/common-patterns.md](../examples/common-patterns.md)
908
908
  - **MCP UI 约定入口** → [mcp-ui.md](./mcp-ui.md)
909
909
  - **失效卡片** → [expired-widget.md](./expired-widget.md)
910
910
  - **Open API 使用配方** → [../examples/open-api-recipes.md](../examples/open-api-recipes.md)
911
- - **内置组件使用配方** → [../examples/component-recipes.md](../examples/component-recipes.md)
911
+ - **Page/Widget 组件配方** → [../examples/page-widget-recipes.md](../examples/page-widget-recipes.md)
912
912
  - **最佳实践** → [best-practices.md](./best-practices.md)
913
913
  - **性能优化** → [performance-optimization.md](./performance-optimization.md)
914
914
  - **故障排查** → [troubleshooting.md](./troubleshooting.md)
@@ -0,0 +1,270 @@
1
+ # Open API: 基础
2
+
3
+ 账号、授权、宿主基础信息、窗口信息和能力可用性。
4
+
5
+ [返回目录](./README.md) | [返回速查](../open-api.md)
6
+
7
+ ## 速查
8
+
9
+ | API | 说明 |
10
+ | --- | --- |
11
+ | [getAccountInfo](#getaccountinfo) | 异步获取账号信息。 |
12
+ | [getAccountInfoSync](#getaccountinfosync) | 同步获取账号信息。<br><br>同步 API。 |
13
+ | [authorize](#authorize) | 初始化授权。 |
14
+ | [canIUse](#caniuse) | 检测当前宿主是否支持指定 API 或能力。 |
15
+ | [getPackageInfo](#getpackageinfo) | 获取当前 package 信息。 |
16
+ | [getPackageInfoSync](#getpackageinfosync) | 同步获取当前 package 信息。<br><br>同步 API。 |
17
+
18
+ ## API 详情
19
+
20
+ <a id="getaccountinfo"></a>
21
+ ### getAccountInfo()
22
+
23
+ 异步获取账号信息。
24
+
25
+ ## 代码示例
26
+
27
+ ```typescript
28
+ import { getAccountInfo } from '@doubao-apps/framework/api';
29
+
30
+ const result = await getAccountInfo();
31
+ console.log(result.miniProgram.appId);
32
+ ```
33
+
34
+ ## 入参
35
+
36
+ 无入参。
37
+
38
+ ## 返回值
39
+
40
+ 返回 `Promise<GetAccountInfoResult>`。
41
+
42
+ |字段名|类型|说明|
43
+ |---|---|---|
44
+ |miniProgram|`DoubaoAppAccountInfo`|豆包 App账号信息|
45
+ |miniProgram.appId|`string`|豆包 App appId|
46
+ |miniProgram.envVersion|`"develop" | "trial" | "release"`|豆包 App 运行环境。<br><br>- develop: 开发版<br>- trial: 体验版<br>- release: 正式版|
47
+ |miniProgram.version|`string`|线上豆包 App 版本号。|
48
+ |plugin|`PluginAccountInfo`|插件账号信息(仅在插件中调用时包含)|
49
+ |plugin.appId|`string`|插件 appId|
50
+ |plugin.version|`string`|插件版本号,'a.b.c' 形式|
51
+
52
+ <a id="getaccountinfosync"></a>
53
+ ### getAccountInfoSync()
54
+
55
+ 同步获取账号信息。
56
+
57
+ ## 代码示例
58
+
59
+ ```typescript
60
+ import { getAccountInfoSync } from '@doubao-apps/framework/api';
61
+
62
+ const result = getAccountInfoSync();
63
+ console.log(result.miniProgram.appId, result.miniProgram.envVersion, result.miniProgram.version);
64
+ ```
65
+
66
+ ## 入参
67
+
68
+ 无入参。
69
+
70
+ ## 返回值
71
+
72
+ 返回 `GetAccountInfoResult`。
73
+
74
+ |字段名|类型|说明|
75
+ |---|---|---|
76
+ |miniProgram|`DoubaoAppAccountInfo`|豆包 App账号信息|
77
+ |miniProgram.appId|`string`|豆包 App appId|
78
+ |miniProgram.envVersion|`"develop" | "trial" | "release"`|豆包 App 运行环境。<br><br>- develop: 开发版<br>- trial: 体验版<br>- release: 正式版|
79
+ |miniProgram.version|`string`|线上豆包 App 版本号。|
80
+ |plugin|`PluginAccountInfo`|插件账号信息(仅在插件中调用时包含)|
81
+ |plugin.appId|`string`|插件 appId|
82
+ |plugin.version|`string`|插件版本号,'a.b.c' 形式|
83
+
84
+ <a id="authorize"></a>
85
+ ### authorize()
86
+
87
+ 初始化授权
88
+
89
+ ## 代码示例
90
+
91
+ ```typescript
92
+ import { authorize } from '@doubao-apps/framework/api';
93
+
94
+ await authorize({ scope: 'scope.userLocation' });
95
+ ```
96
+
97
+ ## 注意事项
98
+
99
+ 按 scope 申请授权。
100
+
101
+ ## 入参
102
+
103
+ |参数名|类型|必填|说明|
104
+ |---|---|---|---|
105
+ |scope|`Scope`|是|授权范围|
106
+
107
+ **类型说明**
108
+
109
+ - `Scope`: `"scope.userLocation" | "scope.userFuzzyLocation" | "scope.userLocationBackground" | "scope.payment" | "scope.record" | "scope.bluetooth" | "scope.camera" | "scope.addPhoneContact" | "scope.addPhoneCalendar"`
110
+
111
+ ## 返回值
112
+
113
+ Promise 对象,授权成功时会返回授权结果
114
+
115
+ <a id="caniuse"></a>
116
+ ### canIUse()
117
+
118
+ 检测当前宿主是否支持指定 API 或能力。
119
+
120
+ ## 代码示例
121
+
122
+ ```typescript
123
+ import { canIUse } from '@doubao-apps/framework/api';
124
+
125
+ const { result } = await canIUse({ schema: 'doubao.getLocation' });
126
+
127
+ console.log(result);
128
+ ```
129
+
130
+ ## 注意事项
131
+
132
+ 用于兼容性判断。
133
+
134
+ ## 入参
135
+
136
+ |参数名|类型|必填|说明|
137
+ |---|---|---|---|
138
+ |schema|`string`|是|-|
139
+
140
+ ## 返回值
141
+
142
+ 返回 `Promise<CanIUseResult>`。
143
+
144
+ |字段名|类型|说明|
145
+ |---|---|---|
146
+ |result|`boolean`|-|
147
+
148
+ <a id="getpackageinfo"></a>
149
+ ### getPackageInfo()
150
+
151
+ 获取当前 package 信息。
152
+
153
+ ## 代码示例
154
+
155
+ ```typescript
156
+ import { getPackageInfo } from '@doubao-apps/framework/api';
157
+
158
+ const result = await getPackageInfo();
159
+
160
+ console.log(result.appId, result.name, result.iconSrc);
161
+ ```
162
+
163
+ ## 入参
164
+
165
+ 无入参。
166
+
167
+ ## 返回值
168
+
169
+ 返回当前 package 的 appId、展示名称和展示图标地址,见 GetPackageInfoResult。
170
+
171
+ |字段名|类型|说明|
172
+ |---|---|---|
173
+ |appId|`string`|当前 package 的 appId。|
174
+ |iconSrc|`string`|当前 package 的展示图标地址。|
175
+ |name|`string`|当前 package 的展示名称。|
176
+
177
+ <a id="getpackageinfosync"></a>
178
+ ### getPackageInfoSync()
179
+
180
+ 同步获取当前 package 信息。
181
+
182
+ ## 代码示例
183
+
184
+ ```typescript
185
+ import { getPackageInfoSync } from '@doubao-apps/framework/api';
186
+
187
+ const result = getPackageInfoSync();
188
+
189
+ console.log(result.appId, result.name, result.iconSrc);
190
+ ```
191
+
192
+ ## 入参
193
+
194
+ 无入参。
195
+
196
+ ## 返回值
197
+
198
+ 返回当前 package 的 appId、展示名称和展示图标地址,见 GetPackageInfoResult。
199
+
200
+ |字段名|类型|说明|
201
+ |---|---|---|
202
+ |appId|`string`|当前 package 的 appId。|
203
+ |iconSrc|`string`|当前 package 的展示图标地址。|
204
+ |name|`string`|当前 package 的展示名称。|
205
+
206
+ ## 相关类型
207
+
208
+ <a id="doubaoappaccountinfo"></a>
209
+ ### DoubaoAppAccountInfo
210
+
211
+ 豆包 App 账号信息。
212
+
213
+ #### Properties
214
+
215
+ • **appId**: `string` - 豆包 App appId
216
+ • **envVersion**: `'develop' | 'trial' | 'release'` - 豆包 App 运行环境。 - develop: 开发版 - trial: 体验版 - release: 正式版
217
+ • **version**: `string` - 线上豆包 App 版本号
218
+
219
+ <a id="pluginaccountinfo"></a>
220
+ ### PluginAccountInfo
221
+
222
+ 插件账号信息(仅在插件中调用时包含)。
223
+
224
+ #### Properties
225
+
226
+ • **appId**: `string` - 插件 appId
227
+ • **version**: `string` - 插件版本号,'a.b.c' 形式
228
+
229
+ <a id="getaccountinforesult"></a>
230
+ ### GetAccountInfoResult
231
+
232
+ 获取当前账号信息。
233
+
234
+ #### Properties
235
+
236
+ • **miniProgram**: `DoubaoAppAccountInfo` - 豆包 App账号信息
237
+ • **plugin?**: `PluginAccountInfo` - 插件账号信息(仅在插件中调用时包含)
238
+
239
+ <a id="scope"></a>
240
+ ### Scope
241
+
242
+ #### Type
243
+
244
+ `| 'scope.userLocation'
245
+ | 'scope.userFuzzyLocation'
246
+ | 'scope.userLocationBackground'
247
+ | 'scope.payment'
248
+ | 'scope.record'
249
+ | 'scope.bluetooth'
250
+ | 'scope.camera'
251
+ | 'scope.addPhoneContact'
252
+ | 'scope.addPhoneCalendar'`
253
+
254
+ <a id="caniuseresult"></a>
255
+ ### CanIUseResult
256
+
257
+ #### Properties
258
+
259
+ • **result**: `boolean`
260
+
261
+ <a id="getpackageinforesult"></a>
262
+ ### GetPackageInfoResult
263
+
264
+ 当前 package 信息。
265
+
266
+ #### Properties
267
+
268
+ • **appId**: `string` - 当前 package 的 appId
269
+ • **name**: `string` - 当前 package 的展示名称
270
+ • **iconSrc?**: `string` - 当前 package 的展示图标地址