tellrun 2.0.3 → 2.0.4
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.
- package/README.md +15 -1
- package/README.zh-CN.md +15 -1
- package/dist/cli.js +3 -4
- package/dist/cli.js.map +1 -1
- package/dist/uninstall.js +53 -0
- package/dist/uninstall.js.map +1 -0
- package/docs/architecture.md +4 -1
- package/docs/assets/tellrun-icon.png +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/assets/tellrun-icon.png" alt="Tellrun icon" width="128" height="128" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# Tellrun — Telegram Bot for OpenAI Codex
|
|
2
6
|
|
|
3
7
|
**Tellrun is a self-hosted Telegram bot for remote AI coding with OpenAI Codex CLI, persistent sessions, and streaming replies.**
|
|
@@ -97,7 +101,7 @@ Run these commands in the terminal on the computer or server running Tellrun.
|
|
|
97
101
|
| `tellrun logs -f` | Follow logs |
|
|
98
102
|
| `tellrun restart` | Restart with the current configuration or installed version |
|
|
99
103
|
| `tellrun stop` | Stop the background service |
|
|
100
|
-
| `tellrun
|
|
104
|
+
| `tellrun uninstall` | Stop and remove the service and global npm package, keeping user data |
|
|
101
105
|
| `tellrun --help` | Show command help |
|
|
102
106
|
|
|
103
107
|
### Upgrade
|
|
@@ -110,6 +114,16 @@ tellrun restart
|
|
|
110
114
|
|
|
111
115
|
Configuration and state live in `~/.tellrun/` and are preserved when upgrading the global package. After upgrading Node.js or Tellrun, `restart` updates the Node and CLI paths used by the service.
|
|
112
116
|
|
|
117
|
+
### Uninstall
|
|
118
|
+
|
|
119
|
+
```sh
|
|
120
|
+
tellrun uninstall
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Stops and removes the current user's background service, then uninstalls the global npm package from its installation prefix. Configuration, state, attachments, and application logs remain in `~/.tellrun/`; the command reminds you to delete that directory yourself if no longer needed. Linux user linger settings stay unchanged.
|
|
124
|
+
|
|
125
|
+
This command supports global npm installations on Linux and macOS.
|
|
126
|
+
|
|
113
127
|
## Configuration and data
|
|
114
128
|
|
|
115
129
|
Run `tellrun setup` to create or update your configuration. Leave the Bot Token blank to keep the existing value.
|
package/README.zh-CN.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/assets/tellrun-icon.png" alt="Tellrun 图标" width="128" height="128" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# Tellrun — 通过 Telegram 远程使用 OpenAI Codex
|
|
2
6
|
|
|
3
7
|
**Tellrun 是可自行部署的 Telegram 机器人,基于 OpenAI Codex CLI 提供远程 AI 编程、持久化会话和流式回复。**
|
|
@@ -97,7 +101,7 @@ tellrun setup
|
|
|
97
101
|
| `tellrun logs -f` | 持续跟随日志 |
|
|
98
102
|
| `tellrun restart` | 重启服务,加载新配置或新版本 |
|
|
99
103
|
| `tellrun stop` | 停止后台服务 |
|
|
100
|
-
| `tellrun
|
|
104
|
+
| `tellrun uninstall` | 停止并移除服务,卸载 npm 全局包,保留用户数据 |
|
|
101
105
|
| `tellrun --help` | 查看命令帮助 |
|
|
102
106
|
|
|
103
107
|
### 升级
|
|
@@ -110,6 +114,16 @@ tellrun restart
|
|
|
110
114
|
|
|
111
115
|
配置与状态保存在 `~/.tellrun/`,全局包升级会保留这些数据。升级 Node.js 或 Tellrun 后,`restart` 会更新服务使用的 Node 和 CLI 入口路径。
|
|
112
116
|
|
|
117
|
+
### 卸载
|
|
118
|
+
|
|
119
|
+
```sh
|
|
120
|
+
tellrun uninstall
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
停止并移除当前用户的后台服务,再从当前安装前缀卸载 Tellrun 的 npm 全局包。配置、状态、附件及应用日志保留在 `~/.tellrun/`,卸载完成后会提示自行删除。Linux 用户 linger 设置保持不变。
|
|
124
|
+
|
|
125
|
+
此命令适用于 Linux 和 macOS 的 npm 全局安装。
|
|
126
|
+
|
|
113
127
|
## 配置与数据
|
|
114
128
|
|
|
115
129
|
运行 `tellrun setup` 创建或更新配置,已有 Bot Token 可留空保留原值。
|
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ import { createCodexAgent } from "./agents/codex.js";
|
|
|
9
9
|
import { appDirectory, configSchema, loadConfig } from "./config.js";
|
|
10
10
|
import { manageService } from "./service.js";
|
|
11
11
|
import { writeJson } from "./storage/json.js";
|
|
12
|
+
import { uninstall } from "./uninstall.js";
|
|
12
13
|
import { tellrunVersion } from "./updates.js";
|
|
13
14
|
/** 全局入口只注册命令;业务入口仅在 run 时动态加载。 */
|
|
14
15
|
const program = new Command()
|
|
@@ -146,12 +147,10 @@ program
|
|
|
146
147
|
await manageService("logs", options);
|
|
147
148
|
});
|
|
148
149
|
program
|
|
149
|
-
.command("service")
|
|
150
|
-
.description("Manage the background service")
|
|
151
150
|
.command("uninstall")
|
|
152
|
-
.description("Remove service; keep
|
|
151
|
+
.description("Remove the service and npm package; keep user data")
|
|
153
152
|
.action(async () => {
|
|
154
|
-
await
|
|
153
|
+
await uninstall();
|
|
155
154
|
});
|
|
156
155
|
try {
|
|
157
156
|
/** npm 的 engines 默认只警告;入口显式拒绝缺少内置代理能力的 Node 版本。 */
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { existsSync, realpathSync } from "node:fs";
|
|
3
|
+
import { delimiter, dirname, join } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
import which from "which";
|
|
7
|
+
import { appDirectory } from "./config.js";
|
|
8
|
+
import { manageService } from "./service.js";
|
|
9
|
+
/** 先移除后台服务,再从当前安装前缀卸载 npm 包;用户数据始终保留。 */
|
|
10
|
+
export async function uninstall() {
|
|
11
|
+
const packageDirectory = realpathSync(fileURLToPath(new URL("../", import.meta.url)));
|
|
12
|
+
const prefix = dirname(dirname(dirname(packageDirectory)));
|
|
13
|
+
/** Linux、macOS 的 npm 全局包固定放在 <prefix>/lib/node_modules 下。 */
|
|
14
|
+
if (packageDirectory !== join(prefix, "lib", "node_modules", "tellrun")) {
|
|
15
|
+
throw new Error("This command requires a global npm install.");
|
|
16
|
+
}
|
|
17
|
+
/** 优先使用当前 Node.js 附带的 npm,并让 npm 的 shebang 使用同一 Node.js。 */
|
|
18
|
+
const env = {
|
|
19
|
+
...process.env,
|
|
20
|
+
PATH: [dirname(process.execPath), process.env.PATH].filter(Boolean).join(delimiter),
|
|
21
|
+
};
|
|
22
|
+
const npm = await which("npm", { path: env.PATH, nothrow: true });
|
|
23
|
+
if (!npm)
|
|
24
|
+
throw new Error("npm not found. Install npm, then run tellrun uninstall again.");
|
|
25
|
+
/** 显式指定前缀并核对真实包路径,避免受终端或 npm 配置影响而卸载其他安装。 */
|
|
26
|
+
try {
|
|
27
|
+
const { stdout } = await promisify(execFile)(npm, ["root", "--global", "--prefix", prefix], {
|
|
28
|
+
env,
|
|
29
|
+
timeout: 10_000,
|
|
30
|
+
});
|
|
31
|
+
if (realpathSync(join(stdout.trim(), "tellrun")) !== packageDirectory)
|
|
32
|
+
throw new Error("Install path mismatch.");
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
throw new Error("Cannot check the npm install path. Check npm settings and try again. Service and package unchanged.");
|
|
36
|
+
}
|
|
37
|
+
await manageService("uninstall");
|
|
38
|
+
try {
|
|
39
|
+
await promisify(execFile)(npm, ["uninstall", "--global", "--prefix", prefix, "tellrun"], {
|
|
40
|
+
cwd: prefix,
|
|
41
|
+
env,
|
|
42
|
+
timeout: 120_000,
|
|
43
|
+
});
|
|
44
|
+
if (existsSync(packageDirectory))
|
|
45
|
+
throw new Error("npm package still exists.");
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
throw new Error(`Service removed, but npm uninstall failed. Check permissions and retry tellrun uninstall.\nInstall prefix: ${prefix}\nData kept at: ${appDirectory}`);
|
|
49
|
+
}
|
|
50
|
+
console.log("Tellrun service and npm package removed.");
|
|
51
|
+
console.log(`Data kept at ${appDirectory}. Delete this folder yourself if no longer needed.`);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"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"}
|
package/docs/architecture.md
CHANGED
|
@@ -102,10 +102,12 @@ CLI 与打包入口已接入,可使用 `npm pack` 的本地产物全局安装
|
|
|
102
102
|
| tellrun status | 查询服务管理器状态并展示配置、数据目录;不启动第二个业务进程 |
|
|
103
103
|
| tellrun logs | 展示最近 100 条后台日志;-f 持续跟随,凭据不进入命令行参数 |
|
|
104
104
|
| tellrun run | 前台运行服务,供 systemd、launchd 和本地诊断使用;不进行交互配置 |
|
|
105
|
-
| tellrun
|
|
105
|
+
| tellrun uninstall | 校验当前 npm 全局安装位置,停用并移除用户服务后卸载当前前缀内的 npm 包;保留数据并提示用户自行删除 |
|
|
106
106
|
|
|
107
107
|
`setup` 由用户显式执行,npm 安装脚本仅承担包安装所需工作。交互取消时保留原配置,Token 使用明文输入,已有配置时留空保留原值;校验成功后再原子写入配置。CLI 的帮助、版本和状态命令不加载会加载运行状态或启动轮询的业务入口。
|
|
108
108
|
|
|
109
|
+
`uninstall` 仅处理 Linux、macOS 的 npm 全局安装,使用当前 Node.js 对应的 npm 优先查找路径,显式指定安装前缀并核对真实包路径。源码或本地安装、npm 检查失败时不移除服务;服务移除失败时不卸载包。成功后提示用户自行删除 `~/.tellrun/`,命令不删除配置、状态、附件或应用日志,也不修改 Linux 用户 linger 设置。
|
|
110
|
+
|
|
109
111
|
包已移除 `private: true`,通过 `bin` 暴露带 Node shebang 的 CLI;`files` 白名单包含编译产物和文档,`prepack` 在打包前完成构建。安装用户不需要源码仓库、TypeScript 或 tsx。用户配置与数据统一定位到当前用户的 `~/.tellrun/`,任何命令均可从任意目录执行。[npm 包字段](https://docs.npmjs.com/cli/v11/configuring-npm/package-json/)
|
|
110
112
|
|
|
111
113
|
发布验收使用实际 `npm pack` 产物,在临时安装前缀全局安装后,从包外目录调用 CLI;检查 bin、运行依赖和配置、状态文件的读写。升级前停止服务并备份数据,升级后重新解析 Node 与包入口路径、更新服务定义并启动;状态文件损坏或写入失败时停止服务并保留原文件。
|
|
@@ -116,6 +118,7 @@ CLI 与打包入口已接入,可使用 `npm pack` 的本地产物全局安装
|
|
|
116
118
|
| ------------------------------------------- | ------------------------------------------------------------ |
|
|
117
119
|
| src/cli.ts | CLI 命令解析与配置向导;只在 run 时动态加载后台业务入口 |
|
|
118
120
|
| src/service.ts | 共用后台命令接口,按操作系统选择服务管理器 |
|
|
121
|
+
| src/uninstall.ts | 核对 npm 全局安装位置,串行移除服务和包,提示手动清理数据 |
|
|
119
122
|
| src/systemd.ts | systemd 用户服务、linger、启停、状态与日志 |
|
|
120
123
|
| src/launchd.ts | macOS 用户服务、登录自启、就绪确认、启停与日志 |
|
|
121
124
|
| src/main.ts | 组装组件、状态加载、启动和退出;只在这里选择具体 IM 与 Agent |
|
|
Binary file
|