@felan-ai/ext-background-bash

中文文档
0.15.1发布于 2026/11/13MITTypeScriptES Module构建来源已验证近 30 天下载 3017

Felan 的运行时便携式分离Bash程序

中文使用文档
文档目录6 节
  1. 工具和控制措施
  2. 列出API和保留
  3. 发展
  4. 归属
  5. 组成和要求
  6. 相关文件

@felan-ai/ ext- background- bash (英语)

为Felan会议执行不偏重任何项目-地方Bash。 扩展 bash 带有明确的背景, 边框前排等待, 可选的 PTY 输入, 并添加到列表、读取、等待、写入和停止进程的工具. 背景任务输出和元数据位于下 <session-storage>/background-bash/<workspace-key>/jobs. 当地Felan地图 <session-storage> 改为 $FELAN_AGENT_DIR/storage/sessions/<encoded-root-session-id>当云 适配器将其映射到其根会话状态路径.

执行路由文件系统和通过活动处理操作 AgentRuntime。前景处决需要 runtime.processes.startShell。 。 。 . 脱落后背景发射采用POSIX外壳跑跑. 东道主, Docker 和 Daytona 运行时间需要 nohup, (中文(简体) ), ps, (中文(简体) ), sleep,则 setsid 或 shell 任务控制, 因此每个进程都收到一个孤立的进程组。 延期 捕获 runtime.storage('session') 一次;那个手柄必须是 持久和可见的同为文件系统命名空间 runtime.shell。 。 。 . 它要求明确 POSIX 外壳口味 探测和执行,然后 当运行时间不兼容时, 它的工具不活动 。 在本地窗口上, HostAgentRuntime 发现同一主机的 Git Bash 安装 FELAN_POSIX_SHELL, (中文(简体) ), PATH,或标准Git-for-Windows位置。 WSL 不为 因其路径和进程命名空间不匹配而自动选中 主机运行时间 。 Git Bash 的处理工具使用它 ps -l gNU 格式 ps -o 无法使用。 主机依赖配置可以禁用扩展名 当运行时间不兼容时; Felan 不安装操作系统 公用事业.

每个选定的模型都有同样的过程表面。 特定模式 政策属于模型化的即时/工具构成,而不是处理 所有权或运行时间能力检查.

此发布需要兼容 @felan-ai/agent-core 因为它使用 运行时间明确 POSIX 外壳口味和 runtime.processes.startShell。 。 。 .

工具和控制措施

  • bash({ command }) 运行一个进程内的孩子通过 runtime.processes.startShell 不创建工作记录.
  • bash({ command, timeout: 120 }) 等待最多为120秒,然后将同一个孩子提升为附加的背景工作而不重启.
  • bash({ command, background: true }) 或者说 bash({ command, timeout: 0 }) 启动一个带有持久工作记录的分离进程.
  • bash({ command, timeout: 0, tty: true }) 立即启动交互 PTY 。 全体 tty: true 任务在启动前创建他们的记录, 这样守护进程就可以在其工作ID下注册 PTY .
  • write_background_bash({ id, chars }) 向 PTY 任务发送精确的 stdin/ 控制字节 .
  • list_background_bash 返回 10 个最近的工作空间进程。 可选 limit (1-100), (中文(简体) ), cursor, (中文(简体) ), status,以及 search 选择更宽的页面。 跟着回来 nextCursor 时 hasMore 是真的,包括在一个已过滤的空页之后.
  • read_background_bash 读取跟踪进程输出,上限为日志内容的128 KiB。 使用 POSIX 的较大文件 tail 不装入整个日志.
  • wait_background_bash 等待终端状态而不返回日志输出.
  • stop_background_bash 发送 SIGTERM 或者说 SIGKILL。 。 。 .
  • /processes 通过 pi.ui。 。 。 .
  • 费兰的TUI提供 Ctrl+Shift+J 和内置进程/日志视图.

原生的TUI进程/log视图使用内框. 使用其补全信息 紧凑的一行摘要; Alt+A 揭示有限度的细节.

非 PTY 前景输出返回上2000行 / 50 KB 。 仅以上产出 任意限制全写为 <session-storage>/background-bash/<workspace-key>/output/output-*.log编辑 扩展保存该工作空间输出目录中最新的20个外溢文件.

默认前景推广窗口为 120 秒, 可用 extensionConfig.backgroundBash.foregroundTimeoutSeconds. 促进 任务 executionMode: 'attached',一个 output.log和完成信息. 它出现在 list_background_bash 财务报告和审定财务报表 /processes,但当会话结束 开始关闭或重新装入; 子代理晋级的工作结束 副探员。 取消转弯并不能阻止它。 已停止附加的工作记录 killed 而永不复入。 它们没有标准;使用 tty: true 页:1 交互式投入。 所附产出附于 output.log 因为它被读取.

