leaf-coding-agent 1.0.3 → 1.0.5

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 (33) hide show
  1. package/dist/core/agent-session.d.ts +16 -2
  2. package/dist/core/agent-session.d.ts.map +1 -1
  3. package/dist/core/agent-session.js +62 -13
  4. package/dist/core/agent-session.js.map +1 -1
  5. package/dist/core/export-html/index.d.ts.map +1 -1
  6. package/dist/core/export-html/index.js +3 -1
  7. package/dist/core/export-html/index.js.map +1 -1
  8. package/dist/core/extensions/runner.d.ts +4 -1
  9. package/dist/core/extensions/runner.d.ts.map +1 -1
  10. package/dist/core/extensions/runner.js +4 -1
  11. package/dist/core/extensions/runner.js.map +1 -1
  12. package/dist/core/system-prompt.d.ts +14 -0
  13. package/dist/core/system-prompt.d.ts.map +1 -1
  14. package/dist/core/system-prompt.js +43 -23
  15. package/dist/core/system-prompt.js.map +1 -1
  16. package/dist/core/tools/worker.d.ts +3 -0
  17. package/dist/core/tools/worker.d.ts.map +1 -1
  18. package/dist/core/tools/worker.js +47 -14
  19. package/dist/core/tools/worker.js.map +1 -1
  20. package/dist/core/worker-integration.d.ts +4 -7
  21. package/dist/core/worker-integration.d.ts.map +1 -1
  22. package/dist/core/worker-integration.js +62 -26
  23. package/dist/core/worker-integration.js.map +1 -1
  24. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  25. package/dist/modes/interactive/components/footer.js +4 -0
  26. package/dist/modes/interactive/components/footer.js.map +1 -1
  27. package/dist/modes/interactive/components/worker-selector.d.ts.map +1 -1
  28. package/dist/modes/interactive/components/worker-selector.js +18 -23
  29. package/dist/modes/interactive/components/worker-selector.js.map +1 -1
  30. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  31. package/dist/modes/interactive/interactive-mode.js +11 -14
  32. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  33. package/package.json +1 -1
@@ -1,52 +1,46 @@
1
- import { Container, SettingsList, Spacer, Text, } from "@looze/leaf-tui";
2
- import { getSettingsListTheme, theme } from "../theme/theme.js";
1
+ import { Container, SettingsList, } from "@looze/leaf-tui";
2
+ import { getSettingsListTheme } from "../theme/theme.js";
3
3
  import { DynamicBorder } from "./dynamic-border.js";
4
4
  export class WorkerSelectorComponent extends Container {
5
5
  settingsList;
6
6
  constructor(config, callbacks) {
7
7
  super();
8
- // 标题
9
- this.addChild(new Spacer(1));
10
- this.addChild(new Text(theme.bold(theme.fg("accent", "Worker 设置")), 1, 0));
11
- this.addChild(new Spacer(1));
12
- // 添加边框
13
- this.addChild(new DynamicBorder());
14
8
  const items = [
15
9
  {
16
10
  id: "worker-enabled",
17
- label: "Worker 模式",
18
- description: "启用或禁用 Worker 并行执行模式",
19
- currentValue: config.enabled ? "开启" : "关闭",
20
- values: ["开启", "关闭"],
11
+ label: "Worker Mode",
12
+ description: "Enable or disable Worker parallel execution mode",
13
+ currentValue: config.enabled ? "ON" : "OFF",
14
+ values: ["ON", "OFF"],
21
15
  },
22
16
  {
23
17
  id: "max-workers",
24
- label: "最大 Worker 数",
25
- description: "同时运行的最大 Worker 数量",
18
+ label: "Max Workers",
19
+ description: "Maximum number of concurrent Workers",
26
20
  currentValue: String(config.maxWorkers),
27
21
  values: ["1", "2", "4", "8", "16"],
28
22
  },
29
23
  {
30
24
  id: "communication-mode",
31
- label: "通信模式",
32
- description: "Worker 之间的通信方式",
25
+ label: "Communication",
26
+ description: "Communication method between Workers",
33
27
  currentValue: config.communicationMode,
34
28
  values: ["message", "socket", "shared"],
35
29
  },
36
30
  {
37
31
  id: "abort-all",
38
- label: "中止所有 Worker",
39
- description: "立即停止所有正在运行的 Worker",
40
- currentValue: "执行",
41
- values: ["执行"],
32
+ label: "Abort All",
33
+ description: "Stop all running Workers immediately",
34
+ currentValue: "Execute",
35
+ values: ["Execute"],
42
36
  },
43
37
  ];
44
- // 添加边框
38
+ // 上边框
45
39
  this.addChild(new DynamicBorder());
46
40
  this.settingsList = new SettingsList(items, 10, getSettingsListTheme(), (id, newValue) => {
47
41
  switch (id) {
48
42
  case "worker-enabled":
49
- callbacks.onEnabledChange(newValue === "开启");
43
+ callbacks.onEnabledChange(newValue === "ON");
50
44
  break;
51
45
  case "max-workers":
52
46
  callbacks.onMaxWorkersChange(parseInt(newValue, 10));
@@ -58,8 +52,9 @@ export class WorkerSelectorComponent extends Container {
58
52
  callbacks.onAbortAll();
59
53
  break;
60
54
  }
61
- }, callbacks.onCancel, { enableSearch: false });
55
+ }, callbacks.onCancel, { enableSearch: true });
62
56
  this.addChild(this.settingsList);
57
+ // 下边框
63
58
  this.addChild(new DynamicBorder());
64
59
  }
