engine7 7.0.0 → 7.0.2

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 (185) hide show
  1. package/dist/cli.mjs +171 -13
  2. package/dist/engine-startup.mjs +60 -56
  3. package/dist/main.mjs +60 -56
  4. package/package.json +1 -1
  5. package/templates/skills/aim/SKILL.md +143 -0
  6. package/templates/skills/docx/LICENSE.txt +30 -0
  7. package/templates/skills/docx/SKILL.md +590 -0
  8. package/templates/skills/docx/scripts/__init__.py +1 -0
  9. package/templates/skills/docx/scripts/accept_changes.py +135 -0
  10. package/templates/skills/docx/scripts/comment.py +318 -0
  11. package/templates/skills/docx/scripts/office/helpers/__init__.py +0 -0
  12. package/templates/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
  13. package/templates/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  14. package/templates/skills/docx/scripts/office/pack.py +159 -0
  15. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  16. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  17. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  18. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  19. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  20. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  21. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  22. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  23. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  24. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  25. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  26. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  27. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  28. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  29. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  30. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  31. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  32. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  33. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  34. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  35. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  36. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  37. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  38. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  39. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  40. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  41. package/templates/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  42. package/templates/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  43. package/templates/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  44. package/templates/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  45. package/templates/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  46. package/templates/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  47. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  48. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  49. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  50. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  51. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  52. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  53. package/templates/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  54. package/templates/skills/docx/scripts/office/soffice.py +183 -0
  55. package/templates/skills/docx/scripts/office/unpack.py +132 -0
  56. package/templates/skills/docx/scripts/office/validate.py +111 -0
  57. package/templates/skills/docx/scripts/office/validators/__init__.py +15 -0
  58. package/templates/skills/docx/scripts/office/validators/base.py +847 -0
  59. package/templates/skills/docx/scripts/office/validators/docx.py +446 -0
  60. package/templates/skills/docx/scripts/office/validators/pptx.py +275 -0
  61. package/templates/skills/docx/scripts/office/validators/redlining.py +247 -0
  62. package/templates/skills/docx/scripts/templates/comments.xml +3 -0
  63. package/templates/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  64. package/templates/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  65. package/templates/skills/docx/scripts/templates/commentsIds.xml +3 -0
  66. package/templates/skills/docx/scripts/templates/people.xml +3 -0
  67. package/templates/skills/pdf/LICENSE.txt +30 -0
  68. package/templates/skills/pdf/SKILL.md +314 -0
  69. package/templates/skills/pdf/forms.md +294 -0
  70. package/templates/skills/pdf/reference.md +612 -0
  71. package/templates/skills/pptx/LICENSE.txt +30 -0
  72. package/templates/skills/pptx/SKILL.md +232 -0
  73. package/templates/skills/pptx/editing.md +205 -0
  74. package/templates/skills/pptx/pptxgenjs.md +420 -0
  75. package/templates/skills/pptx/scripts/__init__.py +0 -0
  76. package/templates/skills/pptx/scripts/add_slide.py +195 -0
  77. package/templates/skills/pptx/scripts/clean.py +286 -0
  78. package/templates/skills/pptx/scripts/office/helpers/__init__.py +0 -0
  79. package/templates/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
  80. package/templates/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  81. package/templates/skills/pptx/scripts/office/pack.py +159 -0
  82. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  83. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  84. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  85. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  86. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  87. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  88. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  89. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  90. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  91. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  92. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  93. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  94. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  95. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  96. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  97. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  98. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  99. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  100. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  101. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  102. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  103. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  104. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  105. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  106. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  107. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  108. package/templates/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  109. package/templates/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  110. package/templates/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  111. package/templates/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  112. package/templates/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  113. package/templates/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  114. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  115. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  116. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  117. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  118. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  119. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  120. package/templates/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  121. package/templates/skills/pptx/scripts/office/soffice.py +183 -0
  122. package/templates/skills/pptx/scripts/office/unpack.py +132 -0
  123. package/templates/skills/pptx/scripts/office/validate.py +111 -0
  124. package/templates/skills/pptx/scripts/office/validators/__init__.py +15 -0
  125. package/templates/skills/pptx/scripts/office/validators/base.py +847 -0
  126. package/templates/skills/pptx/scripts/office/validators/docx.py +446 -0
  127. package/templates/skills/pptx/scripts/office/validators/pptx.py +275 -0
  128. package/templates/skills/pptx/scripts/office/validators/redlining.py +247 -0
  129. package/templates/skills/pptx/scripts/thumbnail.py +289 -0
  130. package/templates/skills/sop/SKILL.md +243 -0
  131. package/templates/skills/xlsx/LICENSE.txt +30 -0
  132. package/templates/skills/xlsx/SKILL.md +292 -0
  133. package/templates/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  134. package/templates/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  135. package/templates/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  136. package/templates/skills/xlsx/scripts/office/pack.py +159 -0
  137. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  138. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  139. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  140. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  141. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  142. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  143. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  144. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  145. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  146. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  147. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  148. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  149. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  150. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  151. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  152. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  153. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  154. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  155. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  156. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  157. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  158. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  159. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  160. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  161. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  162. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  163. package/templates/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  164. package/templates/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  165. package/templates/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  166. package/templates/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  167. package/templates/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  168. package/templates/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  169. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  170. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  171. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  172. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  173. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  174. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  175. package/templates/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  176. package/templates/skills/xlsx/scripts/office/soffice.py +183 -0
  177. package/templates/skills/xlsx/scripts/office/unpack.py +132 -0
  178. package/templates/skills/xlsx/scripts/office/validate.py +111 -0
  179. package/templates/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  180. package/templates/skills/xlsx/scripts/office/validators/base.py +847 -0
  181. package/templates/skills/xlsx/scripts/office/validators/docx.py +446 -0
  182. package/templates/skills/xlsx/scripts/office/validators/pptx.py +275 -0
  183. package/templates/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  184. package/templates/skills/xlsx/scripts/recalc.py +184 -0
  185. package/templates/workspace/prompts/contacts.md +8 -22
