openyida 2026.4.2-beta.13 → 2026.4.2-beta.15

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/lib/core/copy.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * copy.js - 复制 project 工作目录模板 / 创建 yida-skills 软链接到当前 AI 工具环境
2
+ * copy.js - 复制 project 工作目录模板 / 复制 yida-skills 到当前 AI 工具环境
3
3
  *
4
4
  * 用法:
5
5
  * openyida copy → 复制 project/ 目录模板(默认,合并模式)
6
6
  * openyida copy --force → 复制 project/ 目录模板(强制覆盖,先清空目标目录)
7
- * openyida copy -skills → 创建 yida-skills/ 软链接(如果存在实际目录则先删除)
8
- * 悟空环境下:删除已有软链(悟空通过手动上传技能,不需要软链)
7
+ * openyida copy -skills → 复制 yida-skills/ 到当前 AI 工具的 skills 目录
8
+ * 悟空环境下:删除已有 yida-skills/(悟空通过手动上传技能)
9
9
  * openyida copy -project → 复制 project/ 目录模板(与默认行为相同,显式指定)
10
10
  * openyida copy -project --force → 复制 project/ 目录模板(强制覆盖)
11
11
  *
@@ -17,12 +17,8 @@
17
17
  *
18
18
  * project/ 合并模式(默认):已存在的文件强制覆盖,目标目录中多余的文件保留不动
19
19
  * project/ 强制模式(--force):先清空目标目录,再完整复制
20
- * yida-skills/(非悟空):始终创建软链接,如目标存在实际目录则先删除
21
- * yida-skills/(悟空):删除已有软链或目录(悟空通过手动上传技能,不需要软链)
22
- *
23
- * Windows 兼容说明:
24
- * - 软链接在 Windows 上需要管理员权限或开发者模式,失败时自动降级为目录复制
25
- * - 路径分隔符统一使用 path.join 处理
20
+ * yida-skills/(非悟空):复制到 <cwd>/yida-skills/,如目标已存在则先清理
21
+ * yida-skills/(悟空):删除已有软链或目录(悟空通过手动上传技能,不需要复制)
26
22
  */
27
23
 
28
24
  'use strict';
@@ -295,9 +291,9 @@ function run() {
295
291
  }
296
292
 
297
293
  if (shouldLinkSkills) {
298
- const destSkillsLink = path.join(destBase, 'yida-skills');
299
294
  if (isWukong) {
300
- // 悟空环境:删除已有软链,不创建新软链
295
+ // 悟空环境:删除已有软链或目录,不安装(悟空手动上传技能)
296
+ const destSkillsLink = path.join(destBase, 'yida-skills');
301
297
  console.log(t('copy.wukong_skills_cleanup'));
302
298
  const removed = removeSkillsLink(destSkillsLink);
303
299
  results.push({
@@ -307,15 +303,44 @@ function run() {
307
303
  type: 'wukong-cleanup'
308
304
  });
309
305
  } else {
310
- // 其他环境:创建软链接
311
- console.log(t('copy.creating_symlink'));
312
- const success = createSymlink(packageYidaSkillsDir, destSkillsLink);
313
- results.push({
314
- label: 'yida-skills/',
315
- dest: destSkillsLink,
316
- count: success ? 1 : 0,
317
- type: 'symlink'
318
- });
306
+ // 其他环境:复制到 AI 工具配置目录的 skills/yida-skills/
307
+ // 目标路径:~/<tool-config>/skills/yida-skills/(与 postinstall 保持一致)
308
+ const activeResult = envResults.find((r) => r.isActive);
309
+ const toolConfigDir = activeResult
310
+ ? path.join(os.homedir(), activeResult.dirName)
311
+ : null;
312
+
313
+ if (toolConfigDir) {
314
+ const skillsDir = path.join(toolConfigDir, 'skills');
315
+ const destSkillsDest = path.join(skillsDir, 'yida-skills');
316
+
317
+ // 清理旧版遗留在根目录的错误安装
318
+ removeSkillsLink(path.join(toolConfigDir, 'yida-skills'));
319
+
320
+ // 清理已有的 skills/yida-skills/(旧软链或旧目录)
321
+ removeSkillsLink(destSkillsDest);
322
+
323
+ // 复制文件
324
+ fs.mkdirSync(skillsDir, { recursive: true });
325
+ const count = mergeCopyDir(packageYidaSkillsDir, destSkillsDest);
326
+ results.push({
327
+ label: 'yida-skills/',
328
+ dest: destSkillsDest,
329
+ count,
330
+ type: 'copy'
331
+ });
332
+ } else {
333
+ // 未检测到 AI 工具,复制到当前目录下
334
+ const destSkillsDest = path.join(destBase, 'yida-skills');
335
+ removeSkillsLink(destSkillsDest);
336
+ const count = mergeCopyDir(packageYidaSkillsDir, destSkillsDest);
337
+ results.push({
338
+ label: 'yida-skills/',
339
+ dest: destSkillsDest,
340
+ count,
341
+ type: 'copy'
342
+ });
343
+ }
319
344
  }
320
345
  }
321
346
 
@@ -718,7 +718,7 @@ class FixEngine {
718
718
  case 'init-project': {
719
719
  try {
720
720
  const copy = require('./copy');
721
- await copy([]);
721
+ await copy.run([]);
722
722
  return {
723
723
  id: issue.id,
724
724
  fixed: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openyida",
3
- "version": "2026.04.02-beta.13",
3
+ "version": "2026.04.02-beta.15",
4
4
  "description": "OpenYida CLI - 宜搭低代码 AI 开发工具(安装即用,零配置)",
5
5
  "bin": {
6
6
  "openyida": "./bin/yida.js",
@@ -4,8 +4,7 @@ description: >
4
4
  宜搭低代码平台 AI 开发入口。一句话生成完整应用:创建应用、表单设计、自定义页面、流程配置、数据管理。
5
5
  当用户提到"宜搭"、"yida"、"低代码"、"创建应用"、"创建表单"、"发布页面"、"搭建"、"系统"、"应用"时触发。
6
6
  metadata:
7
- version: 2026.04.02-beta.13
8
- ---
7
+ version: 2026.04.02-beta.15
9
8
 
10
9
  # 宜搭 AI 应用开发指南
11
10