65
60
  getSettingsList() {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/worker-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tContainer,\n\ttype SettingItem,\n\tSettingsList,\n\tSpacer,\n\tText,\n} from \"@looze/leaf-tui\";\nimport { getSettingsListTheme, theme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\n\nexport interface WorkerConfig {\n\tenabled: boolean;\n\tmaxWorkers: number;\n\tcommunicationMode: \"socket\" | \"message\" | \"shared\";\n}\n\nexport interface WorkerSelectorCallbacks {\n\tonEnabledChange: (enabled: boolean) => void;\n\tonMaxWorkersChange: (maxWorkers: number) => void;\n\tonCommunicationModeChange: (mode: \"socket\" | \"message\" | \"shared\") => void;\n\tonAbortAll: () => void;\n\tonCancel: () => void;\n}\n\nexport class WorkerSelectorComponent extends Container {\n\tprivate settingsList: SettingsList;\n\n\tconstructor(\n\t\tconfig: WorkerConfig,\n\t\tcallbacks: WorkerSelectorCallbacks,\n\t) {\n\t\tsuper();\n\n\t\t// 标题\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.bold(theme.fg(\"accent\", \"Worker 设置\")), 1, 0));\n\t\tthis.addChild(new Spacer(1));\n\n\t\t// 添加边框\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"worker-enabled\",\n\t\t\t\tlabel: \"Worker 模式\",\n\t\t\t\tdescription: \"启用或禁用 Worker 并行执行模式\",\n\t\t\t\tcurrentValue: config.enabled ? \"开启\" : \"关闭\",\n\t\t\t\tvalues: [\"开启\", \"关闭\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"max-workers\",\n\t\t\t\tlabel: \"最大 Worker 数\",\n\t\t\t\tdescription: \"同时运行的最大 Worker 数量\",\n\t\t\t\tcurrentValue: String(config.maxWorkers),\n\t\t\t\tvalues: [\"1\", \"2\", \"4\", \"8\", \"16\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"communication-mode\",\n\t\t\t\tlabel: \"通信模式\",\n\t\t\t\tdescription: \"Worker 之间的通信方式\",\n\t\t\t\tcurrentValue: config.communicationMode,\n\t\t\t\tvalues: [\"message\", \"socket\", \"shared\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"abort-all\",\n\t\t\t\tlabel: \"中止所有 Worker\",\n\t\t\t\tdescription: \"立即停止所有正在运行的 Worker\",\n\t\t\t\tcurrentValue: \"执行\",\n\t\t\t\tvalues: [\"执行\"],\n\t\t\t},\n\t\t];\n\n\t\t// 添加边框\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\t10,\n\t\t\tgetSettingsListTheme(),\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"worker-enabled\":\n\t\t\t\t\t\tcallbacks.onEnabledChange(newValue === \"开启\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"max-workers\":\n\t\t\t\t\t\tcallbacks.onMaxWorkersChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"communication-mode\":\n\t\t\t\t\t\tcallbacks.onCommunicationModeChange(newValue as \"socket\" | \"message\" | \"shared\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"abort-all\":\n\t\t\t\t\t\tcallbacks.onAbortAll();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallbacks.onCancel,\n\t\t\t{ enableSearch: false },\n\t\t);\n\n\t\tthis.addChild(this.settingsList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tgetSettingsList(): SettingsList {\n\t\treturn this.settingsList;\n\t}\n}\n"]}