package/dist/cli.mjs CHANGED
@@ -35,21 +35,25 @@ function parseArgs() {
35
35
  }
36
36
  function printHelp() {
37
37
  console.log(`
38
- engine7 init \u2014 \u521D\u59CB\u5316 agent \u5DE5\u4F5C\u76EE\u5F55
38
+ Engine 7 \u2014 Self-hosted AI agent engine
39
39
 
40
40
  \u7528\u6CD5:
41
- engine7 init --state-dir <path> [\u9009\u9879]
41
+ engine7 init --state-dir <path> [\u9009\u9879] \u521D\u59CB\u5316 agent \u5DE5\u4F5C\u76EE\u5F55
42
+ engine7 start [--config <path>] \u542F\u52A8 Engine
42
43
 
43
- \u9009\u9879:
44
+ init \u9009\u9879:
44
45
  --state-dir <path> agent \u6839\u76EE\u5F55\uFF08\u5FC5\u586B\uFF0C\u652F\u6301\u76F8\u5BF9\u8DEF\u5F84\uFF09
45
46
  --quick \u7528\u9ED8\u8BA4\u914D\u7F6E\u8DF3\u8FC7\u4EA4\u4E92
46
47
  --dry-run \u53EA\u663E\u793A\u4F1A\u521B\u5EFA\u4EC0\u4E48\uFF0C\u4E0D\u5B9E\u9645\u521B\u5EFA
47
- -h, --help \u663E\u793A\u5E2E\u52A9
48
+
49
+ start \u9009\u9879:
50
+ --config <path> config \u6587\u4EF6\u8DEF\u5F84\uFF08\u9ED8\u8BA4: configs/main7.json\uFF09
48
51
 
49
52
  \u793A\u4F8B:
50
53
  engine7 init --state-dir D:/my-agent
51
54
  engine7 init --state-dir ./my-agent --quick
52
- engine7 init --state-dir D:/my-agent --dry-run
55
+ engine7 start
56
+ engine7 start --config configs/xiaowen.json
53
57
  `);
54
58
  }