一个前景命令在其外壳退出时完成. 一个背景后裔 开始于 cmd & 使输出管道打开,延迟结果 大部分500毫秒;持续运行且没有被跟踪.

守护进程跟踪活生生的孩子 foreground 进程前后 升职可以阻止孩子停产 本地 TUI 脚不包含 从其运行过程中启动前景进程,包括推动的命令 计数。 它计算运行脱机和PTY工作.

取消前景等待终止其进程树; 取消等待 已有依据的工作不会终止该项工作。 已调出的工作依然存在 当运行时间存储持续时重新启动后可发现 。 PTY 手柄为 root-session-scoped并无法在关闭后重新连接. Live PTY状态出自于其根会话柄,而非脱落-跑取的PID探测器. 在另一个呼叫者在前景中等待时,读取状态并保留输入. 终端结果和完成时间戳记录一次。 一个孤儿PTY 报告为 unknown;其所存储的PID不用于重接或信号一个进程. 返回的工作作为背景进程 bash 执行 自动完成消息 。 消息在下次运行时引导活动运行 模式调用边界,或者在代理闲置时触发转弯。 最终结果 直接返回由 list_background_bash, (中文(简体) ), read_background_bash, (中文(简体) ), wait_background_bash,或 stop_background_bash 压制重复 补全信息.

列出API和保留

BackgroundBashManager.query(options) 选项 BackgroundProcessViewSource.query(options) 返回 a BackgroundBashPage数字 :

const page = await source.query?.({ limit: 10 });
// { jobs, hasMore, nextCursor?, scanned }
const next = page?.nextCursor
  ? await source.query?.({ limit: 10, cursor: page.nextCursor })
  : undefined;

BackgroundBashQuery 接受 limit (违约10,最高100),独家 任务标识 cursor, (中文(简体) ), status,以及 search (大小写不敏感 ID/command 子字符串,位于 大部分256个字符). 查询/页面类型 从软件包根导出,并 ./data。 。 。 . source.list(status) 财务报告和审定财务报表 manager.list(status) 保留他们的完整历史, 运行中的第一语义 现有呼叫者。 新的观点应当以 query({ limit: 10 }) 并揭露 明确阐述更广泛的历史/研究.

查询列出了直接的职务名称,没有行走日志或 读取所有元数据。 ID 排序由 UTC 第二开头, 随机后缀为 在那一秒内,一个稳定的打结者。 每页最多100名候选人 记录并在达到要求的结果计数时停止。 光标音轨 最后一个扫描的ID, 而不是最后一个匹配, 因此零星的搜索可以返回空 (原始内容存档于2018-10-21). pages with more history left. 较新的插入不转出后页; 删除被跳过。 质询是活的,而不是快照的同化.

默认是最近的历史,而不是一个详尽的运行进程视图 。 使用 query({ status: 'running' }) 并跟踪其光标找到旧的运行中的工作. 不需要持久的索引或背景全史扫描.

列表工具的完整序列化响应(文本和细节一起)是 上限为 64 KiB. 命令 和可选信号由JSON编码字节大小剪接,并明确 调车通知。 压缩 details.jobs[].meta.id/command 和状态记录 保存客户端命令链接兼容性; 完整路径, shell 参数, 符号,并省去重复的元数据。 完整命令保留在工作记录中.

保留仅在每32次成功创建/状态改变后运行,从未 最近一个查询。 1个序列式工作空间批次最多审议32个记录; 大型商店与随后的书写一致,而不是阻止上市. 超过最新1 000个或超过7天的经核实的终端工作 符合资格。 5分钟的完成宽限期保护最近的通知. 运行,未知,畸形,只留下遗产,不匹配,否则无法核实 保留记录。 匹配 info.json 财务报告和审定财务报表 completion.json 终端 需要设置状态/时间戳。 运行器完成时间切换到全部 秒是有效的,即使毫秒的起始时间是同一时间的后期 再来 任何被记录的PID和处理组必须正面缺席. 记录 带有一个PID,但没有保留可核查的组. 不确定过程探测器保留记录. 可选用途 python3 结束 AgentRuntime.exec,打开完整的目录链 O_NOFOLLOW 并仅将已知的平面任务文件与被绑定目录连接 解说. 它从不跟随共鸣 或逆向走出意外的条目. 缺少 Python/POSIX 描述支持,同名祖先(包括以上) ),以及意外文件均保守地禁用删除. 没有安装工具 。 所有检查和清除用途 AgentRuntime; 无 迁移或启动清理运行.

