openfeel 1.0.9 → 1.1.1

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 (147) hide show
  1. package/README.en.md +11 -11
  2. package/README.md +2 -1
  3. package/README.zh-CN.md +13 -13
  4. package/bin/openfeel.js +2 -2
  5. package/dist/cli/index.d.ts +6 -0
  6. package/dist/cli/index.d.ts.map +1 -1
  7. package/dist/cli/index.js +28 -0
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/commands/archive.d.ts +1 -1
  10. package/dist/commands/flow.d.ts +1 -1
  11. package/dist/commands/flow.d.ts.map +1 -1
  12. package/dist/commands/flow.js +20 -8
  13. package/dist/commands/flow.js.map +1 -1
  14. package/dist/commands/init.d.ts +2 -1
  15. package/dist/commands/init.d.ts.map +1 -1
  16. package/dist/commands/init.js +7 -2
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/migrate.d.ts +10 -0
  19. package/dist/commands/migrate.d.ts.map +1 -0
  20. package/dist/commands/migrate.js +106 -0
  21. package/dist/commands/migrate.js.map +1 -0
  22. package/dist/commands/model.d.ts +10 -0
  23. package/dist/commands/model.d.ts.map +1 -0
  24. package/dist/commands/model.js +135 -0
  25. package/dist/commands/model.js.map +1 -0
  26. package/dist/commands/setup.d.ts +7 -0
  27. package/dist/commands/setup.d.ts.map +1 -0
  28. package/dist/commands/setup.js +31 -0
  29. package/dist/commands/setup.js.map +1 -0
  30. package/dist/commands/stage.d.ts.map +1 -1
  31. package/dist/commands/stage.js +50 -29
  32. package/dist/commands/stage.js.map +1 -1
  33. package/dist/commands/update.d.ts.map +1 -1
  34. package/dist/commands/update.js +13 -10
  35. package/dist/commands/update.js.map +1 -1
  36. package/dist/commands/view.d.ts +1 -1
  37. package/dist/commands/view.d.ts.map +1 -1
  38. package/dist/commands/view.js +2 -1
  39. package/dist/commands/view.js.map +1 -1
  40. package/dist/core/archive/merge.d.ts.map +1 -1
  41. package/dist/core/archive/merge.js +5 -4
  42. package/dist/core/archive/merge.js.map +1 -1
  43. package/dist/core/artifact-graph/resolver.js +2 -2
  44. package/dist/core/artifact-graph/resolver.js.map +1 -1
  45. package/dist/core/config.d.ts +8 -8
  46. package/dist/core/config.d.ts.map +1 -1
  47. package/dist/core/config.js +22 -17
  48. package/dist/core/config.js.map +1 -1
  49. package/dist/core/flow-manager.d.ts +25 -4
  50. package/dist/core/flow-manager.d.ts.map +1 -1
  51. package/dist/core/flow-manager.js +144 -79
  52. package/dist/core/flow-manager.js.map +1 -1
  53. package/dist/core/fs/atomic-write.d.ts +31 -0
  54. package/dist/core/fs/atomic-write.d.ts.map +1 -0
  55. package/dist/core/fs/atomic-write.js +80 -0
  56. package/dist/core/fs/atomic-write.js.map +1 -0
  57. package/dist/core/fs/file-lock.d.ts +34 -0
  58. package/dist/core/fs/file-lock.d.ts.map +1 -0
  59. package/dist/core/fs/file-lock.js +142 -0
  60. package/dist/core/fs/file-lock.js.map +1 -0
  61. package/dist/core/fs/sequence.d.ts +42 -0
  62. package/dist/core/fs/sequence.d.ts.map +1 -0
  63. package/dist/core/fs/sequence.js +69 -0
  64. package/dist/core/fs/sequence.js.map +1 -0
  65. package/dist/core/global-paths.d.ts +27 -0
  66. package/dist/core/global-paths.d.ts.map +1 -0
  67. package/dist/core/global-paths.js +61 -0
  68. package/dist/core/global-paths.js.map +1 -0
  69. package/dist/core/i18n-data/en.d.ts +3 -0
  70. package/dist/core/i18n-data/en.d.ts.map +1 -1
  71. package/dist/core/i18n-data/en.js +86 -1
  72. package/dist/core/i18n-data/en.js.map +1 -1
  73. package/dist/core/i18n-data/zh-CN.d.ts +3 -0
  74. package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
  75. package/dist/core/i18n-data/zh-CN.js +87 -1
  76. package/dist/core/i18n-data/zh-CN.js.map +1 -1
  77. package/dist/core/i18n.js +4 -4
  78. package/dist/core/i18n.js.map +1 -1
  79. package/dist/core/init.d.ts +10 -15
  80. package/dist/core/init.d.ts.map +1 -1
  81. package/dist/core/init.js +65 -134
  82. package/dist/core/init.js.map +1 -1
  83. package/dist/core/managed-region.d.ts +54 -0
  84. package/dist/core/managed-region.d.ts.map +1 -0
  85. package/dist/core/managed-region.js +171 -0
  86. package/dist/core/managed-region.js.map +1 -0
  87. package/dist/core/metrics.d.ts.map +1 -1
  88. package/dist/core/metrics.js +6 -3
  89. package/dist/core/metrics.js.map +1 -1
  90. package/dist/core/migrate.d.ts +115 -0
  91. package/dist/core/migrate.d.ts.map +1 -0
  92. package/dist/core/migrate.js +558 -0
  93. package/dist/core/migrate.js.map +1 -0
  94. package/dist/core/model-config.d.ts +62 -0
  95. package/dist/core/model-config.d.ts.map +1 -0
  96. package/dist/core/model-config.js +336 -0
  97. package/dist/core/model-config.js.map +1 -0
  98. package/dist/core/opencode-config.d.ts +17 -0
  99. package/dist/core/opencode-config.d.ts.map +1 -0
  100. package/dist/core/opencode-config.js +135 -0
  101. package/dist/core/opencode-config.js.map +1 -0
  102. package/dist/core/plan/roadmap.d.ts.map +1 -1
  103. package/dist/core/plan/roadmap.js +3 -2
  104. package/dist/core/plan/roadmap.js.map +1 -1
  105. package/dist/core/plan/scheme.d.ts.map +1 -1
  106. package/dist/core/plan/scheme.js +35 -36
  107. package/dist/core/plan/scheme.js.map +1 -1
  108. package/dist/core/plan/stage.d.ts.map +1 -1
  109. package/dist/core/plan/stage.js +4 -3
  110. package/dist/core/plan/stage.js.map +1 -1
  111. package/dist/core/public-logger.d.ts +3 -3
  112. package/dist/core/public-logger.d.ts.map +1 -1
  113. package/dist/core/public-logger.js +36 -40
  114. package/dist/core/public-logger.js.map +1 -1
  115. package/dist/core/setup.d.ts +10 -0
  116. package/dist/core/setup.d.ts.map +1 -0
  117. package/dist/core/setup.js +75 -0
  118. package/dist/core/setup.js.map +1 -0
  119. package/dist/core/template-loader.d.ts +4 -5
  120. package/dist/core/template-loader.d.ts.map +1 -1
  121. package/dist/core/template-loader.js +3974 -3274
  122. package/dist/core/template-loader.js.map +1 -1
  123. package/dist/core/templates.d.ts +2 -2
  124. package/dist/core/templates.d.ts.map +1 -1
  125. package/dist/core/templates.js +2 -2
  126. package/dist/core/templates.js.map +1 -1
  127. package/dist/core/update-infos.d.ts +32 -0
  128. package/dist/core/update-infos.d.ts.map +1 -0
  129. package/dist/core/update-infos.js +153 -0
  130. package/dist/core/update-infos.js.map +1 -0
  131. package/dist/core/update-state.d.ts +18 -0
  132. package/dist/core/update-state.d.ts.map +1 -1
  133. package/dist/core/update-state.js +66 -3
  134. package/dist/core/update-state.js.map +1 -1
  135. package/dist/core/update.d.ts +12 -6
  136. package/dist/core/update.d.ts.map +1 -1
  137. package/dist/core/update.js +400 -550
  138. package/dist/core/update.js.map +1 -1
  139. package/dist/core/view/entry.js +4 -4
  140. package/dist/core/view/entry.js.map +1 -1
  141. package/dist/core/workspace/identity.d.ts.map +1 -1
  142. package/dist/core/workspace/identity.js +13 -10
  143. package/dist/core/workspace/identity.js.map +1 -1
  144. package/dist/core/workspace/knowledge.d.ts.map +1 -1
  145. package/dist/core/workspace/knowledge.js +24 -14
  146. package/dist/core/workspace/knowledge.js.map +1 -1
  147. package/package.json +1 -1