55
59
  function createReadline() {
@@ -203,9 +207,7 @@ function generateConfig(v) {
203
207
  },
204
208
  api: { port: v.apiPort },
205
209
  prompt: {
206
- mode: "custom",
207
- staticFiles: ["AGENTS.md", "USER.md", "MEMORY.md"],
208
- order: ["soul", "AGENTS.md", "using-tools", "USER.md", "MEMORY.md", "auto-memory-instructions"]
210
+ staticFiles: ["AGENTS.md", "USER.md", "MEMORY.md"]
209
211
  },
210
212
  compaction: {
211
213
  enabled: true,
@@ -214,6 +216,10 @@ function generateConfig(v) {
214
216
  minReductionRatio: 0.3,
215
217
  ruleBased: { enabled: true, essentialFields: [] },
216
218
  memoryFlush: { enabled: true, forceFlushTranscriptBytes: "2.0mb" }
219
+ },
220
+ skills: {
221
+ enabled: true,
222
+ path: "skills"
217
223
  }
218
224
  };
219
225
  const providerDefs = {
@@ -307,8 +313,8 @@ function buildDirTree(v) {
307
313
  description: `Engine 7 agent: ${v.agentName}`
308
314
  }, null, 2) + "\n"
309
315
  },
310
- // 启动脚本
311
- {
316
+ // 启动脚本(根据 OS 生成)
317
+ ...process.platform === "win32" ? [{
312
318
  path: path.join(d, "start.cmd"),
313
319
  type: "file",
314
320
  content: `@echo off
@@ -327,7 +333,12 @@ echo [start] Starting Engine 7...
327
333
  echo [start] Config: configs\\main7.json
328
334
  echo.
329
335
 
330
- node node_modules/engine7/dist/main.mjs --engine-config configs/main7.json
336
+ rem Auto-detect engine7 path (local > global)
337
+ set ENGINE7_BIN=node_modules\\engine7\\dist\\main.mjs
338
+ if not exist "%ENGINE7_BIN%" (
339
+ for /f "delims=" %%i in ('npm root -g') do set ENGINE7_BIN=%%i\\engine7\\dist\\main.mjs
340
+ )
341
+ node "%ENGINE7_BIN%" --engine-config configs/main7.json
331
342
 
332
343
  if %ERRORLEVEL% NEQ 0 (
333
344
  echo.
@@ -335,7 +346,36 @@ if %ERRORLEVEL% NEQ 0 (
335
346
  pause
336
347
  )
337
348
  `
338
- }
349
+ }] : [{
350
+ path: path.join(d, "start.sh"),
351
+ type: "file",
352
+ content: `#!/bin/bash
353
+ # Engine 7 startup script
354
+ # Auto-generated by engine7 init
355
+
356
+ cd "$(dirname "$0")"
357
+
358
+ # Kill existing engine for main7.json
359
+ PIDS=$(pgrep -f "main7.json.*dist/main.mjs" 2>/dev/null)
360
+ if [ -n "$PIDS" ]; then
361
+ echo "[start] Killing existing engine (PID: $PIDS)..."
362
+ echo "$PIDS" | xargs kill -9 2>/dev/null
363
+ sleep 2
364
+ fi
365
+
366
+ echo "[start] Starting Engine 7..."
367
+ echo "[start] Config: configs/main7.json"
368
+ echo ""
369
+
370
+ # Auto-detect engine7 path (local > global)
371
+ if [ -f "node_modules/engine7/dist/main.mjs" ]; then
372
+ ENGINE7_BIN="node_modules/engine7/dist/main.mjs"
373
+ else
374
+ ENGINE7_BIN="$(npm root -g)/engine7/dist/main.mjs"
375
+ fi
376
+ node "$ENGINE7_BIN" --engine-config configs/main7.json
377
+ `
378
+ }]
339
379
  ];
340
380
  }
341
381
  function readTemplate(relativePath) {
@@ -371,6 +411,84 @@ function execute(entries) {
371
411
  }
372
412
  }
