Cell - Ta Harness
Ta 在 pi 之上的运行时部件,ta 命令和 ta serve 共用。这里的代码不依赖 Cell 容器,ta 命令因此不加载 Cell。
| 导出 | 作用 |
|---|---|
TaCli.run(argv, options) | ta 命令:serve 启动服务端,其余参数原样交给 pi 的 main() |
TaBrand | 在加载 pi 之前把它改名为 Ta(PI_PACKAGE_DIR 指向带 piConfig 的目录);agentDir() 不加载 pi 就能算出 ~/.ta/agent |
SessionLock / SessionLockExtension(ta:session-lock) | 会话文件旁的锁文件(先写草稿再硬链接,原子创建);进程不在了锁即失效;/resume 到被占用的会话会被取消,启动时打开被占用的会话则提示后退出 |
BrandExtension(ta:brand) | 终端界面的启动头部 TaHeader(像素恐龙 DinoLogo、版本、按键;随宽度换行,窄终端和 Apple Terminal 不画恐龙),并把 system prompt 里 pi 自称的句子改成 Ta 的 |
ExecExtension(ta:exec) | 执行环境不在本机时,用同名工具替换 read / bash / edit / write / ls / find 并接管 ! 命令;pi 的 grep 总在本机跑 ripgrep,所以停用它(模型会通过 bash 用 rg) |
ExecOperations | 把 ExecEnvironment 适配成 pi 工具的 *Operations |
ExecMcpTransport | 在执行环境里启动 stdio MCP 服务,交给 pi 的 createMcpExtension({ createTransport }) |
TaPackages | Ta 自带的 pi 包(@celljs/ta-workspace、@celljs/ta-channels、@celljs/ta-extensions、@celljs/ta-computer-use、@celljs/ta-changes、@celljs/ta-cron、@celljs/ta-agents):发布时在 dist/pi/packages/<名字>,仓库里从工作区解析;默认开启,关掉的记在 agent 目录的 ta.json。ta 命令用 --extension 加载开启着的包的 pi 扩展、技能和提示模板(包管理命令和 --no-extensions 除外),ta serve 用 pi ResourceLoader 的 additionalExtensionPaths + extensionsOverride / skillsOverride / promptsOverride,reload 时按当时的开关取舍 |
TaExtension / TaExtensionUtil | Ta 的内置扩展形状:普通对象;bundle() 把内置扩展合成一个,pi 的已加载扩展列表里显示为 ta |