skyloom 1.14.4 → 1.14.6

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 (56) hide show
  1. package/dist/cli/loom.d.ts +2 -0
  2. package/dist/cli/loom.d.ts.map +1 -1
  3. package/dist/cli/loom.js +76 -7
  4. package/dist/cli/loom.js.map +1 -1
  5. package/dist/cli/main.js +12 -3
  6. package/dist/cli/main.js.map +1 -1
  7. package/dist/core/agent/guard.d.ts.map +1 -1
  8. package/dist/core/agent/guard.js +1 -2
  9. package/dist/core/agent/guard.js.map +1 -1
  10. package/dist/core/agent.d.ts.map +1 -1
  11. package/dist/core/agent.js +12 -9
  12. package/dist/core/agent.js.map +1 -1
  13. package/dist/core/agent_helpers.d.ts +3 -3
  14. package/dist/core/agent_helpers.d.ts.map +1 -1
  15. package/dist/core/agent_helpers.js +7 -3
  16. package/dist/core/agent_helpers.js.map +1 -1
  17. package/dist/core/config.d.ts.map +1 -1
  18. package/dist/core/config.js +8 -2
  19. package/dist/core/config.js.map +1 -1
  20. package/dist/core/memory.d.ts.map +1 -1
  21. package/dist/core/memory.js +12 -2
  22. package/dist/core/memory.js.map +1 -1
  23. package/dist/core/model_config.d.ts.map +1 -1
  24. package/dist/core/model_config.js +7 -2
  25. package/dist/core/model_config.js.map +1 -1
  26. package/dist/plugins/loader.d.ts +7 -0
  27. package/dist/plugins/loader.d.ts.map +1 -1
  28. package/dist/plugins/loader.js +27 -0
  29. package/dist/plugins/loader.js.map +1 -1
  30. package/dist/tools/builtin.d.ts +6 -0
  31. package/dist/tools/builtin.d.ts.map +1 -1
  32. package/dist/tools/builtin.js +160 -17
  33. package/dist/tools/builtin.js.map +1 -1
  34. package/dist/tools/computer.d.ts.map +1 -1
  35. package/dist/tools/computer.js +18 -7
  36. package/dist/tools/computer.js.map +1 -1
  37. package/dist/web/server.d.ts.map +1 -1
  38. package/dist/web/server.js +35 -2
  39. package/dist/web/server.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/cli/loom.ts +66 -7
  42. package/src/cli/main.ts +6 -3
  43. package/src/core/agent/guard.ts +1 -2
  44. package/src/core/agent.ts +12 -8
  45. package/src/core/agent_helpers.ts +7 -3
  46. package/src/core/config.ts +5 -2
  47. package/src/core/memory.ts +9 -2
  48. package/src/core/model_config.ts +4 -2
  49. package/src/plugins/loader.ts +91 -66
  50. package/src/tools/builtin.ts +119 -16
  51. package/src/tools/computer.ts +279 -269
  52. package/src/web/server.ts +35 -2
  53. package/tests/fence_plugin.test.ts +52 -0
  54. package/tests/loom.test.ts +89 -0
  55. package/tests/ssrf.test.ts +38 -0
  56. package/tsconfig.json +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/tools/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/tools/builtin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAC;AASjE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAqPlE"}
1
+ {"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAC;AASjE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CA+PlE"}
@@ -210,10 +210,10 @@ function registerComputerTools(registry) {
210
210
  }
211
211
  else {
212
212
  if (platform === 'win32') {
213
- (0, child_process_1.execSync)(`taskkill /F /IM "${target}" /T`, { timeout: 10000 });
213
+ (0, child_process_1.execFileSync)('taskkill', ['/F', '/IM', target, '/T'], { timeout: 10000 });
214
214
  }
215
215
  else {
216
- (0, child_process_1.execSync)(`pkill -f "${target}"`, { timeout: 10000 });
216
+ (0, child_process_1.execFileSync)('pkill', ['-f', target], { timeout: 10000 });
217
217
  }
218
218
  return `Killed process ${target}`;
219
219
  }