373
413
  async function main() {
414
+ const args = process.argv.slice(2);
415
+ const subcommand = args[0];
416
+ if (!subcommand) {
417
+ printHelp();
418
+ process.exit(0);
419
+ }
420
+ if (subcommand === "--help" || subcommand === "-h") {
421
+ printHelp();
422
+ process.exit(0);
423
+ }
424
+ if (subcommand === "start") {
425
+ let configPath2 = "";
426
+ for (let i = 1; i < args.length; i++) {
427
+ if (args[i] === "--config" && args[i + 1]) {
428
+ configPath2 = args[++i];
429
+ } else if (args[i] === "--help" || args[i] === "-h") {
430
+ console.log(`
431
+ engine7 start \u2014 \u542F\u52A8 Engine
432
+
433
+ \u7528\u6CD5:
434
+ engine7 start [--config <path>]
435
+
436
+ \u9009\u9879:
437
+ --config <path> config \u6587\u4EF6\u8DEF\u5F84\uFF08\u9ED8\u8BA4: configs/main7.json\uFF09
438
+ -h, --help \u663E\u793A\u5E2E\u52A9
439
+ `);
440
+ process.exit(0);
441
+ }
442
+ }
443
+ if (!configPath2) {
444
+ const defaultCfg = path.join("configs", "main7.json");
445
+ if (fs.existsSync(defaultCfg)) {
446
+ configPath2 = defaultCfg;
447
+ } else {
448
+ console.error("\u274C \u627E\u4E0D\u5230 config \u6587\u4EF6");
449
+ console.error(" \u7528\u6CD5: engine7 start --config <path>");
450
+ console.error(" \u6216\u5728\u5F53\u524D\u76EE\u5F55\u521B\u5EFA configs/main7.json");
451
+ process.exit(1);
452
+ }
453
+ }
454
+ const { execSync, spawn } = await import("node:child_process");
455
+ let enginePath;
456
+ const localPath = path.join("node_modules", "engine7", "dist", "main.mjs");
457
+ if (fs.existsSync(localPath)) {
458
+ enginePath = localPath;
459
+ } else {
460
+ const globalRoot = execSync("npm root -g", { encoding: "utf-8" }).trim();
461
+ enginePath = path.join(globalRoot, "engine7", "dist", "main.mjs");
462
+ if (!fs.existsSync(enginePath)) {
463
+ console.error("\u274C \u627E\u4E0D\u5230 engine7 \u5B89\u88C5");
464
+ process.exit(1);
465
+ }
466
+ }
467
+ console.log(`\u{1F680} engine7 start`);
468
+ console.log(` config: ${configPath2}`);
469
+ console.log(` engine: ${enginePath}`);
470
+ const configName = path.basename(configPath2);
471
+ try {
472
+ if (process.platform === "win32") {
473
+ execSync(`powershell -Command "Get-WmiObject Win32_Process | Where-Object { $_.Name -eq 'node.exe' -and $_.CommandLine -like '*${configName}*' -and $_.CommandLine -like '*dist*' } | ForEach-Object { Write-Host '[start] Killing PID' $_.ProcessId; Stop-Process -Id $_.ProcessId -Force }"`, { stdio: "inherit" });
474
+ } else {
475
+ const pids = execSync(`pgrep -f "${configName}.*dist/main.mjs" 2>/dev/null || true`, { encoding: "utf-8" }).trim();
476
+ if (pids) {
477
+ console.log(`[start] Killing existing engine (PID: ${pids})...`);
478
+ execSync(`echo "${pids}" | xargs kill -9 2>/dev/null || true`);
479
+ await new Promise((r) => setTimeout(r, 2e3));
480
+ }
481
+ }
482
+ } catch {
483
+ }
484
+ console.log("");
485
+ const child = spawn("node", [enginePath, "--engine-config", configPath2], {
486
+ stdio: "inherit",
487
+ shell: false
488
+ });
489
+ child.on("exit", (code) => process.exit(code ?? 1));
490
+ return;
491
+ }
374
492
  const opts = parseArgs();
375
493
  console.log(`
376
494
  \u{1F680} engine7 init`);
@@ -403,18 +521,58 @@ async function main() {
403
521
  });
