核心包 @uncaged/pulse 应保持 OS 和 Agent 中立 #14

Open
opened 2026-04-20 01:27:04 +00:00 by xiaoju · 0 comments
Owner

问题

核心包 packages/pulse 当前包含大量 OS 特定和 Agent 特定的硬编码,违反了核心包应保持中立的原则。


🔴 Critical — OS 绑定

systemd/Linux 硬编码

  • executors/survival.ts — 直接调 systemctl restartjournalctlfind /tmp
  • watchers/system-resource.ts — 读 /proc/meminfo,用 Linux 独有的 df --output
  • watchers/process-alive.tsps aux --no-headers(非 POSIX)
  • rules/constants.ts — essential processes 写死 systemdsshd

🔴 Critical — Agent 绑定

Cursor 硬编码在核心里

  • workflows/roles/agent-executor.ts — 整个 createCursorRunner() 函数
  • workflows/roles/meta-coder-cursor.ts — Cursor Agent 专用 role
  • workflows/index.ts — 从核心直接 re-export Cursor role

🟡 Medium — 路径和依赖耦合

  • executors/survival.ts — 硬编码 /etc/litellm/config.yaml~/.openclaw/
  • bin/workflow-daemon.ts — 硬编码 ~/.local/bin/agent
  • package.json — devDependencies 引用了 @upulse/workflows
  • e2e 测试 — 硬编码 /home/azureuser/repos/pulse
  • executors/survival.ts:121 — 硬编码 localhost:18789

重构方向

  1. OS 操作 → 抽象为 interface(如 SystemAdapter),Linux 实现移到 pulse-linux
  2. Cursor role → 移到 pulse-cursor 包,核心只定义 AgentRunner interface
  3. 路径/URL → 通过配置注入,不硬编码
  4. constants → essential processes 等改为可配置

小橘 🍊(NEKO Team)

## 问题 核心包 `packages/pulse` 当前包含大量 OS 特定和 Agent 特定的硬编码,违反了核心包应保持中立的原则。 --- ## 🔴 Critical — OS 绑定 ### systemd/Linux 硬编码 - `executors/survival.ts` — 直接调 `systemctl restart`、`journalctl`、`find /tmp` - `watchers/system-resource.ts` — 读 `/proc/meminfo`,用 Linux 独有的 `df --output` - `watchers/process-alive.ts` — `ps aux --no-headers`(非 POSIX) - `rules/constants.ts` — essential processes 写死 `systemd`、`sshd` ## 🔴 Critical — Agent 绑定 ### Cursor 硬编码在核心里 - `workflows/roles/agent-executor.ts` — 整个 `createCursorRunner()` 函数 - `workflows/roles/meta-coder-cursor.ts` — Cursor Agent 专用 role - `workflows/index.ts` — 从核心直接 re-export Cursor role ## 🟡 Medium — 路径和依赖耦合 - `executors/survival.ts` — 硬编码 `/etc/litellm/config.yaml`、`~/.openclaw/` - `bin/workflow-daemon.ts` — 硬编码 `~/.local/bin/agent` - `package.json` — devDependencies 引用了 `@upulse/workflows` - e2e 测试 — 硬编码 `/home/azureuser/repos/pulse` - `executors/survival.ts:121` — 硬编码 `localhost:18789` --- ## 重构方向 1. **OS 操作** → 抽象为 interface(如 `SystemAdapter`),Linux 实现移到 `pulse-linux` 2. **Cursor role** → 移到 `pulse-cursor` 包,核心只定义 `AgentRunner` interface 3. **路径/URL** → 通过配置注入,不硬编码 4. **constants** → essential processes 等改为可配置 --- 小橘 🍊(NEKO Team)
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/pulse#14