@@ -241,7 +241,7 @@ function registerComputerTools(registry) {
241
241
  let pm;
242
242
  const has = (cmd) => {
243
243
  try {
244
- (0, child_process_1.execSync)(`${cmd} --version`, { stdio: 'ignore' });
244
+ (0, child_process_1.execFileSync)(cmd, ['--version'], { stdio: 'ignore' });
245
245
  return true;
246
246
  }
247
247
  catch {
@@ -284,7 +284,11 @@ function registerComputerTools(registry) {
284
284
  if (!cmdMap || !cmdMap[action])
285
285
  return `Unsupported action '${action}' for ${pm}`;
286
286
  try {
287
- const out = (0, child_process_1.execSync)(`${pm} ${cmdMap[action]} "${name}"`, { encoding: 'utf-8', timeout: 120000 });
287
+ // cmdMap entries may carry flags (e.g. 'install -y', '-S --noconfirm');
288
+ // split them into argv so the package name stays a single argument with
289
+ // no shell interpretation.
290
+ const pmArgs = cmdMap[action].split(/\s+/).filter(Boolean);
291
+ const out = (0, child_process_1.execFileSync)(pm, [...pmArgs, name], { encoding: 'utf-8', timeout: 120000 });
288
292
  return truncate(out, MAX_OUT);
289
293
  }
290
294
  catch (e) {
@@ -306,13 +310,20 @@ function registerComputerTools(registry) {
306
310
  const name = String(params.name || '').trim();
307
311
  if (!action || !name)
308
312
  return 'Error: action and name are required';
313
+ const allowed = ['start', 'stop', 'restart', 'status'];
314
+ if (!allowed.includes(action))
315
+ return `Unsupported action '${action}' (use: ${allowed.join('/')})`;
309
316
  try {
310
317
  if (platform === 'win32') {
311
- const out = (0, child_process_1.execSync)(`sc ${action} "${name}"`, { encoding: 'utf-8', timeout: 30000 });
318
+ const out = (0, child_process_1.execFileSync)('sc', [action, name], { encoding: 'utf-8', timeout: 30000 });
312
319
  return truncate(out, MAX_OUT);
313
320
  }
314
- else {
315
- const out = (0, child_process_1.execSync)(`systemctl ${action} "${name}" 2>/dev/null || service "${name}" ${action}`, { encoding: 'utf-8', timeout: 30000 });
321
+ try {
322
+ const out = (0, child_process_1.execFileSync)('systemctl', [action, name], { encoding: 'utf-8', timeout: 30000 });
323
+ return truncate(out, MAX_OUT);
324
+ }
325
+ catch {
326
+ const out = (0, child_process_1.execFileSync)('service', [name, action], { encoding: 'utf-8', timeout: 30000 });
316
327
  return truncate(out, MAX_OUT);
317
328
  }
318
329
  }
@@ -1 +1 @@
1
- {"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBH,sDA+PC;AA/QD,iDAA8D;AAC9D,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAG7B,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAK,GAAG,OAAO;IAC7C,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,kBAAkB,IAAI,CAAC,MAAM,GAAG,KAAK,cAAc,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,QAAsB;IAC1D,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE/B,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+CAA+C;QAC5D,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1F;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI;gBAAE,OAAO,6BAA6B,CAAC;YAEhD,IAAI,CAAC;gBACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACzB,IAAA,wBAAQ,EAAC,aAAa,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnD,OAAO,YAAY,IAAI,EAAE,CAAC;gBAC5B,CAAC;qBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,IAAA,wBAAQ,EAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACvE,OAAO,YAAY,IAAI,EAAE,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,IAAI,CAAC;wBACH,IAAA,wBAAQ,EAAC,GAAG,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAW,EAAE,CAAC,CAAC;oBAC/D,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAA,wBAAQ,EAAC,aAAa,IAAI,oBAAoB,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAW,EAAE,CAAC,CAAC;oBAC/F,CAAC;oBACD,OAAO,YAAY,IAAI,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,mBAAmB,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mDAAmD;QAChE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;SACvF;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM;gBAAE,OAAO,2BAA2B,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,0BAA0B,QAAQ,EAAE,CAAC;YAE1E,IAAI,CAAC;gBACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACzB,IAAA,wBAAQ,EAAC,aAAa,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,IAAA,wBAAQ,EAAC,SAAS,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,IAAA,wBAAQ,EAAC,aAAa,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,UAAU,QAAQ,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,iBAAiB,QAAQ,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACxD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5E;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG;gBAAE,OAAO,wBAAwB,CAAC;YAC1C,IAAI,CAAC;gBACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACzB,IAAA,wBAAQ,EAAC,aAAa,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,IAAA,wBAAQ,EAAC,SAAS,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,IAAA,wBAAQ,EAAC,aAAa,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,UAAU,GAAG,aAAa,CAAC;YACpC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,0BAA0B,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,iDAAiD;QAC9D,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,KAAK,GAAG;gBACZ,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBAClC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC5B,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE;gBACjE,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;gBAChI,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBAClD,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5D,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;gBACjC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACvB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;aACvB,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IAEH,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yBAAyB;QACtC,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACpF,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,2CAA2C,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACzG,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,4BAA4B,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,gCAAgC;QAC7C,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9F;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM;gBAAE,OAAO,2BAA2B,CAAC;YAEhD,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1C,OAAO,kBAAkB,MAAM,EAAE,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;wBACzB,IAAA,4BAAY,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC5E,CAAC;yBAAM,CAAC;wBACN,IAAA,4BAAY,EAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,kBAAkB,MAAM,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,iBAAiB,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;QACD,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,mDAAmD;QAChE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9G,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9E;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;gBAAE,OAAO,qCAAqC,CAAC;YAEnE,8BAA8B;YAC9B,IAAI,EAAU,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC1B,IAAI,CAAC;oBAAC,IAAA,4BAAY,EAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC;gBAC3E,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YACzB,CAAC,CAAC;YAEF,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,GAAG,CAAC,QAAQ,CAAC;oBAAE,EAAE,GAAG,QAAQ,CAAC;qBAC5B,IAAI,GAAG,CAAC,OAAO,CAAC;oBAAE,EAAE,GAAG,OAAO,CAAC;qBAC/B,IAAI,GAAG,CAAC,OAAO,CAAC;oBAAE,EAAE,GAAG,OAAO,CAAC;;oBAC/B,OAAO,+CAA+C,CAAC;YAC9D,CAAC;iBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,CAAC,KAAK,CAAC;oBAAE,EAAE,GAAG,KAAK,CAAC;qBACtB,IAAI,GAAG,CAAC,KAAK,CAAC;oBAAE,EAAE,GAAG,KAAK,CAAC;qBAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC;oBAAE,EAAE,GAAG,QAAQ,CAAC;;oBACjC,OAAO,2CAA2C,CAAC;YAC1D,CAAC;YAED,MAAM,QAAQ,GAA2C;gBACvD,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC5F,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC1F,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC3F,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC1F,GAAG,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC/F,GAAG,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC/F,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE;aAC/G,CAAC;YAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO,uBAAuB,MAAM,SAAS,EAAE,EAAE,CAAC;YAElF,IAAI,CAAC;gBACH,wEAAwE;gBACxE,wEAAwE;gBACxE,2BAA2B;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,IAAA,4BAAY,EAAC,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACxF,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,4DAA4D;QACzE,UAAU,EAAE;YACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,EAAE;YACvG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9E;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;gBAAE,OAAO,qCAAqC,CAAC;YAEnE,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,uBAAuB,MAAM,WAAW,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACnG,IAAI,CAAC;gBACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,IAAA,4BAAY,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtF,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChC,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAA,4BAAY,EAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC7F,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,GAAG,IAAA,4BAAY,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC3F,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqEH,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqEH,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDvE"}
@@ -64,8 +64,35 @@ const PIGMENTS = {
64
64
  ────────────────────────────────────────────── */
65
65
  async function startWebServer(port = 3000) {
66
66
  const ctx = (0, factory_1.createSystemContext)();
67
+ // Bind to loopback by default: the chat API drives the agent (and its tools)
68
+ // with no authentication, so it must not be exposed to the network unless the
69
+ // operator explicitly opts in via SKYLOOM_WEB_HOST=0.0.0.0.
70
+ const host = process.env.SKYLOOM_WEB_HOST || "127.0.0.1";
71
+ const loopbackOnly = host === "127.0.0.1" || host === "localhost" || host === "::1";
72
+ // Reject cross-origin / rebound Host headers when bound to loopback. Without
73
+ // this, a malicious web page could POST to http://localhost:<port>/api/chat
74
+ // from the victim's browser and execute agent tools (CORS does not block the
75
+ // side effect, only the response read).
76
+ const hostAllowed = (h) => {
77
+ if (!loopbackOnly)
78
+ return true;
79
+ const name = (h || "").split(":")[0].toLowerCase();
80
+ return name === "localhost" || name === "127.0.0.1" || name === "[::1]" || name === "::1" || name === "";
81
+ };
67
82
  const server = (0, http_1.createServer)(async (req, res) => {
68
- res.setHeader("Access-Control-Allow-Origin", "*");
83
+ if (!hostAllowed(req.headers.host)) {
84
+ res.writeHead(403, { "Content-Type": "application/json" }).end(JSON.stringify({ error: "Forbidden host" }));
85
+ return;
86
+ }
87
+ // Same-origin only when loopback-bound (no wildcard CORS that would invite
88
+ // cross-site requests to a credential-less, tool-executing endpoint).
89
+ if (loopbackOnly) {
90
+ res.setHeader("Access-Control-Allow-Origin", `http://${req.headers.host || `localhost:${port}`}`);
91
+ res.setHeader("Vary", "Origin");
92
+ }
93
+ else {
94
+ res.setHeader("Access-Control-Allow-Origin", "*");
95
+ }
69
96
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
70
97
  res.setHeader("Access-Control-Allow-Headers", "Content-Type");
71
98
  if (req.method === "OPTIONS") {
@@ -90,7 +117,13 @@ async function startWebServer(port = 3000) {
90
117
  res.writeHead(500, { "Content-Type": "application/json" }).end(JSON.stringify({ error: String(e) }));
91
118
  }
92
119
  });
93
- return new Promise((resolve) => { server.listen(port, () => { console.log(`\n 水墨气象台 · Skyloom\n http://localhost:${port}\n`); resolve(); }); });
120
+ return new Promise((resolve) => {
121
+ server.listen(port, host, () => {
122
+ const shown = loopbackOnly ? "localhost" : host;
123
+ console.log(`\n 水墨气象台 · Skyloom\n http://${shown}:${port}${loopbackOnly ? " (仅本机 · 设 SKYLOOM_WEB_HOST=0.0.0.0 可对外开放)" : " ⚠ 已对外开放 · 无鉴权"}\n`);
124
+ resolve();
125
+ });
126
+ });
94
127
  }
95
128
  async function handleChat(req, res, ctx) {
96
129
  const buffers = [];
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skyloom",
3
- "version": "1.14.4",
3
+ "version": "1.14.6",
4
4
  "description": "天空织机 Skyloom — 6 weather-themed AI agents: Fog, Rain, Frost, Snow, Dew, Fair",
5
5
  "preferGlobal": true,
6
6
  "type": "commonjs",
package/src/cli/loom.ts CHANGED
@@ -362,6 +362,14 @@ export interface LoomOpts {
362
362
  const RAIL_W = 15; // visual columns of the left rail (inside borders)
363
363
  const SKY_H = 2;
364
364
 
365
+ /* Mouse: SGR extended tracking (1006) + button tracking (1000). We only ever
366
+ *act* on wheel events; clicks/drags are parsed-and-swallowed so they can
367
+ never leak into the input line. Shift+drag still selects text in most
368
+ terminals (they bypass app tracking), so copy/paste keeps working. */
369
+ const MOUSE_ON = "\x1b[?1000h\x1b[?1006h";
370
+ const MOUSE_OFF = "\x1b[?1000l\x1b[?1006l";
371
+ const WHEEL_STEP = 3; // viewport lines per wheel notch
372
+
365
373
  export class LoomUI {
366
374
  private out: OutLike;
367
375
  private inp: NodeJS.ReadStream | null;
@@ -415,7 +423,7 @@ export class LoomUI {
415
423
 
416
424
  start() {
417
425
  if (!this.headless) {
418
- this.out.write("\x1b[?1049h\x1b[2J"); // alternate screen
426
+ this.out.write("\x1b[?1049h\x1b[2J" + MOUSE_ON); // alternate screen + mouse wheel
419
427
  if (this.inp && this.inp.isTTY) {
420
428
  readline.emitKeypressEvents(this.inp);
421
429
  this.inp.setRawMode(true);
@@ -438,7 +446,7 @@ export class LoomUI {
438
446
  if (this.resizeHandler) (process.stdout as any).removeListener?.("resize", this.resizeHandler);
439
447
  if (!this.headless) {
440
448
  if (this.inp && this.inp.isTTY) this.inp.setRawMode(false);
441
- this.out.write("\x1b[?1049l\x1b[?25h");
449
+ this.out.write(MOUSE_OFF + "\x1b[?1049l\x1b[?25h");
442
450
  }
443
451
  }
444
452
 
@@ -447,11 +455,11 @@ export class LoomUI {
447
455
  if (this.inp && this.inp.isTTY) this.inp.setRawMode(false);
448
456
  if (this.inp && this.keypressHandler) this.inp.removeListener("keypress", this.keypressHandler);
449
457
  if (this.timer) { clearInterval(this.timer); this.timer = null; }
450
- this.out.write("\x1b[?1049l\x1b[?25h");
458
+ this.out.write(MOUSE_OFF + "\x1b[?1049l\x1b[?25h");
451
459
  try {
452
460
  return await fn();
453
461
  } finally {
454
- this.out.write("\x1b[?1049h\x1b[2J");
462
+ this.out.write("\x1b[?1049h\x1b[2J" + MOUSE_ON);
455
463
  if (this.inp && this.inp.isTTY) {
456
464
  this.inp.setRawMode(true);
457
465
  this.inp.resume();
@@ -473,7 +481,10 @@ export class LoomUI {
473
481
  const drop = this.blocks.splice(0, 500);
474
482
  for (const d of drop) if (d.id) this.byId.delete(d.id);
475
483
  }
476
- this.scrollOff = 0; // new content snaps to tail
484
+ // Note: we intentionally do NOT reset scrollOff here. When the user is at
485
+ // the tail (scrollOff === 0) the view keeps following new content; when
486
+ // they have scrolled up to read, their position is preserved instead of
487
+ // being yanked to the bottom on every tool event or blank line.
477
488
  return blk;
478
489
  }
479
490
 
@@ -553,8 +564,51 @@ export class LoomUI {
553
564
 
554
565
  setHistory(h: string[]) { this.history = h.slice(); }
555
566
 
567
+ // Mouse-sequence reassembly. Node's readline keypress parser does NOT emit an
568
+ // SGR mouse sequence (ESC[<btn;col;rowM) as one event — it yields ESC[< then
569
+ // each remaining char separately. We accumulate from the ESC[< marker until
570
+ // the terminating M/m, then act, swallowing every fragment so none of it can
571
+ // ever land in the input line (the bug that sank the previous attempt).
572
+ private mouseBuf: string | null = null;
573
+
574
+ private handleMouse(seq: string) {
575
+ const m = /^(\d+);(\d+);(\d+)[Mm]$/.exec(seq);
576
+ if (!m) return;
577
+ const code = parseInt(m[1], 10);
578
+ if ((code & 64) === 0) return; // not a wheel event (clicks/drags ignored)
579
+ const down = (code & 1) !== 0; // odd button code = wheel down
580
+ // When the slash palette is open, the wheel moves the selection; otherwise
581
+ // it scrolls the conversation viewport.
582
+ if (this.paletteMatches().length > 0 && this.inputGlyphs[0] === "/") {
583
+ const n = this.paletteMatches().length;
584
+ this.paletteIdx = down
585
+ ? Math.min(n - 1, this.paletteIdx + 1)
586
+ : Math.max(0, this.paletteIdx - 1);
587
+ this.paint();
588
+ return;
589
+ }
590
+ if (down) this.scrollOff -= WHEEL_STEP; // wheel down → toward tail
591
+ else this.scrollOff += WHEEL_STEP; // wheel up → into history
592
+ this.clampScroll();
593
+ this.viewportCache = null;
594
+ this.paint();
595
+ }
596
+
556
597
  private onKey(str: string, key: any) {
557
598
  if (this.destroyed) return;
599
+
600
+ // ── mouse sequence reassembly (see mouseBuf) ──
601
+ if (this.mouseBuf !== null) {
602
+ this.mouseBuf += str ?? "";
603
+ if (str === "M" || str === "m" || this.mouseBuf.length > 24) {
604
+ const seq = this.mouseBuf;
605
+ this.mouseBuf = null;
606
+ this.handleMouse(seq);
607
+ }
608
+ return; // swallow every byte of the sequence
609
+ }
610
+ if (key?.sequence === "\x1b[<" || str === "\x1b[<") { this.mouseBuf = ""; return; }
611
+
558
612
  if (this.modal) {
559
613
  const k = (str || "").toLowerCase();
560
614
  if (k === "y") { const m = this.modal; this.modal = null; m.resolve(true); }
@@ -595,6 +649,7 @@ export class LoomUI {
595
649
  }
596
650
 
597
651
  this.inputGlyphs = []; this.cursor = 0; this.histIdx = -1; this.paletteIdx = 0;
652
+ this.scrollOff = 0; // submitting a turn snaps back to the tail to watch the reply
598
653
  if (text) { this.history.unshift(text); if (this.history.length > 200) this.history.pop(); }
599
654
  const r = this.pendingResolve;
600
655
  this.pendingResolve = null;
@@ -646,6 +701,8 @@ export class LoomUI {
646
701
  if (name === "delete") { if (this.cursor < this.inputGlyphs.length) this.inputGlyphs.splice(this.cursor, 1); this.paint(); return; }
647
702
  if (name === "left") { if (this.cursor > 0) this.cursor--; this.paint(); return; }
648
703
  if (name === "right") { if (this.cursor < this.inputGlyphs.length) this.cursor++; this.paint(); return; }
704
+ if (name === "home") { this.cursor = 0; this.paint(); return; }
705
+ if (name === "end") { this.cursor = this.inputGlyphs.length; this.paint(); return; }
649
706
  if (key?.ctrl && name === "a") { this.cursor = 0; this.paint(); return; }
650
707
  if (key?.ctrl && name === "e") { this.cursor = this.inputGlyphs.length; this.paint(); return; }
651
708
  if (key?.ctrl && name === "u") { this.inputGlyphs.splice(0, this.cursor); this.cursor = 0; this.paint(); return; }
@@ -911,7 +968,7 @@ export class LoomUI {
911
968
  ? " Ctrl-C 中断本轮 "
912
969
  : paletteUp
913
970
  ? " ↑↓ 选命令 · Enter 执行 · Tab 补全 · Esc 收起 "
914
- : " / 命令 · PgUp 回看 · Shift+Tab 切模式 · Ctrl-C 退出 ";
971
+ : " / 命令 · 滚轮/PgUp 回看 · Shift+Tab 切模式 · Ctrl-C 退出 ";
915
972
  // └─ hint ───…┘ → 2 + w(hint) + fill + 1 = cols
916
973
  const fill = innerW - visualWidth(hint) - 1;
917
974
  frame.push(B("└─") + chalk.dim(hint) + B("─".repeat(Math.max(0, fill)) + "┘"));
@@ -934,7 +991,9 @@ export class LoomUI {
934
991
  const counter = sel && matches.length > maxShow ? chalk.dim(` ${this.paletteIdx + 1}/${matches.length}`) : "";
935
992
  const lineStr = mark + (sel ? chalk.bold(color(cmd.padEnd(11))) : color(cmd.padEnd(11))) + chalk.dim(cutVisual(desc, this.viewW() - 22)) + counter;
936
993
  const row = baseRow + i;
937
- frame[row] = B("│") + padAnsi(this.railLines(bodyH)[row - 1 - SKY_H] ?? "", RAIL_W) + B("│") + " " + padAnsi(lineStr, this.viewW()) + B("│");
994
+ // Reuse the rail already composed for the body rather than rebuilding it
995
+ // per overlay row (railLines runs wrapPlain etc. — wasteful at frame rate).
996
+ frame[row] = B("│") + padAnsi(rail[row - 1 - SKY_H] ?? "", RAIL_W) + B("│") + " " + padAnsi(lineStr, this.viewW()) + B("│");
938
997
  });
939
998
  }
940
999
 
package/src/cli/main.ts CHANGED
@@ -251,12 +251,14 @@ function saveApiKey(provider: string, key: string): void {
251
251
  const path = require("path"); const fs = require("fs"); const yaml = require("yaml");
252
252
  const cfgPath = path.join(require("os").homedir(), ".skyloom", "config.yaml");
253
253
  const dir = path.dirname(cfgPath);
254
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
254
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
255
255
  let cfg: any = {};
256
256
  if (fs.existsSync(cfgPath)) { try { cfg = yaml.parse(fs.readFileSync(cfgPath, "utf-8")) || {}; } catch { } }
257
257
  if (!cfg.api_keys) cfg.api_keys = {};
258
258
  cfg.api_keys[provider] = key;
259
- fs.writeFileSync(cfgPath, yaml.stringify(cfg), "utf-8");
259
+ // config.yaml holds plaintext API keys — keep it owner-only (0600).
260
+ fs.writeFileSync(cfgPath, yaml.stringify(cfg), { encoding: "utf-8", mode: 0o600 });
261
+ try { fs.chmodSync(cfgPath, 0o600); } catch { /* best-effort (e.g. Windows) */ }
260
262
  }
261
263
 
262
264
  /* ═══════════════════════════════════════
@@ -304,7 +306,8 @@ async function setupWizard(): Promise<{ provider: string; key: string; model: st
304
306
  const cfgPath = path.join(require("os").homedir(), ".skyloom", "config.yaml");
305
307
  let cfg: any = {}; if (fs.existsSync(cfgPath)) { try { cfg = yaml.parse(fs.readFileSync(cfgPath, "utf-8")) || {}; } catch { } }
306
308
  cfg.default_model = model; cfg.default_provider = prov.id;
307
- fs.writeFileSync(cfgPath, yaml.stringify(cfg), "utf-8");
309
+ fs.writeFileSync(cfgPath, yaml.stringify(cfg), { encoding: "utf-8", mode: 0o600 });
310
+ try { fs.chmodSync(cfgPath, 0o600); } catch { /* best-effort (e.g. Windows) */ }
308
311
 
309
312
  rl.close();
310
313
  process.stdout.write(chalk.green(`\n ✓ ${prov.name} · ${model} · 就绪!\n\n`));
@@ -107,8 +107,7 @@ export class LoopGuard {
107
107
  if (!r || r.toolName === 'task_done') continue;
108
108
  const failed = !r.success || (typeof r.result === 'string' && looksLikeFailedToolResult(r.result));
109
109
  this.recentToolOutcomes.push(!failed);
110
- // Keep 8 so the "all recent calls failed" (>=8) hard-stop below is reachable.
111
- if (this.recentToolOutcomes.length > 8) this.recentToolOutcomes.shift();
110
+ if (this.recentToolOutcomes.length > 20) this.recentToolOutcomes.shift();
112
111
  }
113
112
  if (!this.stuckHintInjected && this.recentToolOutcomes.length >= 5 &&
114
113
  this.recentToolOutcomes.filter(Boolean).length <= 1) {
package/src/core/agent.ts CHANGED
@@ -24,6 +24,7 @@ import {
24
24
  } from './agent_helpers';
25
25
  import { selectRelevantTools } from './tool_router';
26
26
  import { getModelInfo } from './catalog';
27
+ import { estimateTokens } from './estimate';
27
28
  import { LoopGuard } from './agent/guard';
28
29
 
29
30
  const log = getLogger('agent');
@@ -705,12 +706,13 @@ export class BaseAgent {
705
706
  }
706
707
 
707
708
  async close(): Promise<void> {
708
- // Drain in-flight background work BEFORE closing memory
709
- const pending = [...this._pendingExtracts];
709
+ // Drain ALL in-flight background work BEFORE closing memory — both fact
710
+ // extraction and background request handlers (delegate_to / agent requests).
711
+ // Missing _bgTasks meant a request handler could still be writing to memory
712
+ // as the DB closed, losing work or erroring on a closed database.
713
+ const pending = [...this._pendingExtracts, ...this._bgTasks];
710
714
  if (pending.length > 0) {
711
- try {
712
- await Promise.all(pending);
713
- } catch { /* ignore */ }
715
+ await Promise.allSettled(pending);
714
716
  }
715
717
  await this.memory.close();
716
718
  this.bus.unsubscribe(this.name);
@@ -1156,8 +1158,10 @@ export class BaseAgent {
1156
1158
  contextDetail(): Record<string, any> {
1157
1159
  const byRole: Record<string, { tokens: number; count: number }> = {};
1158
1160
  for (const m of this.memory.shortTerm) {
1159
- const extra = (m as any).toolCalls ? JSON.stringify((m as any).toolCalls).length : 0;
1160
- const tokens = Math.ceil(((m.content || '').length + extra) / 4);
1161
+ const extra = (m as any).toolCalls ? JSON.stringify((m as any).toolCalls) : '';
1162
+ // CJK-aware estimate so the per-role breakdown matches the header total
1163
+ // (getContextWindowUsage weights Chinese characters ~2 tokens each).
1164
+ const tokens = estimateTokens((m.content || '') + extra);
1161
1165
  const slot = byRole[m.role] || (byRole[m.role] = { tokens: 0, count: 0 });
1162
1166
  slot.tokens += tokens;
1163
1167
  slot.count += 1;
@@ -1165,7 +1169,7 @@ export class BaseAgent {
1165
1169
  return {
1166
1170
  ...this.contextUsage(),
1167
1171
  byRole,
1168
- systemPromptTokens: Math.ceil(this._baseSystemPrompt.length / 4),
1172
+ systemPromptTokens: estimateTokens(this._baseSystemPrompt),
1169
1173
  toolCount: this.activeToolNames().length,
1170
1174
  activeSkills: [...this._activeSkills],
1171
1175
  };
@@ -72,9 +72,13 @@ const RE_TRAILING_COMMA = /,\s*([}\]])/g;
72
72
  const RE_UNQUOTED_STRING = /(:\s*)([a-zA-Z_.][a-zA-Z0-9_ ./\\@.\-+#~$]*?)(\s*[,}\]])/g;
73
73
 
74
74
  // ── Tool-signature loop detector tuning ──
75
- export const SIG_WINDOW = 8;
76
- export const SIG_LOOP_HINT = 4;
77
- export const SIG_LOOP_HARDSTOP = 6;
75
+ // These count *identical* tool-call signatures (same name + same args). Real
76
+ // editing workflows produce distinct signatures (different file/old_text), so
77
+ // a moderate window/threshold gives them room without disarming the loop guard:
78
+ // an identical call repeated 10x is always a stuck loop, never legitimate work.
79
+ export const SIG_WINDOW = 16; // observation window for repeated signatures
80
+ export const SIG_LOOP_HINT = 6; // warn once after this many identical repeats
81
+ export const SIG_LOOP_HARDSTOP = 10; // force-stop after this many identical repeats
78
82
 
79
83
  // ── Tool-failure markers ──
80
84
  const TOOL_FAILURE_MARKERS = [
@@ -313,13 +313,16 @@ export function loadConfig(): SkyloomConfig {
313
313
  export function saveUserConfig(config: SkyloomConfig): void {
314
314
  // Ensure user config directory exists
315
315
  if (!fs.existsSync(USER_CONFIG_DIR)) {
316
- fs.mkdirSync(USER_CONFIG_DIR, { recursive: true });
316
+ fs.mkdirSync(USER_CONFIG_DIR, { recursive: true, mode: 0o700 });
317
317
  }
318
318
 
319
319
  const userPath = path.join(USER_CONFIG_DIR, "config.yaml");
320
320
  const content = yaml.stringify(config);
321
321
 
322
- fs.writeFileSync(userPath, content, "utf-8");
322
+ fs.writeFileSync(userPath, content, { encoding: "utf-8", mode: 0o600 });
323
+ // mode in writeFileSync only applies on creation; enforce on existing files
324
+ // too, since this config holds plaintext API keys.
325
+ try { fs.chmodSync(userPath, 0o600); } catch { /* best-effort (e.g. Windows) */ }
323
326
  log.info("Saved user configuration", { path: userPath });
324
327
  }
325
328
 
@@ -654,8 +654,15 @@ export class Memory {
654
654
  let cjk = 0;
655
655
 
656
656
  for (const m of this.shortTerm) {
657
- totalChars += m.content.length;
658
- for (const c of m.content) {
657
+ // Count the tool-call payload too: a single tool call with large JSON args
658
+ // occupies real context, and ignoring it made tool-heavy turns under-count
659
+ // and auto-compaction fire too late.
660
+ let text = m.content || '';
661
+ if (m.toolCalls) {
662
+ try { text += JSON.stringify(m.toolCalls); } catch { /* unserializable — skip */ }
663
+ }
664
+ totalChars += text.length;
665
+ for (const c of text) {
659
666
  const code = c.charCodeAt(0);
660
667
  if ((code >= 0x4e00 && code <= 0x9fff) || (code >= 0x3000 && code <= 0x303f)) {
661
668
  cjk++;
@@ -44,8 +44,10 @@ function patchUserConfig(mutate: (cfg: any) => void, dir: string = USER_CONFIG_D
44
44
  try { cfg = yaml.parse(fs.readFileSync(file, 'utf-8')) || {}; } catch { cfg = {}; }
45
45
  }
46
46
  mutate(cfg);
47
- fs.mkdirSync(dir, { recursive: true });
48
- fs.writeFileSync(file, yaml.stringify(cfg), 'utf-8');
47
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
48
+ // config.yaml may hold plaintext API keys — keep it owner-only.
49
+ fs.writeFileSync(file, yaml.stringify(cfg), { encoding: 'utf-8', mode: 0o600 });
50
+ try { fs.chmodSync(file, 0o600); } catch { /* best-effort (e.g. Windows) */ }
49
51
  }
50
52
 
51
53
  /** Apply the same mutation to the in-memory runtime config (hot effect). */