404
522
  if (opts.dryRun) {
405
523
  dryRun(tree);
524
+ const skillsSrc = findTemplateDir("skills");
525
+ if (skillsSrc) {
526
+ const skills = fs.readdirSync(skillsSrc);
527
+ for (const s of skills) {
528
+ console.log(` \u{1F4C1} ${path.join(opts.stateDir, "workspace", "skills", s)}`);
529
+ }
530
+ }
406
531
  } else {
407
532
  console.log("\n\u{1F4E6} \u6B63\u5728\u521B\u5EFA\u76EE\u5F55\u548C\u6587\u4EF6...\n");
408
533
  execute(tree);
534
+ const skillsSrc = findTemplateDir("skills");
535
+ if (skillsSrc) {
536
+ const skillsDest = path.join(opts.stateDir, "workspace", "skills");
537
+ fs.mkdirSync(skillsDest, { recursive: true });
538
+ const skills = fs.readdirSync(skillsSrc);
539
+ for (const s of skills) {
540
+ copyDirRecursive(path.join(skillsSrc, s), path.join(skillsDest, s));
541
+ console.log(` \u{1F4E6} skill: ${s}`);
542
+ }
543
+ }
409
544
  console.log(`
410
545
  \u2705 \u521D\u59CB\u5316\u5B8C\u6210\uFF01
411
546
  `);
412
547
  console.log(`\u4E0B\u4E00\u6B65\uFF1A`);
413
548
  console.log(` 1. \u68C0\u67E5\u5E76\u4FEE\u6539 ${opts.stateDir}/configs/main7.json`);
414
- console.log(` 2. \u542F\u52A8 Engine: start.cmd ${configPath}`);
549
+ console.log(` 2. \u542F\u52A8 Engine: cd ${opts.stateDir} && engine7 start`);
415
550
  console.log(` 3. \u67E5\u770B workspace: ${path.join(opts.stateDir, "workspace")}`);
416
551
  }
417
552
  }
