openfeel 1.1.0 → 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 (63) hide show
  1. package/README.en.md +1 -1
  2. package/README.zh-CN.md +1 -1
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +2 -0
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/commands/init.d.ts +2 -1
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +7 -2
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/commands/migrate.d.ts.map +1 -1
  11. package/dist/commands/migrate.js +10 -1
  12. package/dist/commands/migrate.js.map +1 -1
  13. package/dist/commands/setup.d.ts +7 -0
  14. package/dist/commands/setup.d.ts.map +1 -0
  15. package/dist/commands/setup.js +31 -0
  16. package/dist/commands/setup.js.map +1 -0
  17. package/dist/commands/update.d.ts.map +1 -1
  18. package/dist/commands/update.js +1 -10
  19. package/dist/commands/update.js.map +1 -1
  20. package/dist/core/config.js +2 -2
  21. package/dist/core/global-paths.d.ts +3 -1
  22. package/dist/core/global-paths.d.ts.map +1 -1
  23. package/dist/core/global-paths.js +5 -1
  24. package/dist/core/global-paths.js.map +1 -1
  25. package/dist/core/i18n-data/en.d.ts +1 -0
  26. package/dist/core/i18n-data/en.d.ts.map +1 -1
  27. package/dist/core/i18n-data/en.js +17 -0
  28. package/dist/core/i18n-data/en.js.map +1 -1
  29. package/dist/core/i18n-data/zh-CN.d.ts +1 -0
  30. package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
  31. package/dist/core/i18n-data/zh-CN.js +18 -0
  32. package/dist/core/i18n-data/zh-CN.js.map +1 -1
  33. package/dist/core/i18n.js +4 -4
  34. package/dist/core/i18n.js.map +1 -1
  35. package/dist/core/init.d.ts +10 -15
  36. package/dist/core/init.d.ts.map +1 -1
  37. package/dist/core/init.js +57 -139
  38. package/dist/core/init.js.map +1 -1
  39. package/dist/core/migrate.d.ts +12 -0
  40. package/dist/core/migrate.d.ts.map +1 -1
  41. package/dist/core/migrate.js +36 -11
  42. package/dist/core/migrate.js.map +1 -1
  43. package/dist/core/opencode-config.d.ts +2 -2
  44. package/dist/core/opencode-config.d.ts.map +1 -1
  45. package/dist/core/opencode-config.js +16 -4
  46. package/dist/core/opencode-config.js.map +1 -1
  47. package/dist/core/setup.d.ts +10 -0
  48. package/dist/core/setup.d.ts.map +1 -0
  49. package/dist/core/setup.js +75 -0
  50. package/dist/core/setup.js.map +1 -0
  51. package/dist/core/template-loader.d.ts +4 -5
  52. package/dist/core/template-loader.d.ts.map +1 -1
  53. package/dist/core/template-loader.js +741 -62
  54. package/dist/core/template-loader.js.map +1 -1
  55. package/dist/core/templates.d.ts +2 -2
  56. package/dist/core/templates.d.ts.map +1 -1
  57. package/dist/core/templates.js +2 -2
  58. package/dist/core/templates.js.map +1 -1
  59. package/dist/core/update.d.ts +0 -6
  60. package/dist/core/update.d.ts.map +1 -1
  61. package/dist/core/update.js +92 -95
  62. package/dist/core/update.js.map +1 -1
  63. package/package.json +1 -1
@@ -8,17 +8,17 @@ import { getGlobalCoreMdPath } from './global-paths.js';
8
8
  function isPlainObject(v) {
9
9
  return typeof v === 'object' && v !== null && !Array.isArray(v);
10
10
  }
11
- /** 框架级全局 opencode.jsonc 内容对象(N7;instructions 用绝对路径,见 op-000 结论) */
11
+ /** 框架级全局 opencode.jsonc 内容对象(N7;全局 AGENTS.md 由约定自动加载承载约束,故不写 instructions) */
12
12
  export function buildGlobalOpencodeFrameworkObj() {
13
13
  return {
14
14
  $schema: 'https://opencode.ai/config.json',
15
15
  default_agent: 'feel',
16
- instructions: [getGlobalCoreMdPath()],
17
16
  agent: {
18
17
  'openfeel-vision': { model: 'deepseek/deepseek-flash' },
19
- 'openfeel-reviewer': { model: 'zhipuai/glm-5.2' },
18
+ 'openfeel-reviewer': { model: 'zhipuai/glm-5.3-flash' },
20
19
  },
21
20
  // N3:experimental.agent_manager_tool 已被移除(op-000 实测 schema 未定义 + 静默丢弃),故不写
21
+ // v1.1.1:instructions 已移除——op-000 实测全局 AGENTS.md 自动加载(YES),约束无需显式 instructions 引用
22
22
  };
23
23
  }
24
24
  /** 项目 opencode.jsonc 最小覆盖内容(N7:仅 $schema,不写 instructions/skills/default_agent) */
@@ -114,10 +114,22 @@ export function deepMergeJsonc(base, overlay) {
114
114
  }
115
115
  return result;
116
116
  }
117
- /** 合并全局 opencode.jsonc:解析→深度合并→序列化(保留用户字段,注释不保留) */
117
+ /** 合并全局 opencode.jsonc:解析→深度合并→清理废弃 core.md 引用→序列化(保留用户字段,注释不保留) */
118
118
  export function mergeGlobalOpencodeJsonc(raw) {
119
119
  const base = parseJsonc(raw);
120
120
  const merged = deepMergeJsonc(base, buildGlobalOpencodeFrameworkObj());
121
+ // 移除已废弃的 core.md instructions 引用(v1.1.1:core.md 已并入全局 AGENTS.md)
122
+ const instr = merged.instructions;
123
+ if (Array.isArray(instr)) {
124
+ const stale = getGlobalCoreMdPath();
125
+ const filtered = instr.filter((p) => p !== stale);
126
+ if (filtered.length === 0) {
127
+ delete merged.instructions;
128
+ }
129
+ else {
130
+ merged.instructions = filtered;
131
+ }
132
+ }
121
133
  return JSON.stringify(merged, null, 2) + '\n';
122
134
  }
123
135
  //# sourceMappingURL=opencode-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-config.js","sourceRoot":"","sources":["../../src/core/opencode-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-config.js","sourceRoot":"","sources":["../../src/core/opencode-config.ts"],"names":[],"mappings":"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"}
@@ -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 / adapter)
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;AAo4FH;;;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;AAwrHD,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"}