tellrun 1.3.8 → 1.3.9
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 +43 -27
- package/README.zh-CN.md +37 -21
- package/dist/agents/codex-input.js +19 -0
- package/dist/agents/codex-input.js.map +1 -0
- package/dist/agents/codex-interaction.js +34 -27
- package/dist/agents/codex-interaction.js.map +1 -1
- package/dist/agents/codex.js +230 -50
- package/dist/agents/codex.js.map +1 -1
- package/dist/core/cron.js +226 -0
- package/dist/core/cron.js.map +1 -0
- package/dist/core/menus.js +1 -2
- package/dist/core/menus.js.map +1 -1
- package/dist/core/relay.js +163 -31
- package/dist/core/relay.js.map +1 -1
- package/dist/im/telegram-files.js +53 -0
- package/dist/im/telegram-files.js.map +1 -0
- package/dist/im/telegram.js +11 -3
- package/dist/im/telegram.js.map +1 -1
- package/dist/main.js +7 -2
- package/dist/main.js.map +1 -1
- package/dist/storage/attachments.js +129 -0
- package/dist/storage/attachments.js.map +1 -0
- package/dist/storage/schema.js +64 -50
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/store.js +136 -53
- package/dist/storage/store.js.map +1 -1
- package/docs/architecture.md +45 -19
- package/docs/prd.md +33 -9
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -13,9 +13,11 @@ Run Tellrun on your server and use Telegram on your phone or desktop to send cod
|
|
|
13
13
|
## Features
|
|
14
14
|
|
|
15
15
|
- **Remote coding**: send tasks in a private Telegram chat and let Codex execute them on your server.
|
|
16
|
-
- **
|
|
16
|
+
- **Images and files**: send screenshots, photos, or files with task instructions, including while a task is running.
|
|
17
|
+
- **Session management**: select a project with `/cwd`, create named sessions with `/new`, and find or resume conversations with `/list` and `/switch`.
|
|
17
18
|
- **Live feedback**: see typing indicators and streaming replies, and send additional instructions while a task is running.
|
|
18
19
|
- **Task control**: check status and the latest result, stop a task and pause new work, and retain the current conversation and task state across restarts.
|
|
20
|
+
- **Scheduled tasks**: create five-field cron schedules with `/cron`, using the server timezone, and receive results in Telegram.
|
|
19
21
|
- **Approvals and questions**: use buttons for command, file, and permission approvals; select options or reply directly to questions, with answers submitted after all questions are answered.
|
|
20
22
|
- **Permission modes**: use `/permissions` to choose one of four Codex modes, saved for subsequent tasks.
|
|
21
23
|
|
|
@@ -49,21 +51,38 @@ Without `/cwd`, the working directory defaults to the directory where the servic
|
|
|
49
51
|
|
|
50
52
|
At startup, Tellrun registers an English command menu. Use the menu button beside the chat input or type `/` to select a command.
|
|
51
53
|
|
|
52
|
-
| Command | Purpose
|
|
53
|
-
| --------------------- |
|
|
54
|
-
| `/start`, `/help` | Show usage instructions
|
|
55
|
-
| `/cwd` | Show the current working directory
|
|
56
|
-
| `/cwd /absolute/path` | Change the working directory and start a new conversation
|
|
57
|
-
| `/new`
|
|
58
|
-
| `/
|
|
59
|
-
| `/
|
|
60
|
-
| `/
|
|
61
|
-
| `/
|
|
62
|
-
| `/
|
|
63
|
-
| `/
|
|
64
|
-
| `/
|
|
65
|
-
|
|
66
|
-
|
|
54
|
+
| Command | Purpose |
|
|
55
|
+
| --------------------- | -------------------------------------------------------------------------------------------- |
|
|
56
|
+
| `/start`, `/help` | Show usage instructions |
|
|
57
|
+
| `/cwd` | Show the current working directory |
|
|
58
|
+
| `/cwd /absolute/path` | Change the working directory and start a new conversation |
|
|
59
|
+
| `/new [name]` | Create and select a session, with an optional name |
|
|
60
|
+
| `/list` | List sessions in the current project and mark the current session |
|
|
61
|
+
| `/switch <id>` | Switch to a session using its full ID from `/list` |
|
|
62
|
+
| `/model` | Show the current selection and choose model and reasoning effort |
|
|
63
|
+
| `/permissions` | Choose the permission mode for subsequent tasks |
|
|
64
|
+
| `/cron` | List, create, delete, enable, or disable scheduled tasks |
|
|
65
|
+
| `/status` | Show version updates, connection, directory, session ID, model, permissions, and task status |
|
|
66
|
+
| `/update` | Ask Codex to upgrade Tellrun using the installation details |
|
|
67
|
+
| `/last` | Show the latest finished task's status and result |
|
|
68
|
+
| `/stop` | Request that the current task stop and pause new tasks |
|
|
69
|
+
| `/resume` | Accept new tasks again without rerunning an interrupted task |
|
|
70
|
+
|
|
71
|
+
Wait for the current task to finish before changing directories, creating a session, or switching sessions. `/list` remains available while a task runs. After `/stop`, check the final status, then send `/resume` followed by your next task.
|
|
72
|
+
|
|
73
|
+
### Session management
|
|
74
|
+
|
|
75
|
+
Sessions are stored by Codex. `/list` includes non-archived sessions from Tellrun and other Codex clients in the exact current directory, ordered by recent activity, excluding subagents. `/new` without a name uses `New session`; even an empty session is saved. Creating or switching sessions keeps the selected model and permissions. Wait for confirmation before sending a task; if creation cannot be confirmed, check `/list` before retrying.
|
|
76
|
+
|
|
77
|
+
### Scheduled tasks
|
|
78
|
+
|
|
79
|
+
For example, check the current project at 09:00 server time every weekday:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
/cron add 0 9 * * 1-5 Check the project and report issues
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Manage schedules with `/cron del <id>`, `/cron enable <id>`, and `/cron disable <id>`.
|
|
67
86
|
|
|
68
87
|
## Terminal commands
|
|
69
88
|
|
|
@@ -95,17 +114,14 @@ Configuration and state live in `~/.tellrun/` and are preserved when upgrading t
|
|
|
95
114
|
|
|
96
115
|
Run `tellrun setup` to create or update your configuration. Leave the Bot Token blank to keep the existing value.
|
|
97
116
|
|
|
98
|
-
| Path | Contents
|
|
99
|
-
| ---------------------------- |
|
|
100
|
-
| `~/.tellrun/config.json` | Bot Token, authorized user ID, Codex path, and optional proxy
|
|
101
|
-
| `~/.tellrun/state.json` |
|
|
102
|
-
| `~/.tellrun/
|
|
103
|
-
| `~/.tellrun/tellrun.
|
|
104
|
-
| `~/.tellrun/tellrun.
|
|
105
|
-
|
|
106
|
-
Codex uses the same operating system user's authentication and model configuration, and manages its own full conversation history. Tellrun does not maintain a project directory allowlist. Access depends on operating system permissions and the Codex sandbox; Tellrun defaults to workspace write access and approvals on request.
|
|
107
|
-
|
|
108
|
-
Tellrun keeps only active tasks and each chat's latest result for `/last`. Confirmed update IDs and closed interactions are removed once they are no longer needed; pending replies remain until sent or permanently rejected. Task history stays with Codex; Tellrun logs only service startup, shutdown, and connection or storage diagnostics.
|
|
117
|
+
| Path | Contents |
|
|
118
|
+
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
119
|
+
| `~/.tellrun/config.json` | Bot Token, authorized user ID, Codex path, and optional proxy |
|
|
120
|
+
| `~/.tellrun/state.json` | Conversation, active task, latest result, schedules and pending triggers, interactions, replies, and deduplication state |
|
|
121
|
+
| `~/.tellrun/attachments/` | Uploaded images and files, stored under unique IDs to prevent filename collisions |
|
|
122
|
+
| `~/.tellrun/tellrun.service` | Linux background service definition |
|
|
123
|
+
| `~/.tellrun/tellrun.plist` | macOS background service definition |
|
|
124
|
+
| `~/.tellrun/tellrun.log` | macOS service diagnostics; view with `tellrun logs` |
|
|
109
125
|
|
|
110
126
|
### Configuration parameters
|
|
111
127
|
|
package/README.zh-CN.md
CHANGED
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
## 功能
|
|
14
14
|
|
|
15
15
|
- **远程编码**:在 Telegram 私聊中发送任务,由服务器上的 Codex 执行。
|
|
16
|
-
-
|
|
16
|
+
- **图片与文件**:发送截图、照片或文件,并附带任务说明;执行中也可以追加附件。
|
|
17
|
+
- **会话管理**:通过 `/cwd` 指定项目目录,用 `/new` 创建命名会话,通过 `/list` 和 `/switch` 查找并继续历史对话。
|
|
17
18
|
- **即时反馈**:显示输入状态与流式回复,执行期间可以继续发送文字补充要求。
|
|
18
19
|
- **任务控制**:查看状态和最近结果,停止任务并暂停接收;重启后保留当前会话与任务状态。
|
|
20
|
+
- **定时任务**:通过 `/cron` 创建五段 Cron 计划,按服务器时区执行并接收结果。
|
|
19
21
|
- **审批与提问**:通过按钮处理命令、文件和权限审批;点击选项或明确回复对应问题,多题全部回答后提交。
|
|
20
22
|
- **权限选择**:通过 `/permissions` 选择 Codex 的四种权限模式,选择会保存并用于后续任务。
|
|
21
23
|
|
|
@@ -49,21 +51,38 @@ tellrun setup
|
|
|
49
51
|
|
|
50
52
|
服务启动时自动注册英文命令菜单,可通过聊天输入框旁的菜单按钮或输入 `/` 选择命令。
|
|
51
53
|
|
|
52
|
-
| 命令 | 作用
|
|
53
|
-
| --------------------- |
|
|
54
|
-
| `/start`、`/help` | 查看使用说明
|
|
55
|
-
| `/cwd` | 查看当前工作目录
|
|
56
|
-
| `/cwd /absolute/path` | 切换工作目录并开始新会话
|
|
57
|
-
| `/new`
|
|
58
|
-
| `/
|
|
59
|
-
| `/
|
|
60
|
-
| `/
|
|
61
|
-
| `/
|
|
62
|
-
| `/
|
|
63
|
-
| `/
|
|
64
|
-
| `/
|
|
65
|
-
|
|
66
|
-
|
|
54
|
+
| 命令 | 作用 |
|
|
55
|
+
| --------------------- | ------------------------------------------------------- |
|
|
56
|
+
| `/start`、`/help` | 查看使用说明 |
|
|
57
|
+
| `/cwd` | 查看当前工作目录 |
|
|
58
|
+
| `/cwd /absolute/path` | 切换工作目录并开始新会话 |
|
|
59
|
+
| `/new [名称]` | 创建并切换到新会话,名称可省略 |
|
|
60
|
+
| `/list` | 列出当前项目的会话,标记当前会话 |
|
|
61
|
+
| `/switch <id>` | 使用 `/list` 中的完整 ID 切换会话 |
|
|
62
|
+
| `/model` | 查看当前选择,通过按钮选择模型和推理强度 |
|
|
63
|
+
| `/permissions` | 选择后续任务的权限模式 |
|
|
64
|
+
| `/cron` | 查看、创建、删除或启停定时任务 |
|
|
65
|
+
| `/status` | 查看版本更新、连接、目录、会话 ID、模型、权限和任务状态 |
|
|
66
|
+
| `/update` | 将 Tellrun 升级信息交给 Codex 执行 |
|
|
67
|
+
| `/last` | 查看最近已结束任务的状态与结果 |
|
|
68
|
+
| `/stop` | 请求停止当前任务,并暂停接收新任务 |
|
|
69
|
+
| `/resume` | 恢复接收新任务,不会重新执行此前中断的任务 |
|
|
70
|
+
|
|
71
|
+
切换目录、新建或切换会话前,需要等待当前任务结束;运行中仍可使用 `/list`。使用 `/stop` 后,先检查最终状态,再发送 `/resume` 和新的任务内容。
|
|
72
|
+
|
|
73
|
+
### 会话管理
|
|
74
|
+
|
|
75
|
+
会话由 Codex 保存。`/list` 按最近更新时间列出工作目录完全一致的未归档会话,包含 Tellrun 和其他 Codex 客户端创建的会话,不包含子 Agent。`/new` 省略名称时使用 `New session`,空会话也会保存。新建和切换会话保留当前模型与权限选择;收到成功确认后再发送任务,创建结果无法确认时先用 `/list` 检查,再决定是否重试。
|
|
76
|
+
|
|
77
|
+
### 定时任务
|
|
78
|
+
|
|
79
|
+
例如,每个工作日的服务器时间 09:00 检查当前项目:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
/cron add 0 9 * * 1-5 检查项目并汇报问题
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
使用 `/cron del <id>`、`/cron enable <id>` 和 `/cron disable <id>` 管理计划。
|
|
67
86
|
|
|
68
87
|
## 终端命令
|
|
69
88
|
|
|
@@ -98,15 +117,12 @@ tellrun restart
|
|
|
98
117
|
| 路径 | 内容 |
|
|
99
118
|
| ---------------------------- | ------------------------------------------------------------------------ |
|
|
100
119
|
| `~/.tellrun/config.json` | Bot Token、授权用户 ID、Codex 路径和可选代理 |
|
|
101
|
-
| `~/.tellrun/state.json` |
|
|
120
|
+
| `~/.tellrun/state.json` | 当前会话、活动任务、最近结果、定时计划与待执行触发、交互、回复和去重状态 |
|
|
121
|
+
| `~/.tellrun/attachments/` | 用户上传的图片与文件,按独立标识保存,避免同名覆盖 |
|
|
102
122
|
| `~/.tellrun/tellrun.service` | Linux 后台服务定义 |
|
|
103
123
|
| `~/.tellrun/tellrun.plist` | macOS 后台服务定义 |
|
|
104
124
|
| `~/.tellrun/tellrun.log` | macOS 服务诊断日志,可通过 `tellrun logs` 查看 |
|
|
105
125
|
|
|
106
|
-
Codex 使用同一系统用户的登录和模型配置,完整会话历史由 Codex 管理。Tellrun 不设置项目目录白名单;可访问范围由运行用户权限和 Codex 沙箱共同决定,默认采用工作区写入与按需审批策略。
|
|
107
|
-
|
|
108
|
-
Tellrun 只保留活动任务和每个聊天的最近结果,供 `/last` 查看。已确认的去重标识、关闭的交互在不再需要时回收;待发送回复保留到发送成功或永久拒绝。任务历史由 Codex 保存,Tellrun 日志仅用于服务启停、连接和存储故障诊断。
|
|
109
|
-
|
|
110
126
|
### 配置参数
|
|
111
127
|
|
|
112
128
|
`~/.tellrun/config.json` 的参数配置:
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** 图片使用原生视觉输入;其他附件提供本地路径,由 Codex 按用户要求读取。 */
|
|
2
|
+
export function createCodexInput(prompt, attachments = []) {
|
|
3
|
+
const text = attachments.length
|
|
4
|
+
? [
|
|
5
|
+
prompt.trim() || "files:",
|
|
6
|
+
...attachments.map((attachment) => `- ${JSON.stringify(attachment.name)} (${attachment.kind}): ${JSON.stringify(attachment.path)}`),
|
|
7
|
+
].join("\n")
|
|
8
|
+
: prompt;
|
|
9
|
+
return [
|
|
10
|
+
{ type: "text", text, text_elements: [] },
|
|
11
|
+
...attachments
|
|
12
|
+
.filter((attachment) => attachment.kind === "image")
|
|
13
|
+
.map((attachment) => ({
|
|
14
|
+
type: "localImage",
|
|
15
|
+
path: attachment.path,
|
|
16
|
+
})),
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=codex-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-input.js","sourceRoot":"","sources":["../../src/agents/codex-input.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,WAAW,GAAsB,EAAE;IAClF,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM;QAC7B,CAAC,CAAC;YACE,MAAM,CAAC,IAAI,EAAE,IAAI,QAAQ;YACzB,GAAG,WAAW,CAAC,GAAG,CAChB,CAAC,UAAU,EAAE,EAAE,CACb,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAClG;SACF,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,MAAM,CAAC;IACX,OAAO;QACL,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;QAClD,GAAG,WAAW;aACX,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC;aACnD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACpB,IAAI,EAAE,YAAqB;YAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAC;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -55,34 +55,18 @@ export function parseCodexInteraction(method, value, cwd, fileChanges) {
|
|
|
55
55
|
const params = z
|
|
56
56
|
.object({
|
|
57
57
|
turnId: z.string(),
|
|
58
|
-
kind: z.enum(["command", "writeStdin"])
|
|
58
|
+
kind: z.enum(["command", "writeStdin"]),
|
|
59
59
|
command: z.string().nullish(),
|
|
60
60
|
cwd: z.string().nullish(),
|
|
61
61
|
reason: z.string().nullish(),
|
|
62
62
|
networkApprovalContext: z.object({ host: z.string(), protocol: z.string() }).nullish(),
|
|
63
63
|
additionalPermissions: z.unknown().optional(),
|
|
64
|
-
availableDecisions: z.array(z.unknown())
|
|
65
|
-
proposedExecpolicyAmendment: z.array(z.string()).nullish(),
|
|
64
|
+
availableDecisions: z.array(z.unknown()),
|
|
66
65
|
})
|
|
67
66
|
.parse(value);
|
|
68
67
|
interaction.text = `${params.kind === "writeStdin" ? "Terminal input" : "Command"}\nDirectory: ${params.cwd ?? cwd}\n${params.command ?? "Command unavailable."}${params.reason ? `\nReason: ${params.reason}` : ""}${params.networkApprovalContext ? `\nNetwork: ${params.networkApprovalContext.protocol}://${params.networkApprovalContext.host}` : ""}${params.additionalPermissions ? `\nPermissions: ${JSON.stringify(params.additionalPermissions, null, 2)}` : ""}`;
|
|
69
|
-
/**
|
|
70
|
-
const
|
|
71
|
-
"accept",
|
|
72
|
-
"acceptForSession",
|
|
73
|
-
...(params.proposedExecpolicyAmendment?.length
|
|
74
|
-
? [
|
|
75
|
-
{
|
|
76
|
-
acceptWithExecpolicyAmendment: {
|
|
77
|
-
execpolicy_amendment: params.proposedExecpolicyAmendment,
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
]
|
|
81
|
-
: []),
|
|
82
|
-
"decline",
|
|
83
|
-
"cancel",
|
|
84
|
-
];
|
|
85
|
-
for (const [index, value] of decisions.entries()) {
|
|
68
|
+
/** 只展示当前服务明确提供且客户端支持的决定。 */
|
|
69
|
+
for (const [index, value] of params.availableDecisions.entries()) {
|
|
86
70
|
const parsed = commandDecisionSchema.safeParse(value);
|
|
87
71
|
if (!parsed.success)
|
|
88
72
|
continue;
|
|
@@ -139,19 +123,43 @@ export function parseCodexInteraction(method, value, cwd, fileChanges) {
|
|
|
139
123
|
offer("acceptForSession", "Allow for session", { permissions, scope: "session" }, true);
|
|
140
124
|
offer("decline", "Decline", { permissions: {}, scope: "turn" }, false);
|
|
141
125
|
}
|
|
142
|
-
else if (method === "item/tool/requestUserInput") {
|
|
126
|
+
else if (method === "item/tool/requestUserInput" || method === "item/completed") {
|
|
127
|
+
/** 异步问题来自消息通知;稳定问题标识与官方客户端的答案格式保持一致。 */
|
|
128
|
+
if (method === "item/completed")
|
|
129
|
+
value = z
|
|
130
|
+
.object({
|
|
131
|
+
turnId: z.string(),
|
|
132
|
+
item: z.object({
|
|
133
|
+
type: z.literal("agentMessage"),
|
|
134
|
+
id: z.string(),
|
|
135
|
+
delivery: z.literal("async"),
|
|
136
|
+
questions: z.array(z.object({ title: z.string(), options: z.array(z.string()).nullish() })),
|
|
137
|
+
}),
|
|
138
|
+
})
|
|
139
|
+
.transform(({ turnId, item }) => ({
|
|
140
|
+
turnId,
|
|
141
|
+
isBlocking: false,
|
|
142
|
+
questions: item.questions.map((question, index) => ({
|
|
143
|
+
id: JSON.stringify(["request_user_input_async", item.id, index]),
|
|
144
|
+
header: "",
|
|
145
|
+
question: question.title,
|
|
146
|
+
isOther: true,
|
|
147
|
+
isSecret: false,
|
|
148
|
+
options: question.options?.map((label) => ({ label, description: "" })) ?? null,
|
|
149
|
+
})),
|
|
150
|
+
}))
|
|
151
|
+
.parse(value);
|
|
143
152
|
const params = z
|
|
144
153
|
.object({
|
|
145
154
|
turnId: z.string(),
|
|
146
|
-
isBlocking: z.boolean()
|
|
147
|
-
autoResolutionMs: z.number().int().nonnegative().nullish(),
|
|
155
|
+
isBlocking: z.boolean(),
|
|
148
156
|
questions: z
|
|
149
157
|
.array(z.object({
|
|
150
158
|
id: z.string().min(1),
|
|
151
159
|
header: z.string(),
|
|
152
160
|
question: z.string(),
|
|
153
|
-
isOther: z.boolean()
|
|
154
|
-
isSecret: z.boolean()
|
|
161
|
+
isOther: z.boolean(),
|
|
162
|
+
isSecret: z.boolean(),
|
|
155
163
|
options: z
|
|
156
164
|
.array(z.object({ label: z.string().min(1), description: z.string() }))
|
|
157
165
|
.max(20)
|
|
@@ -169,8 +177,7 @@ export function parseCodexInteraction(method, value, cwd, fileChanges) {
|
|
|
169
177
|
interaction.blocking = params.isBlocking;
|
|
170
178
|
interaction.choices = [];
|
|
171
179
|
/** 只有提问设置本地期限;审批持续等待用户决定。 */
|
|
172
|
-
interaction.expiresAt =
|
|
173
|
-
Date.now() + Math.min(10 * 60_000, params.autoResolutionMs ?? 10 * 60_000);
|
|
180
|
+
interaction.expiresAt = Date.now() + 10 * 60_000;
|
|
174
181
|
interaction.questions = params.questions.map((question) => ({
|
|
175
182
|
id: question.id,
|
|
176
183
|
header: question.header,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-interaction.js","sourceRoot":"","sources":["../../src/agents/codex-interaction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codex-interaction.js","sourceRoot":"","sources":["../../src/agents/codex-interaction.ts"],"names":[],"mappings":"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"}
|