553
+ function copyDirRecursive(src, dest) {
554
+ fs.mkdirSync(dest, { recursive: true });
555
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
556
+ const srcPath = path.join(src, entry.name);
557
+ const destPath = path.join(dest, entry.name);
558
+ if (entry.isDirectory()) {
559
+ copyDirRecursive(srcPath, destPath);
560
+ } else {
561
+ fs.copyFileSync(srcPath, destPath);
562
+ }
563
+ }
564
+ }
565
+ function findTemplateDir(name) {
566
+ const candidates = [
567
+ path.join(__dirname, "..", "templates", name),
568
+ path.join(__dirname, "..", "..", "templates", name),
569
+ path.join(process.cwd(), "templates", name)
570
+ ];
571
+ for (const p of candidates) {
572
+ if (fs.existsSync(p)) return p;
573
+ }
574
+ return null;
575
+ }
418
576
  main().catch((err) => {
419
577
  console.error(`
420
578
  \u274C \u5931\u8D25: ${err.message}`);
@@ -3527,6 +3527,46 @@ var init_loader = __esm({
3527
3527
  }
3528
3528
  });
3529
3529
 
3530
+ // src/config/live.ts
3531
+ var LiveConfigClass, liveConfig;
3532
+ var init_live = __esm({
3533
+ "src/config/live.ts"() {
3534
+ "use strict";
3535
+ LiveConfigClass = class {
3536
+ current = null;
3537
+ /** 启动时注入(替代 registry.config = config) */
3538
+ init(config) {
3539
+ this.current = config;
3540
+ }
3541
+ /** 取整个 config 对象(只读引用,不要缓存) */
3542
+ all() {
3543
+ if (!this.current) {
3544
+ throw new Error("[liveConfig] not initialized \u2014 call liveConfig.init() first");
3545
+ }
3546
+ return this.current;
3547
+ }
3548
+ /** 安全取子段('services.voice-chat.start' → current.services.voice-chat.start) */
3549
+ get(dotPath) {
3550
+ if (!this.current) return void 0;
3551
+ return dotPath.split(".").reduce((acc, key) => acc == null ? void 0 : acc[key], this.current);
3552
+ }
3553
+ /** reload 时原地更新(Object.assign 保持引用不变) */
3554
+ assign(newConfig) {
3555
+ if (!this.current) {
3556
+ this.current = newConfig;
3557
+ return;
3558
+ }
3559
+ Object.assign(this.current, newConfig);
3560
+ }
3561
+ /** 是否已初始化 */
3562
+ isReady() {
3563
+ return this.current !== null;
3564
+ }
3565
+ };
3566
+ liveConfig = new LiveConfigClass();
3567
+ }
3568
+ });
3569
+
3530
3570
  // src/memory/shims/memory-core-host-engine-foundation.ts
3531
3571
  import path5 from "node:path";
3532
3572
  function resolveAgentDir(cfg, agentId) {
@@ -5760,13 +5800,8 @@ __export(config_exports, {
5760
5800
  isAutoDreamEnabled: () => isAutoDreamEnabled,
5761
5801
  setAutoDreamConfig: () => setAutoDreamConfig
5762
5802
  });
5763
- import fsSync from "node:fs";
5764
5803
  function dlog(msg2) {
5765
- try {
5766
- fsSync.appendFileSync(DEBUG_LOG, `[${(/* @__PURE__ */ new Date()).toISOString()}] ${msg2}
5767
- `);
5768
- } catch {
5769
- }
5804
+ if (process.env.AUTODREAM_DEBUG) console.log(`[autoDream] ${msg2}`);
5770
5805
  }
5771
5806
  function setAutoDreamConfig(config) {
5772
5807
  _config = config;
@@ -5803,11 +5838,10 @@ function getMaxEntrypointLines() {
5803
5838
  if (typeof maxScan === "number" && maxScan > 200) return maxScan;
5804
5839
  return void 0;
5805
5840
  }
5806
- var DEBUG_LOG, _config, DEFAULTS;
5841
+ var _config, DEFAULTS;
5807
5842
  var init_config2 = __esm({
5808
5843
  "src/memory/autoDream/config.ts"() {
5809
5844
  "use strict";
5810
- DEBUG_LOG = "C:\\Users\\24045\\.openclaw\\logs\\autoDream-debug.log";
5811
5845
  _config = null;
5812
5846
  DEFAULTS = {
5813
5847
  minHours: 24,
@@ -6002,13 +6036,8 @@ __export(autoDream_exports, {
6002
6036
  executeAutoDream: () => executeAutoDream,
6003
6037
  initAutoDream: () => initAutoDream
6004
6038
  });
6005
- import fsSync2 from "node:fs";
6006
6039
  function dlog2(msg2) {
6007
- try {
6008
- fsSync2.appendFileSync(DEBUG_LOG2, `[${(/* @__PURE__ */ new Date()).toISOString()}] ${msg2}
6009
- `);
6010
- } catch {
6011
- }
6040
+ if (process.env.AUTODREAM_DEBUG) console.log(`[autoDream] ${msg2}`);
6012
6041
  }
6013
6042
  function initAutoDream(deps) {
6014
6043
  _deps2 = deps;
@@ -6130,7 +6159,7 @@ stack: ${err.stack ?? "(no stack)"}`);
6130
6159
  return { fired: false, reason: `fork failed: ${err.message}` };
6131
6160
  }
6132
6161
  }
6133
- var DEBUG_LOG2, SESSION_SCAN_INTERVAL_MS, _deps2, lastSessionScanAt;
6162
+ var SESSION_SCAN_INTERVAL_MS, _deps2, lastSessionScanAt;
6134
6163
  var init_autoDream = __esm({
6135
6164
  "src/memory/autoDream/autoDream.ts"() {
6136
6165
  "use strict";
@@ -6138,7 +6167,6 @@ var init_autoDream = __esm({
6138
6167
  init_config2();
6139
6168
  init_consolidationLock();
6140
6169
  init_consolidationPrompt();
6141
- DEBUG_LOG2 = "C:\\Users\\24045\\.openclaw\\logs\\autoDream-debug.log";
6142
6170
  SESSION_SCAN_INTERVAL_MS = 10 * 60 * 1e3;
6143
6171
  _deps2 = null;
6144
6172
  lastSessionScanAt = 0;
@@ -11434,10 +11462,12 @@ var init_wx_query = __esm({
11434
11462
  "src/tools/wechat/wx-query.ts"() {
11435
11463
  "use strict";
11436
11464
  init_registry();
11465
+ init_live();
11437
11466
  SCRIPT = "C:/Users/24045/.openclaw/engine/src/tools/wechat/wx_query.py";
11438
11467
  PYTHON = "python3";
11439
11468
  registry.register({
11440
11469
  name: "wx_query",
11470
+ isEnabled: () => !!liveConfig?.agents?.defaults?.privateTools,
11441
11471
  description: getDescription(),
11442
11472
  schema: {
11443
11473
  type: "object",
@@ -20130,12 +20160,12 @@ var init_hash2 = __esm({
20130
20160
 
20131
20161
  // src/memory/host/internal.ts
20132
20162
  import crypto8 from "node:crypto";
20133
- import fsSync3 from "node:fs";
20163
+ import fsSync from "node:fs";
20134
20164
  import fs44 from "node:fs/promises";
20135
20165
  import path46 from "node:path";
20136
20166
  function ensureDir(dir) {
20137
20167
  try {
20138
- fsSync3.mkdirSync(dir, { recursive: true });
20168
+ fsSync.mkdirSync(dir, { recursive: true });
20139
20169
  } catch {
20140
20170
  }
20141
20171
  return dir;
@@ -21412,7 +21442,7 @@ var init_provider_adapter_registration = __esm({
21412
21442
  });
21413
21443
 
21414
21444
  // src/memory/tools/memory/provider-adapters.ts
21415
- import fsSync4 from "node:fs";
21445
+ import fsSync2 from "node:fs";
21416
21446
  function canAutoSelectLocal(modelPath) {
21417
21447
  const trimmed = modelPath?.trim();
21418
21448
  if (!trimmed) {
@@ -21423,7 +21453,7 @@ function canAutoSelectLocal(modelPath) {
21423
21453
  }
21424
21454
  const resolved = resolveUserPath(trimmed);
21425
21455
  try {
21426
- return fsSync4.statSync(resolved).isFile();
21456
+ return fsSync2.statSync(resolved).isFile();
21427
21457
  } catch {
21428
21458
  return false;
21429
21459
  }
@@ -24346,7 +24376,7 @@ var init_watch_settle = __esm({
24346
24376
 
24347
24377
  // src/memory/tools/memory/manager-sync-ops.ts
24348
24378
  import { randomUUID as randomUUID10 } from "node:crypto";
24349
- import fsSync5 from "node:fs";
24379
+ import fsSync3 from "node:fs";
24350
24380
  import fs49 from "node:fs/promises";
24351
24381
  import path51 from "node:path";
24352
24382
  function isSyncDisabled(cfg) {
@@ -24649,7 +24679,7 @@ var init_manager_sync_ops = __esm({
24649
24679
  const additionalPaths = normalizeExtraMemoryPaths(this.workspaceDir, this.settings.extraPaths);
24650
24680
  for (const entry of additionalPaths) {
24651
24681
  try {
24652
- const stat8 = fsSync5.lstatSync(entry);
24682
+ const stat8 = fsSync3.lstatSync(entry);
24653
24683
  if (stat8.isSymbolicLink()) {
24654
24684
  continue;
24655
24685
  }
@@ -29638,40 +29668,7 @@ function getActiveQueryEngine(sessionId) {
29638
29668
 
29639
29669
  // src/engine-startup.ts
29640
29670
  init_loader();
29641
-
29642
- // src/config/live.ts
29643
- var LiveConfigClass = class {
29644
- current = null;
29645
- /** 启动时注入(替代 registry.config = config) */
29646
- init(config) {
29647
- this.current = config;
29648
- }
29649
- /** 取整个 config 对象(只读引用,不要缓存) */
29650
- all() {
29651
- if (!this.current) {
29652
- throw new Error("[liveConfig] not initialized \u2014 call liveConfig.init() first");
29653
- }
29654
- return this.current;
29655
- }
29656
- /** 安全取子段('services.voice-chat.start' → current.services.voice-chat.start) */
29657
- get(dotPath) {
29658
- if (!this.current) return void 0;
29659
- return dotPath.split(".").reduce((acc, key) => acc == null ? void 0 : acc[key], this.current);
29660
- }
29661
- /** reload 时原地更新(Object.assign 保持引用不变) */
29662
- assign(newConfig) {
29663
- if (!this.current) {
29664
- this.current = newConfig;
29665
- return;
29666
- }
29667
- Object.assign(this.current, newConfig);
29668
- }
29669
- /** 是否已初始化 */
29670
- isReady() {
29671
- return this.current !== null;
29672
- }
29673
- };
29674
- var liveConfig = new LiveConfigClass();
29671
+ init_live();
29675
29672
 
29676
29673
  // src/services/withRetry.ts
29677
29674
  var DEFAULT_MAX_RETRIES = 10;
@@ -40822,6 +40819,7 @@ ${rawOutput}
40822
40819
  }
40823
40820
 
40824
40821
  // src/tools/msg-send.ts
40822
+ init_live();
40825
40823
  init_registry();
40826
40824
  function getConfig() {
40827
40825
  return liveConfig.all();
@@ -40965,6 +40963,7 @@ Examples:
40965
40963
 
40966
40964
  // src/tools/msg-husband.ts
40967
40965
  init_registry();
40966
+ init_live();
40968
40967
  import fs26 from "node:fs";
40969
40968
  import path26 from "node:path";
40970
40969
  function getHusbandFeishuId(workspace) {
@@ -40985,6 +40984,7 @@ var FALLBACK_IDS = [
40985
40984
  ];
40986
40985
  registry.register({
40987
40986
  name: "msg_husband",
40987
+ isEnabled: () => !!liveConfig?.agents?.defaults?.privateTools,
40988
40988
  description: `\u7ED9\u7FC0\u54E5\uFF08\u8001\u516C\uFF09\u53D1\u98DE\u4E66\u79C1\u4FE1\u3002\u53C2\u6570\u5199\u6B7B\uFF1Ato=\u7FC0\u54E5\u98DE\u4E66open_id, source=feishu\u3002\u53EA\u9700\u4F20 content\u3002
40989
40989
 
40990
40990
  Parameters:
@@ -41167,6 +41167,7 @@ Examples:
41167
41167
  });
41168
41168
 
41169
41169
  // src/tools/my-eyes.ts
41170
+ init_live();
41170
41171
  init_registry();
41171
41172
  import * as fs27 from "node:fs";
41172
41173
  import * as path27 from "node:path";
@@ -41246,6 +41247,7 @@ registry.register({
41246
41247
  });
41247
41248
 
41248
41249
  // src/tools/my-voice.ts
41250
+ init_live();
41249
41251
  init_registry();
41250
41252
  import { execFile } from "node:child_process";
41251
41253
  import { promisify } from "node:util";
@@ -41459,6 +41461,7 @@ registry.register({
41459
41461
  });
41460
41462
 
41461
41463
  // src/tools/my-selfie.ts
41464
+ init_live();
41462
41465
  init_registry();
41463
41466
  import * as fs29 from "node:fs";
41464
41467
  import * as path29 from "node:path";
@@ -41751,6 +41754,7 @@ registry.register({
41751
41754
 
41752
41755
  // src/tools/service.ts
41753
41756
  init_registry();
41757
+ init_live();
41754
41758
  import { exec as exec3, spawn as spawn6 } from "node:child_process";
41755
41759
  import { promisify as promisify2 } from "node:util";
41756
41760
  var execAsync = promisify2(exec3);