@@ -1,12 +1,15 @@
1
1
  /**
2
- * 操作方案管理(Schemer 产出层)
2
+ * 操作方案管理(openfeel-schemer 产出层)
3
3
  * 负责 .openfeel/plan/{series}/{stage}/ops/ 下的操作方案文件 CRUD
4
4
  * 创建后自动同步到 flow.json 的 stages/{stage}.ops 中
5
5
  */
6
- import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
6
+ import { existsSync, mkdirSync, readFileSync, readdirSync } from 'node:fs';
7
7
  import { resolve, join } from 'node:path';
8
- import { FlowManager } from '../flow-manager.js';
8
+ import { FlowManager, isFlowConcurrentError } from '../flow-manager.js';
9
9
  import { parseStageId } from './path.js';
10
+ import { atomicWriteFileSync } from '../fs/atomic-write.js';
11
+ import { withFileLock, projectLockPath } from '../fs/file-lock.js';
12
+ import { reserveSequence } from '../fs/sequence.js';
10
13
  /**
11
14
  * 生成操作方案的固定 Markdown 模板
12
15
  */
@@ -16,7 +19,7 @@ function generateSchemeTemplate(opId, stageName, title) {
16
19
  - **阶段**:${stageName}
17
20
  - **状态**:pending
18
21
  - **前置**:无
19
- - **负责 Agent**:Executor
22
+ - **负责 Agent**:openfeel-executor
20
23
  - **最多重试**:3
21
24
 
22
25
  ## 目标
@@ -53,25 +56,9 @@ function extractTitle(fileName) {
53
56
  const noPrefix = fileName.replace(/^op-\d+_?/, '');
54
57
  return noPrefix.replace(/\.md$/, '').replace(/_/g, ' ');
55
58
  }
56
- /**
57
- * 计算下一个 opId(基于已有方案中的最大编号 +1)
58
- */
59
- function getNextOpId(opsDir) {
60
- if (!existsSync(opsDir)) {
61
- return 'op-001';
62
- }
63
- const files = readdirSync(opsDir).filter((f) => f.endsWith('.md'));
64
- let maxNum = 0;
65
- for (const file of files) {
66
- const match = file.match(/^op-(\d+)/);
67
- if (match) {
68
- const num = parseInt(match[1], 10);
69
- if (num > maxNum) {
70
- maxNum = num;
71
- }
72
- }
73
- }
74
- return `op-${String(maxNum + 1).padStart(3, '0')}`;
59
+ /** 序号 → opId(3 位补零) */
60
+ function opIdOf(seq) {
61
+ return `op-${String(seq).padStart(3, '0')}`;
75
62
  }
76
63
  /**
77
64
  * 同步方案到 flow.json
@@ -105,7 +92,7 @@ function syncToFlowJson(projectPath, stageName, opId, title) {
105
92
  id: opId,
106
93
  title,
107
94
  state: 'pending',
108
- assignee: 'Executor',
95
+ assignee: 'openfeel-executor',
109
96
  attempts: 0,
110
97
  max_attempts: 3,
111
98
  checkpoints: {
@@ -118,8 +105,14 @@ function syncToFlowJson(projectPath, stageName, opId, title) {
118
105
  };
119
106
  flowMgr.save();
120
107
  }
121
- catch {
122
- // 同步失败不阻塞方案创建(静默忽略)
108
+ catch (err) {
109
+ // 并发冲突:op 文件已创建,但 flow.json 注册失败;不静默吞错,告警并提示兜底
110
+ if (isFlowConcurrentError(err)) {
111
+ console.warn(`[WARN] op ${opId} 已创建,但 flow.json 同步因并发冲突失败;` +
112
+ `请执行 openfeel flow repair 兜底或重新注册该 op。`);
113
+ return;
114
+ }
115
+ // 其它同步失败不阻塞方案创建(既有语义:静默忽略)
123
116
  }
124
117
  }
125
118
  /**
@@ -142,18 +135,24 @@ export function createScheme(projectPath, stageName, title) {
142
135
  if (!existsSync(opsDir)) {
143
136
  mkdirSync(opsDir, { recursive: true });
144
137
  }
145
- // 2. 计算下一个 opId
146
- const opId = getNextOpId(opsDir);
147
- // 3. 生成模板内容并写入文件
148
- // 文件名中空格用下划线替换
138
+ // 2. 锁内:原子占号 + 原子写 op 文件(临界区仅含占号与写文件,不含 flow 同步)
149
139
  const safeTitle = title.replace(/\s+/g, '_');
150
- const fileName = `${opId}_${safeTitle}.md`;
151
- const filePath = join(opsDir, fileName);
152
- const content = generateSchemeTemplate(opId, parsed.fullStageId, title);
153
- writeFileSync(filePath, content, 'utf-8');
154
- // 4. 同步到 flow.json(键用完整 stageId)
140
+ const lockPath = projectLockPath(projectPath, `scheme-${parsed.stageDir}`);
141
+ const opId = withFileLock(lockPath, () => {
142
+ const reserved = reserveSequence({
143
+ dir: opsDir,
144
+ candidate: (seq) => `${opIdOf(seq)}_${safeTitle}.md`,
145
+ parse: (fileName) => {
146
+ const m = fileName.match(/^op-(\d+)/);
147
+ return m ? parseInt(m[1], 10) : null;
148
+ },
149
+ });
150
+ const content = generateSchemeTemplate(opIdOf(reserved.seq), parsed.fullStageId, title);
151
+ atomicWriteFileSync(reserved.path, content);
152
+ return opIdOf(reserved.seq);
153
+ });
154
+ // 3. 同步到 flow.json(键用完整 stageId;由 FlowManager.save 的 flow.lock 保护)
155
155
  syncToFlowJson(projectPath, parsed.fullStageId, opId, title);
156
- // 5. 返回 opId
157
156
  return opId;
158
157
  }
159
158
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"scheme.js","sourceRoot":"","sources":["../../../src/core/plan/scheme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheme.js","sourceRoot":"","sources":["../../../src/core/plan/scheme.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/core/plan/stage.ts"],"names":[],"mappings":"AASA,WAAW;AACX,MAAM,WAAW,KAAK;IACpB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAgFjF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,CAkDvD"}
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/core/plan/stage.ts"],"names":[],"mappings":"AAUA,WAAW;AACX,MAAM,WAAW,KAAK;IACpB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAgFjF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,CAkDvD"}
@@ -2,10 +2,11 @@
2
2
  * 工作阶段管理
3
3
  * 负责 .openfeel/plan/{series}/ 下的阶段目录创建与列取
4
4
  */
5
- import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
5
+ import { existsSync, mkdirSync, readFileSync, readdirSync } from 'node:fs';
6
6
  import { resolve, join } from 'node:path';
7
7
  import { FlowManager } from '../flow-manager.js';
8
8
  import { parseStageId } from './path.js';
9
+ import { atomicWriteFileSync } from '../fs/atomic-write.js';
9
10
  /**
10
11
  * 添加工作阶段
11
12
  * 在 .openfeel/plan/{series}/ 下创建 {stage}/ 目录,包含 overview.md 和 status.md 骨架
@@ -41,7 +42,7 @@ ${depsText}
41
42
 
42
43
  > 待补充
43
44
  `;
44
- writeFileSync(overviewPath, overviewContent, 'utf-8');
45
+ atomicWriteFileSync(overviewPath, overviewContent);
45
46
  }
46
47
  // 创建 status.md(若不存在)— 标题用完整 stageId
47
48
  const statusPath = join(stageDir, 'status.md');
@@ -77,7 +78,7 @@ ${depsText}
77
78
  |------|-------|----------|------|
78
79
  | ${new Date().toISOString().replace('T', ' ').substring(0, 16)} | user | planned | 阶段已创建 |
79
80
  `;
80
- writeFileSync(statusPath, statusContent, 'utf-8');
81
+ atomicWriteFileSync(statusPath, statusContent);
81
82
  }
82
83
  // 同步到 flow.json(若存在)— 键用完整 stageId
83
84
  const flowMgr = new FlowManager(projectPath);
@@ -1 +1 @@
1
- {"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/core/plan/stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../../../src/core/plan/stage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAY5D;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,IAAY,EAAE,IAAe;IACzE,4BAA4B;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3F,WAAW;IACX,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,wBAAwB;IAExB,sCAAsC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtF,MAAM,eAAe,GAAG,KAAK,MAAM,CAAC,WAAW;;;;;;;;EAQjD,QAAQ;;;;;CAKT,CAAC;QACE,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,KAAK,MAAM,CAAC,WAAW;;;;;;;aAOpC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;IAsBpE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;CAC9D,CAAC;QACE,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,mCAAmC;IACnC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAE1D,cAAc;IACd,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,mDAAmD;IACnD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,YAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,YAAY,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,kBAAkB;QAC9B,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAEvD,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,kBAAkB,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,GAAG;gBAC9D,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,QAAQ;IACR,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -62,12 +62,12 @@ export declare class PublicLogger {
62
62
  getUsername(): string;
63
63
  /** 从 .openfeel/.info.json 加载用户名 */
64
64
  private loadUsername;
65
- /** 写入日志并维护索引(乐观操作) */
65
+ /** 写入日志并维护索引(乐观操作;锁内完成占号 + 写条目 + 索引读改写) */
66
66
  private writeLog;
67
67
  /** 确保年/月/日目录存在,返回日目录路径 */
68
68
  private ensureDateDir;
69
- /** 计算当日的下一个 NNN 值(当日已有日志文件数 + 1) */
70
- private computeNextNnn;
69
+ /** 从日志文件名解析 NNN(仅按文件名,不读内容;空文件占位仍计入) */
70
+ private parseNnn;
71
71
  /** 构建日志文件名 yyyy-mm-dd-{username}-NNN.md */
72
72
  private buildFileName;
73
73
  /** 构建日志文件内容 */
@@ -1 +1 @@
1
- {"version":3,"file":"public-logger.d.ts","sourceRoot":"","sources":["../../src/core/public-logger.ts"],"names":[],"mappings":"AAcA,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO;IAKP;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY;IAOrD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAM5B;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAI5C;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAI5C;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAI1C;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAOxD,cAAc;IACd,WAAW,IAAI,MAAM;IAIrB,mCAAmC;IACnC,OAAO,CAAC,YAAY;IAgBpB,sBAAsB;IACtB,OAAO,CAAC,QAAQ;IAqBhB,0BAA0B;IAC1B,OAAO,CAAC,aAAa;IAmBrB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAsBtB,2CAA2C;IAC3C,OAAO,CAAC,aAAa;IAKrB,eAAe;IACf,OAAO,CAAC,eAAe;IAsCvB,wBAAwB;IACxB,OAAO,CAAC,cAAc;IA6BtB,0BAA0B;IAC1B,OAAO,CAAC,eAAe;IAiCvB,oCAAoC;IACpC,OAAO,CAAC,WAAW;CA0DpB;AAID,wBAAwB;AACxB,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK7C"}
1
+ {"version":3,"file":"public-logger.d.ts","sourceRoot":"","sources":["../../src/core/public-logger.ts"],"names":[],"mappings":"AAiBA,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO;IAKP;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY;IAOrD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAM5B;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAI5C;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAI5C;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAI1C;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAOxD,cAAc;IACd,WAAW,IAAI,MAAM;IAIrB,mCAAmC;IACnC,OAAO,CAAC,YAAY;IAgBpB,2CAA2C;IAC3C,OAAO,CAAC,QAAQ;IA6BhB,0BAA0B;IAC1B,OAAO,CAAC,aAAa;IAmBrB,wCAAwC;IACxC,OAAO,CAAC,QAAQ;IAShB,2CAA2C;IAC3C,OAAO,CAAC,aAAa;IAKrB,eAAe;IACf,OAAO,CAAC,eAAe;IAsCvB,wBAAwB;IACxB,OAAO,CAAC,cAAc;IA6BtB,0BAA0B;IAC1B,OAAO,CAAC,eAAe;IAiCvB,oCAAoC;IACpC,OAAO,CAAC,WAAW;CA0DpB;AAID,wBAAwB;AACxB,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK7C"}
@@ -9,8 +9,11 @@
9
9
  * - 自动维护 day_index.md(每日索引)、根级 index.md + log.md
10
10
  * - 异步乐观:写入失败仅 console.warn,不阻塞流水线推进
11
11
  */
12
- import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
12
+ import { existsSync, mkdirSync, readFileSync } from 'node:fs';
13
13
  import { resolve } from 'node:path';
14
+ import { atomicWriteFileSync } from './fs/atomic-write.js';
15
+ import { withFileLock, projectLockPath } from './fs/file-lock.js';
16
+ import { reserveSequence } from './fs/sequence.js';
14
17
  /**
15
18
  * PublicLogger 单例类
16
19
  * 负责写入公共日志并维护索引文件。
@@ -92,21 +95,28 @@ export class PublicLogger {
92
95
  }
93
96
  return 'unknown';
94
97
  }
95
- /** 写入日志并维护索引(乐观操作) */
98
+ /** 写入日志并维护索引(乐观操作;锁内完成占号 + 写条目 + 索引读改写) */
96
99
  writeLog(eventType, detail) {
97
100
  try {
98
101
  const now = new Date();
99
102
  const dateDir = this.ensureDateDir(now);
100
- const nnn = this.computeNextNnn(dateDir, now);
101
- const fileName = this.buildFileName(now, nnn);
102
- const filePath = resolve(dateDir, fileName);
103
- // 写入日志文件
104
- const content = this.buildLogContent(now, eventType, detail, fileName);
105
- writeFileSync(filePath, content, 'utf-8');
106
- // 维护三级索引
107
- this.updateDayIndex(dateDir, fileName, now, getShortDesc(detail, eventType));
108
- this.updateRootIndex(now, getShortDesc(detail, eventType));
109
- this.updateLogMd(fileName, now, getShortDesc(detail, eventType));
103
+ const lockPath = projectLockPath(this.projectPath, 'log');
104
+ withFileLock(lockPath, () => {
105
+ // 原子占号(候选起点 = 当日 max NNN + 1,最终以 O_EXCL 为准)
106
+ const reserved = reserveSequence({
107
+ dir: dateDir,
108
+ candidate: (seq) => this.buildFileName(now, seq),
109
+ parse: (fileName) => this.parseNnn(fileName, now),
110
+ });
111
+ const fileName = reserved.fileName;
112
+ // 写入日志文件(占位空文件被原子写覆盖)
113
+ const content = this.buildLogContent(now, eventType, detail, fileName);
114
+ atomicWriteFileSync(reserved.path, content);
115
+ // 维护三级索引(同一临界区内完成读-改-写,避免并发覆盖)
116
+ this.updateDayIndex(dateDir, fileName, now, getShortDesc(detail, eventType));
117
+ this.updateRootIndex(now, getShortDesc(detail, eventType));
118
+ this.updateLogMd(fileName, now, getShortDesc(detail, eventType));
119
+ });
110
120
  }
111
121
  catch (err) {
112
122
  console.warn(`[WARN] 公共日志写入失败: ${err.message}`);
@@ -129,28 +139,14 @@ export class PublicLogger {
129
139
  }
130
140
  return dayDir;
131
141
  }
132
- /** 计算当日的下一个 NNN 值(当日已有日志文件数 + 1) */
133
- computeNextNnn(dayDir, now) {
134
- const datePrefix = formatDate(now);
135
- try {
136
- const entries = readdirSync(dayDir);
137
- // 匹配文件名模式 {datePrefix}-{username}-{NNN}.md
138
- const userPrefix = `${datePrefix}-${this.username}-`;
139
- let maxNnn = 0;
140
- for (const entry of entries) {
141
- if (entry.startsWith(userPrefix) && entry.endsWith('.md')) {
142
- const nnnStr = entry.slice(userPrefix.length, -3); // 去掉 ".md" 后缀
143
- const nnn = parseInt(nnnStr, 10);
144
- if (!isNaN(nnn) && nnn > maxNnn) {
145
- maxNnn = nnn;
146
- }
147
- }
148
- }
149
- return maxNnn + 1;
150
- }
151
- catch {
152
- return 1;
142
+ /** 从日志文件名解析 NNN(仅按文件名,不读内容;空文件占位仍计入) */
143
+ parseNnn(fileName, now) {
144
+ const userPrefix = `${formatDate(now)}-${this.username}-`;
145
+ if (!fileName.startsWith(userPrefix) || !fileName.endsWith('.md')) {
146
+ return null;
153
147
  }
148
+ const nnn = parseInt(fileName.slice(userPrefix.length, -3), 10);
149
+ return isNaN(nnn) ? null : nnn;
154
150
  }
155
151
  /** 构建日志文件名 yyyy-mm-dd-{username}-NNN.md */
156
152
  buildFileName(now, nnn) {
@@ -195,7 +191,7 @@ export class PublicLogger {
195
191
  if (!existsSync(indexPath)) {
196
192
  // 新建索引
197
193
  const entry = `\n| [${fileName}](${fileName}) | ${this.username} | ${desc} |\n`;
198
- writeFileSync(indexPath, headerContent + entry, 'utf-8');
194
+ atomicWriteFileSync(indexPath, headerContent + entry);
199
195
  return;
200
196
  }
201
197
  // 追加条目
@@ -207,7 +203,7 @@ export class PublicLogger {
207
203
  // 去掉末尾空白后追加
208
204
  content = content.replace(/\s*$/, '');
209
205
  content += `\n| [${fileName}](${fileName}) | ${this.username} | ${desc} |\n`;
210
- writeFileSync(indexPath, content, 'utf-8');
206
+ atomicWriteFileSync(indexPath, content);
211
207
  }
212
208
  /** 更新根级 index.md(日期索引) */
213
209
  updateRootIndex(now, desc) {
@@ -220,7 +216,7 @@ export class PublicLogger {
220
216
  const entry = `| [${dateStr}](${dayRelPath}) | ${desc} |`;
221
217
  if (!existsSync(indexPath)) {
222
218
  const content = `# 日志索引\n\n## 日期索引\n\n| 日期 | 摘要 |\n|------|------|\n${entry}\n`;
223
- writeFileSync(indexPath, content, 'utf-8');
219
+ atomicWriteFileSync(indexPath, content);
224
220
  return;
225
221
  }
226
222
  let content = readFileSync(indexPath, 'utf-8');
@@ -238,7 +234,7 @@ export class PublicLogger {
238
234
  else {
239
235
  content = content.replace(/\s*$/, '') + '\n' + entry + '\n';
240
236
  }
241
- writeFileSync(indexPath, content, 'utf-8');
237
+ atomicWriteFileSync(indexPath, content);
242
238
  }
243
239
  /** 更新根级 log.md(最近 30 条摘要,倒序插入顶部) */
244
240
  updateLogMd(fileName, now, desc) {
@@ -250,7 +246,7 @@ export class PublicLogger {
250
246
  const entry = `| [${fileName}](${fileRelPath}) | ${this.username} | ${desc} |`;
251
247
  if (!existsSync(logPath)) {
252
248
  const content = `# 最近日志\n\n| 文件 | 用户 | 描述 |\n|------|------|------|\n${entry}\n`;
253
- writeFileSync(logPath, content, 'utf-8');
249
+ atomicWriteFileSync(logPath, content);
254
250
  return;
255
251
  }
256
252
  let content = readFileSync(logPath, 'utf-8');
@@ -263,7 +259,7 @@ export class PublicLogger {
263
259
  if (tableHeaderEnd === -1) {
264
260
  // 格式异常,重新初始化
265
261
  const newContent = `# 最近日志\n\n| 文件 | 用户 | 描述 |\n|------|------|------|\n${entry}\n`;
266
- writeFileSync(logPath, newContent, 'utf-8');
262
+ atomicWriteFileSync(logPath, newContent);
267
263
  return;
268
264
  }
269
265
  const insertPos = tableHeaderEnd + '|------|------|------|'.length;
@@ -290,7 +286,7 @@ export class PublicLogger {
290
286
  }
291
287
  // 确保末尾有换行
292
288
  const newContent = before + entryLines.join('\n').replace(/\n*$/, '\n');
293
- writeFileSync(logPath, newContent, 'utf-8');
289
+ atomicWriteFileSync(logPath, newContent);
294
290
  }
295
291
  }
296
292
  // ── 辅助函数 ──
@@ -1 +1 @@
1
- {"version":3,"file":"public-logger.js","sourceRoot":"","sources":["../../src/core/public-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-logger.js","sourceRoot":"","sources":["../../src/core/public-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAe,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAY,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAyBnD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,GAAwB,IAAI,CAAC;IAC5C,WAAW,CAAS;IACpB,QAAQ,CAAS;IAEzB,YAAoB,WAAmB;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAmB;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,aAAa;IAEb;;;OAGG;IACH,cAAc,CAAC,MAAsB;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,MAAsB;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAsB;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAa,EAAE,KAAqB;QAC/C,uCAAuC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAoB,CAAC,CAAC;IAC/F,CAAC;IAED,eAAe;IAEf,cAAc;IACd,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,mCAAmC;IAC3B,YAAY;QAClB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACtE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;gBACxD,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2CAA2C;IACnC,QAAQ,CAAC,SAAiB,EAAE,MAAsB;QACxD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAE1D,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAC1B,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC;oBAC/B,GAAG,EAAE,OAAO;oBACZ,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;oBAChD,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;iBAClD,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAEnC,sBAAsB;gBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvE,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE5C,+BAA+B;gBAC/B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7E,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,oBAAqB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,0BAA0B;IAClB,aAAa,CAAC,GAAS;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErC,WAAW;QACX,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wCAAwC;IAChC,QAAQ,CAAC,QAAgB,EAAE,GAAS;QAC1C,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;IAED,2CAA2C;IACnC,aAAa,CAAC,GAAS,EAAE,GAAW;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,CAAC;IAC5D,CAAC;IAED,eAAe;IACP,eAAe,CACrB,GAAS,EACT,SAAiB,EACjB,MAAsB,EACtB,QAAgB;QAEhB,MAAM,KAAK,GAAa;YACtB,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;YAClC,EAAE;YACF,YAAY,GAAG,CAAC,WAAW,EAAE,EAAE;YAC/B,aAAa,IAAI,CAAC,QAAQ,EAAE;YAC5B,cAAc,SAAS,EAAE;YACzB,YAAY,MAAM,CAAC,MAAM,EAAE;SAC5B,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,OAAO;QACP,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,wBAAwB;IAChB,cAAc,CACpB,MAAc,EACd,QAAgB,EAChB,GAAS,EACT,IAAY;QAEZ,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,KAAK,OAAO,0DAA0D,CAAC;QAE7F,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO;YACP,MAAM,KAAK,GAAG,QAAQ,QAAQ,KAAK,QAAQ,OAAO,IAAI,CAAC,QAAQ,MAAM,IAAI,MAAM,CAAC;YAChF,mBAAmB,CAAC,SAAS,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,OAAO;QACP,IAAI,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,0BAA0B;QAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,YAAY;QACZ,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,IAAI,QAAQ,QAAQ,KAAK,QAAQ,OAAO,IAAI,CAAC,QAAQ,MAAM,IAAI,MAAM,CAAC;QAC7E,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,0BAA0B;IAClB,eAAe,CAAC,GAAS,EAAE,IAAY;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,OAAO,KAAK,UAAU,OAAO,IAAI,IAAI,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,sDAAsD,KAAK,IAAI,CAAC;YAChF,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,4BAA4B;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACrC,cAAc;YACd,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9E,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;QAC9D,CAAC;QACD,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,oCAAoC;IAC5B,WAAW,CAAC,QAAgB,EAAE,GAAS,EAAE,IAAY;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,KAAK,WAAW,OAAO,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,CAAC;QAE/E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,uDAAuD,KAAK,IAAI,CAAC;YACjF,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7C,SAAS;QACT,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,aAAa;YACb,MAAM,UAAU,GAAG,uDAAuD,KAAK,IAAI,CAAC;YACpF,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC;QACnE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAErC,oBAAoB;QACpB,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;QAE7B,aAAa;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;oBACxB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;gBACD,oBAAoB;YACtB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,UAAU;QACV,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxE,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;;AAGH,aAAa;AAEb,wBAAwB;AACxB,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/B,CAAC;AAED,8BAA8B;AAC9B,SAAS,YAAY,CAAC,MAAsB,EAAE,SAAiB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,eAAe;IACf,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,eAAe;YAClB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM;QACR,KAAK,cAAc;YACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,oBAAoB;YACvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,wBAAwB;YAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,iBAAiB;YACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,iBAAiB;YACpB,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YACD,MAAM;QACR;YACE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM;IACV,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACtC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** setup 部署结果 */
2
+ export interface SetupResult {
3
+ created: string[];
4
+ updated: string[];
5
+ skipped: string[];
6
+ appended: string[];
7
+ }
8
+ /** 纯全局部署(首次全量,幂等);不建立项目 .openfeel/ */
9
+ export declare function setupGlobalFramework(lang?: 'zh-CN' | 'en'): SetupResult;
10
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/core/setup.ts"],"names":[],"mappings":"AAeA,iBAAiB;AACjB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,OAAO,GAAG,IAAc,GAAG,WAAW,CA2DhF"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * setup 命令核心模块(v1.1.1)
3
+ * 纯全局部署:全局 AGENTS.md + 9 agent + 16 skill + 全局 opencode.jsonc。
4
+ * 不建立项目 .openfeel/;复用 deployGlobalAsset(受管区三态,幂等可重跑)。
5
+ */
6
+ import { mkdirSync, existsSync, readFileSync } from 'node:fs';
7
+ import { join } from 'node:path';
8
+ import { listAgentIds, loadAgentTemplate, loadTemplate } from './template-loader.js';
9
+ import { loadGlobalUpdateState, saveGlobalUpdateState, createGlobalUpdateState, updateFileHash } from './update-state.js';
10
+ import { deployGlobalAsset, SKILL_DEFINITIONS } from './update.js';
11
+ import { mergeGlobalOpencodeJsonc } from './opencode-config.js';
12
+ import { getGlobalAgentsMdPath, getGlobalAgentsDir, getGlobalSkillsDir, getGlobalOpencodeJsoncPath } from './global-paths.js';
13
+ import { atomicWriteFileSync } from './fs/atomic-write.js';
14
+ import { withFileLock, globalLockPath } from './fs/file-lock.js';
15
+ /** 纯全局部署(首次全量,幂等);不建立项目 .openfeel/ */
16
+ export function setupGlobalFramework(lang = 'zh-CN') {
17
+ const created = [];
18
+ const updated = [];
19
+ const skipped = [];
20
+ const appended = [];
21
+ const push = (action, path) => {
22
+ if (action === 'created')
23
+ created.push(path);
24
+ else if (action === 'updated')
25
+ updated.push(path);
26
+ else if (action === 'skipped')
27
+ skipped.push(path);
28
+ else
29
+ appended.push(path);
30
+ };
31
+ const globalState = loadGlobalUpdateState() ?? createGlobalUpdateState({});
32
+ // 1. 全局 AGENTS.md(框架约束唯一权威)
33
+ push(deployGlobalAsset(getGlobalAgentsMdPath(), loadTemplate(lang, 'agents-md'), globalState), getGlobalAgentsMdPath());
34
+ // 2. 9 agent → 全局 agents 目录
35
+ const agentsDir = getGlobalAgentsDir();
36
+ mkdirSync(agentsDir, { recursive: true });
37
+ for (const id of listAgentIds(lang)) {
38
+ const p = join(agentsDir, `${id}.md`);
39
+ push(deployGlobalAsset(p, loadAgentTemplate(lang, id), globalState), p);
40
+ }
41
+ // 3. 16 skill → 全局 skills 目录
42
+ const skillsDir = getGlobalSkillsDir();
43
+ mkdirSync(skillsDir, { recursive: true });
44
+ for (const [name, content] of Object.entries(SKILL_DEFINITIONS)) {
45
+ mkdirSync(join(skillsDir, name), { recursive: true });
46
+ const p = join(skillsDir, name, 'SKILL.md');
47
+ push(deployGlobalAsset(p, content, globalState), p);
48
+ }
49
+ // 4. 全局 opencode.jsonc:深度合并(保留用户字段),加全局锁 + 原子写
50
+ const jsoncPath = getGlobalOpencodeJsoncPath();
51
+ const merged = withFileLock(globalLockPath('global-opencode-jsonc'), () => {
52
+ const current = existsSync(jsoncPath) ? readFileSync(jsoncPath, 'utf-8') : '{}\n';
53
+ let out;
54
+ try {
55
+ out = mergeGlobalOpencodeJsonc(current);
56
+ }
57
+ catch (err) {
58
+ // 解析失败时保留原文件,避免破坏用户配置
59
+ console.warn(`[setup] 全局 opencode.jsonc 解析失败,跳过合并保留原文件: ${err.message}`);
60
+ out = current;
61
+ }
62
+ atomicWriteFileSync(jsoncPath, out);
63
+ return out;
64
+ });
65
+ updateFileHash(globalState, jsoncPath, merged);
66
+ // 5. 写盘全局 state + 记录已部署 hash
67
+ for (const p of [...created, ...updated, ...appended]) {
68
+ if (existsSync(p))
69
+ updateFileHash(globalState, p, readFileSync(p, 'utf-8'));
70
+ }
71
+ globalState.last_update = new Date().toISOString();
72
+ saveGlobalUpdateState(globalState);
73
+ return { created, updated, skipped, appended };
74
+ }
75
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/core/setup.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,10 @@ export declare function loadAgentTemplate(lang: string, agentId: string): string
14
14
  * 指定语言不存在时回退到 zh-CN。
15
15
  */
16
16
  export declare function listAgentIds(lang: string): string[];
17
- /** 加载通用模板(core-instructions / agents-md) */
18
- export type TemplateName = 'core-instructions' | 'agents-md';
17
+ /** 加载通用模板(agents-md,即全局 AGENTS.md 内容) */
18
+ export type TemplateName = 'agents-md';
19
19
  export declare function loadTemplate(lang: string, templateName: TemplateName): string;
20
20
  export declare const AGENTS_MD_TEMPLATE: string;
21
- export declare const CORE_INSTRUCTIONS_TEMPLATE_B64: string;
22
21
  /**
23
22
  * 加载 opencode Agent 模板(用于部署 .opencode/agents/)
24
23
  * 指定语言不存在时回退到 zh-CN
@@ -29,8 +28,8 @@ export declare function loadOpencodeAgentTemplate(lang: string, agentId: string)
29
28
  */
30
29
  export declare function loadOpencodeSkillTemplate(skillName: string): string;
31
30
  /**
32
- * 加载 opencode 配置类模板(instructions / opencode_jsonc / adapter / gitignore)
33
- * instructions 与 adapter 以 Base64 存储(与 core-instructions 一致),加载时解码
31
+ * 加载 opencode 配置类模板(adapter)
32
+ * adapter 以 Base64 存储(与旧 instructions 一致),加载时解码
34
33
  * 指定语言不存在时回退到 zh-CN
35
34
  */
36
35
  export declare function loadOpencodeConfigTemplate(lang: string, configName: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/core/template-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAu2FH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAE7D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAe7E;AAgsHD,eAAO,MAAM,kBAAkB,EAAE,MAAqC,CAAC;AACvE,eAAO,MAAM,8BAA8B,EAAE,MAA6C,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAWnF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD"}
1
+ {"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/core/template-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA69GH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC;AAEvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAS7E;AA6wHD,eAAO,MAAM,kBAAkB,EAAE,MAAqC,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAWnF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD"}