发展

资料来源: packages/ext-background-bash 内 https://github.com/felan-ai/felan 页面存档备份,存于互联网档案馆。 。 。 .

corepack enable
pnpm install --frozen-lockfile
pnpm --filter @felan-ai/ext-background-bash build
pnpm --filter @felan-ai/ext-background-bash type-check
scripts/test-isolated.sh pnpm --filter @felan-ai/ext-background-bash test

归属

这个软件包适应了麻省理工学院的许可 pi-background-bash 执行。 见 通知 财务报告和审定财务报表 自由主义 来源详情.

组成和要求

import backgroundBashExtension from '@felan-ai/ext-background-bash';

const extension = backgroundBashExtension;

默认导出会将执行保存在活动运行时间, 并使用软件包所有 常规 pi.ui 用于演示的适配器。 它使用主机拥有 runtime.terminals.attach(id) 可用时处理,保存进程寿命 穿过客户隔离。 否则它拥有它开始的终端。 没有 需要提供特定扩展服务.

createBackgroundBashExtension() 暴露出相同的便携式成分。 土著 渲染属于 apps/felan;此套件不导出 TUI 切入点 .

通用适配器使用规范化 ./data 记录,最多18份工作摘要 每页。 它出版 view 已宣布导航和读取动作,以及 a document 对于每个选定进程的输出。 日志保留已有的界限 尾部(可达2000行和128KiB行),被分出为被编码的字节块. 每个 通过明确的呼喊动作,可以实现块和所节省的工作。 命令预览 被标记为被剪接后,输出则被作为字面马克倒放而逃脱. 无自定义 需要显示器或隐藏的有效载荷; PID、处理符、路径和运行时间 控件不是控制输入或显示元数据.

输出文档只针对运行的进程宣布停止并杀死控制,以及 一个精确字节 stdin字段,只用于运行带有回调写入的 PTY 进程. 常规演示文稿源的可选 write(id, chars) 召回代表 到同一管理器 write_background_bash。控制重新检查当前任务 执行前的状态。 行动在列表和产出文件中序列化, 及其元素身份、修订、目标和输入在执行时再次验证. 停止、关闭、外国或畸形的行动不能援引程序控制.

发布后打开通用视图返回;命令不等待 用户输入。 关闭或取消视图会阻断新动作, 加入待读 和控制,并关闭它的把手 不停止任何进程。 关闭等待 在保持协调员所有权政策的同时进行清理。 清理失败 继续观察。 刷新是明确的;通用适配器安装不覆盖, 快捷键,或任何客户端的UI投票. 执行的完成交付是 不变.

主办方提供 AgentRuntime 和常见的 UI 绑定; 可选本地 TUI 拥有 本地捷径和身份投票。 受信任提供者自己的依赖政策, 不是客户端渲染器。 需要兼容的运行时间 pOSIX 外壳/加工设施 运行时间依赖关系费兰 不安装操作系统公用设施,该功能仍然不活动 当它们无法使用时.

该扩展拥有背景工作记录、日志、生命周期、PTY控制以及 6个模型化工艺控制器. 它不提供沙盒.

版本与发布记录

@felan-ai/ext-background-bash 共发布 39 个版本,首次发布于 2026/08/06;过去 12 个月发布了 39 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.15.1latest2026/11/131 天前
0.15.02026/11/068 天前
0.14.02026/11/059 天前
0.13.52026/11/0212 天前
0.13.42026/10/3014 天前
0.13.32026/10/3015 天前

关于 @felan-ai/ext-background-bash 的常见问题

@felan-ai/ext-background-bash 是什么?

Felan 的运行时便携式分离Bash程序

如何安装 @felan-ai/ext-background-bash?

在项目目录运行 npm install @felan-ai/ext-background-bash,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@felan-ai/agent-core(^0.15.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@felan-ai/ext-background-bash 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@felan-ai/ext-background-bash 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@felan-ai/ext-background-bash 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@felan-ai/ext-background-bash 可以商用吗?

@felan-ai/ext-background-bash 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@felan-ai/ext-background-bash 的下载量有多少?

根据 npm 官方下载统计,@felan-ai/ext-background-bash 在 2026/10/15 – 2026/11/13 这 30 天内被下载 3,017 次,日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@felan-ai/ext-background-bash 还在维护吗?

最新版本 0.15.1 发布于 2026/11/13(1 天前);至今共发布 39 个版本,其中过去 12 个月发布了 39 个;首次发布于 2026/08/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。