1
+ {"version":3,"file":"worker-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/worker-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,SAAS,EAET,YAAY,GAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAS,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAgBpD,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IAC7C,YAAY,CAAe;IAEnC,YACC,MAAoB,EACpB,SAAkC,EACjC;QACD,KAAK,EAAE,CAAC;QAER,MAAM,KAAK,GAAkB;YAC5B;gBACC,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,kDAAkD;gBAC/D,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;aACrB;YACD;gBACC,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,sCAAsC;gBACnD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;gBACvC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;aAClC;YACD;gBACC,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,sCAAsC;gBACnD,YAAY,EAAE,MAAM,CAAC,iBAAiB;gBACtC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACvC;YACD;gBACC,EAAE,EAAE,WAAW;gBACf,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,sCAAsC;gBACnD,YAAY,EAAE,SAAS;gBACvB,MAAM,EAAE,CAAC,SAAS,CAAC;aACnB;SACD,CAAC;QAEF,YAAM;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CACnC,KAAK,EACL,EAAE,EACF,oBAAoB,EAAE,EACtB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE,CAAC;gBACZ,KAAK,gBAAgB;oBACpB,SAAS,CAAC,eAAe,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;oBAC7C,MAAM;gBACP,KAAK,aAAa;oBACjB,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;oBACrD,MAAM;gBACP,KAAK,oBAAoB;oBACxB,SAAS,CAAC,yBAAyB,CAAC,QAA2C,CAAC,CAAC;oBACjF,MAAM;gBACP,KAAK,WAAW;oBACf,SAAS,CAAC,UAAU,EAAE,CAAC;oBACvB,MAAM;YACR,CAAC;QAAA,CACD,EACD,SAAS,CAAC,QAAQ,EAClB,EAAE,YAAY,EAAE,IAAI,EAAE,CACtB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjC,YAAM;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAAA,CACnC;IAED,eAAe,GAAiB;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC;IAAA,CACzB;CACD","sourcesContent":["import {\n\tContainer,\n\ttype SettingItem,\n\tSettingsList,\n\tSpacer,\n\tText,\n} from \"@looze/leaf-tui\";\nimport { getSettingsListTheme, theme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\n\nexport interface WorkerConfig {\n\tenabled: boolean;\n\tmaxWorkers: number;\n\tcommunicationMode: \"socket\" | \"message\" | \"shared\";\n}\n\nexport interface WorkerSelectorCallbacks {\n\tonEnabledChange: (enabled: boolean) => void;\n\tonMaxWorkersChange: (maxWorkers: number) => void;\n\tonCommunicationModeChange: (mode: \"socket\" | \"message\" | \"shared\") => void;\n\tonAbortAll: () => void;\n\tonCancel: () => void;\n}\n\nexport class WorkerSelectorComponent extends Container {\n\tprivate settingsList: SettingsList;\n\n\tconstructor(\n\t\tconfig: WorkerConfig,\n\t\tcallbacks: WorkerSelectorCallbacks,\n\t) {\n\t\tsuper();\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"worker-enabled\",\n\t\t\t\tlabel: \"Worker Mode\",\n\t\t\t\tdescription: \"Enable or disable Worker parallel execution mode\",\n\t\t\t\tcurrentValue: config.enabled ? \"ON\" : \"OFF\",\n\t\t\t\tvalues: [\"ON\", \"OFF\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"max-workers\",\n\t\t\t\tlabel: \"Max Workers\",\n\t\t\t\tdescription: \"Maximum number of concurrent Workers\",\n\t\t\t\tcurrentValue: String(config.maxWorkers),\n\t\t\t\tvalues: [\"1\", \"2\", \"4\", \"8\", \"16\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"communication-mode\",\n\t\t\t\tlabel: \"Communication\",\n\t\t\t\tdescription: \"Communication method between Workers\",\n\t\t\t\tcurrentValue: config.communicationMode,\n\t\t\t\tvalues: [\"message\", \"socket\", \"shared\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"abort-all\",\n\t\t\t\tlabel: \"Abort All\",\n\t\t\t\tdescription: \"Stop all running Workers immediately\",\n\t\t\t\tcurrentValue: \"Execute\",\n\t\t\t\tvalues: [\"Execute\"],\n\t\t\t},\n\t\t];\n\n\t\t// 上边框\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\t10,\n\t\t\tgetSettingsListTheme(),\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"worker-enabled\":\n\t\t\t\t\t\tcallbacks.onEnabledChange(newValue === \"ON\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"max-workers\":\n\t\t\t\t\t\tcallbacks.onMaxWorkersChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"communication-mode\":\n\t\t\t\t\t\tcallbacks.onCommunicationModeChange(newValue as \"socket\" | \"message\" | \"shared\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"abort-all\":\n\t\t\t\t\t\tcallbacks.onAbortAll();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallbacks.onCancel,\n\t\t\t{ enableSearch: true },\n\t\t);\n\n\t\tthis.addChild(this.settingsList);\n\t\t\n\t\t// 下边框\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tgetSettingsList(): SettingsList {\n\t\treturn this.settingsList;\n\t}\n}\n"]}