tellrun 1.3.8 → 2.0.1

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 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
- - **Continuous conversations**: keep the current conversation context, select a project with `/cwd`, and start fresh with `/new`.
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 use the buttons in `/list` to select and resume conversations.
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,37 @@ 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` | Start a new conversation while keeping the working directory |
58
- | `/model` | Show the current selection and choose model and reasoning effort |
59
- | `/permissions` | Choose the permission mode for subsequent tasks |
60
- | `/status` | Show version updates, connection, directory, model, permissions, and task status |
61
- | `/update` | Ask Codex to upgrade Tellrun using the installation details |
62
- | `/last` | Show the latest finished task's status and result |
63
- | `/stop` | Request that the current task stop and pause new tasks |
64
- | `/resume` | Accept new tasks again without rerunning an interrupted task |
65
-
66
- Wait for the current task to finish before changing directories or starting a new conversation. After `/stop`, check the final status, then send `/resume` followed by your next task.
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` | Show up to 10 recent project sessions as buttons; tap to switch |
61
+ | `/model` | Show the current selection and choose model and reasoning effort |
62
+ | `/permissions` | Choose the permission mode for subsequent tasks |
63
+ | `/cron` | List, create, delete, enable, or disable scheduled tasks |
64
+ | `/status` | Show version updates, connection, directory, session ID, model, permissions, and task status |
65
+ | `/update` | Ask Codex to upgrade Tellrun using the installation details |
66
+ | `/last` | Show the latest finished task's status and result |
67
+ | `/stop` | Request that the current task stop and pause new tasks |
68
+ | `/resume` | Accept new tasks again without rerunning an interrupted task |
69
+
70
+ 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.
71
+
72
+ ### Session management
73
+
74
+ Sessions are stored by Codex. `/list` shows up to 10 non-archived sessions from Tellrun and other Codex clients in the exact current directory, ordered by recent activity, excluding subagents. It displays session buttons and a prompt to tap to switch, with ✓ marking the current session. `/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.
75
+
76
+ ### Scheduled tasks
77
+
78
+ For example, check the current project at 09:00 server time every weekday:
79
+
80
+ ```text
81
+ /cron add 0 9 * * 1-5 Check the project and report issues
82
+ ```
83
+
84
+ Manage schedules with `/cron del <id>`, `/cron enable <id>`, and `/cron disable <id>`.
67
85
 
68
86
  ## Terminal commands
69
87
 
@@ -95,17 +113,14 @@ Configuration and state live in `~/.tellrun/` and are preserved when upgrading t
95
113
 
96
114
  Run `tellrun setup` to create or update your configuration. Leave the Bot Token blank to keep the existing value.
97
115
 
98
- | Path | Contents |
99
- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
100
- | `~/.tellrun/config.json` | Bot Token, authorized user ID, Codex path, and optional proxy |
101
- | `~/.tellrun/state.json` | Current conversation, directory, active task, latest result, pending interactions and replies, and unconfirmed update IDs |
102
- | `~/.tellrun/tellrun.service` | Linux background service definition |
103
- | `~/.tellrun/tellrun.plist` | macOS background service definition |
104
- | `~/.tellrun/tellrun.log` | macOS service diagnostics; view with `tellrun logs` |
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.
116
+ | Path | Contents |
117
+ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
118
+ | `~/.tellrun/config.json` | Bot Token, authorized user ID, Codex path, and optional proxy |
119
+ | `~/.tellrun/state.json` | Conversation, active task, latest result, schedules and pending triggers, interactions, replies, and deduplication state |
120
+ | `~/.tellrun/attachments/` | Uploaded images and files, stored under unique IDs to prevent filename collisions |
121
+ | `~/.tellrun/tellrun.service` | Linux background service definition |
122
+ | `~/.tellrun/tellrun.plist` | macOS background service definition |
123
+ | `~/.tellrun/tellrun.log` | macOS service diagnostics; view with `tellrun logs` |
109
124
 
110
125
  ### Configuration parameters
111
126
 
package/README.zh-CN.md CHANGED
@@ -13,9 +13,11 @@
13
13
  ## 功能
14
14
 
15
15
  - **远程编码**:在 Telegram 私聊中发送任务,由服务器上的 Codex 执行。
16
- - **连续对话**:保留当前会话上下文,通过 `/cwd` 指定项目目录,通过 `/new` 开始新会话。
16
+ - **图片与文件**:发送截图、照片或文件,并附带任务说明;执行中也可以追加附件。
17
+ - **会话管理**:通过 `/cwd` 指定项目目录,用 `/new` 创建命名会话,通过 `/list` 的按钮选择并继续历史对话。
17
18
  - **即时反馈**:显示输入状态与流式回复,执行期间可以继续发送文字补充要求。
18
19
  - **任务控制**:查看状态和最近结果,停止任务并暂停接收;重启后保留当前会话与任务状态。
20
+ - **定时任务**:通过 `/cron` 创建五段 Cron 计划,按服务器时区执行并接收结果。
19
21
  - **审批与提问**:通过按钮处理命令、文件和权限审批;点击选项或明确回复对应问题,多题全部回答后提交。
20
22
  - **权限选择**:通过 `/permissions` 选择 Codex 的四种权限模式,选择会保存并用于后续任务。
21
23
 
@@ -49,21 +51,37 @@ tellrun setup
49
51
 
50
52
  服务启动时自动注册英文命令菜单,可通过聊天输入框旁的菜单按钮或输入 `/` 选择命令。
51
53
 
52
- | 命令 | 作用 |
53
- | --------------------- | ---------------------------------------------- |
54
- | `/start`、`/help` | 查看使用说明 |
55
- | `/cwd` | 查看当前工作目录 |
56
- | `/cwd /absolute/path` | 切换工作目录并开始新会话 |
57
- | `/new` | 开始新会话,保留工作目录 |
58
- | `/model` | 查看当前选择,通过按钮选择模型和推理强度 |
59
- | `/permissions` | 选择后续任务的权限模式 |
60
- | `/status` | 查看版本更新、连接、目录、模型、权限和任务状态 |
61
- | `/update` | 将 Tellrun 升级信息交给 Codex 执行 |
62
- | `/last` | 查看最近已结束任务的状态与结果 |
63
- | `/stop` | 请求停止当前任务,并暂停接收新任务 |
64
- | `/resume` | 恢复接收新任务,不会重新执行此前中断的任务 |
65
-
66
- 切换目录或新建会话前,需要等待当前任务结束。使用 `/stop` 后,先检查最终状态,再发送 `/resume` 和新的任务内容。
54
+ | 命令 | 作用 |
55
+ | --------------------- | ------------------------------------------------------- |
56
+ | `/start`、`/help` | 查看使用说明 |
57
+ | `/cwd` | 查看当前工作目录 |
58
+ | `/cwd /absolute/path` | 切换工作目录并开始新会话 |
59
+ | `/new [名称]` | 创建并切换到新会话,名称可省略 |
60
+ | `/list` | 显示当前项目最近最多 10 个会话按钮,点击切换 |
61
+ | `/model` | 查看当前选择,通过按钮选择模型和推理强度 |
62
+ | `/permissions` | 选择后续任务的权限模式 |
63
+ | `/cron` | 查看、创建、删除或启停定时任务 |
64
+ | `/status` | 查看版本更新、连接、目录、会话 ID、模型、权限和任务状态 |
65
+ | `/update` | 将 Tellrun 升级信息交给 Codex 执行 |
66
+ | `/last` | 查看最近已结束任务的状态与结果 |
67
+ | `/stop` | 请求停止当前任务,并暂停接收新任务 |
68
+ | `/resume` | 恢复接收新任务,不会重新执行此前中断的任务 |
69
+
70
+ 切换目录、新建或切换会话前,需要等待当前任务结束;运行中仍可使用 `/list`。使用 `/stop` 后,先检查最终状态,再发送 `/resume` 和新的任务内容。
71
+
72
+ ### 会话管理
73
+
74
+ 会话由 Codex 保存。`/list` 按最近更新时间显示工作目录完全一致的最多 10 个未归档会话按钮,并提示点击切换,当前会话以 ✓ 标记。列表包含 Tellrun 和其他 Codex 客户端创建的会话,不包含子 Agent。`/new` 省略名称时使用 `New session`,空会话也会保存。新建和切换会话保留当前模型与权限选择;收到成功确认后再发送任务,创建结果无法确认时先用 `/list` 检查,再决定是否重试。
75
+
76
+ ### 定时任务
77
+
78
+ 例如,每个工作日的服务器时间 09:00 检查当前项目:
79
+
80
+ ```text
81
+ /cron add 0 9 * * 1-5 检查项目并汇报问题
82
+ ```
83
+
84
+ 使用 `/cron del <id>`、`/cron enable <id>` 和 `/cron disable <id>` 管理计划。
67
85
 
68
86
  ## 终端命令
69
87
 
@@ -98,15 +116,12 @@ tellrun restart
98
116
  | 路径 | 内容 |
99
117
  | ---------------------------- | ------------------------------------------------------------------------ |
100
118
  | `~/.tellrun/config.json` | Bot Token、授权用户 ID、Codex 路径和可选代理 |
101
- | `~/.tellrun/state.json` | 当前会话、工作目录、活动任务、最近结果、待处理交互与回复、未确认事件标识 |
119
+ | `~/.tellrun/state.json` | 当前会话、活动任务、最近结果、定时计划与待执行触发、交互、回复和去重状态 |
120
+ | `~/.tellrun/attachments/` | 用户上传的图片与文件,按独立标识保存,避免同名覆盖 |
102
121
  | `~/.tellrun/tellrun.service` | Linux 后台服务定义 |
103
122
  | `~/.tellrun/tellrun.plist` | macOS 后台服务定义 |
104
123
  | `~/.tellrun/tellrun.log` | macOS 服务诊断日志,可通过 `tellrun logs` 查看 |
105
124
 
106
- Codex 使用同一系统用户的登录和模型配置,完整会话历史由 Codex 管理。Tellrun 不设置项目目录白名单;可访问范围由运行用户权限和 Codex 沙箱共同决定,默认采用工作区写入与按需审批策略。
107
-
108
- Tellrun 只保留活动任务和每个聊天的最近结果,供 `/last` 查看。已确认的去重标识、关闭的交互在不再需要时回收;待发送回复保留到发送成功或永久拒绝。任务历史由 Codex 保存,Tellrun 日志仅用于服务启停、连接和存储故障诊断。
109
-
110
125
  ### 配置参数
111
126
 
112
127
  `~/.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"]).default("command"),
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()).nullish(),
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 decisions = params.availableDecisions ?? [
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().default(true),
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().default(false),
154
- isSecret: z.boolean().default(false),
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CACtC,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;IAC9F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CACH,CAAC;AAEF,wCAAwC;AACxC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC;IACpC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,YAAY,CAAC;QACb,6BAA6B,EAAE,CAAC,CAAC,YAAY,CAAC;YAC5C,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjD,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAQH,2CAA2C;AAC3C,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,KAAc,EACd,GAAW,EACX,WAAmE;IAQnE,MAAM,WAAW,GAAqB;QACpC,EAAE,EAAE,UAAU,EAAE;QAChB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;KACd,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC3D,IAAI,UAA2D,CAAC;IAChE,gCAAgC;IAChC,SAAS,KAAK,CAAC,EAAU,EAAE,KAAa,EAAE,MAA+B,EAAE,QAAiB;QAC1F,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QAC9B,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,4CAA4C;IAC5C,SAAS,aAAa,CAAC,QAA+C,EAAE,KAAa;QACnF,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,YAAY;gBACpB,gBAAgB,EAAE,mBAAmB;gBACrC,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,QAAQ;aACjB,CAAC;YACF,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,IAAI,kBAAkB,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClI,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE,yBAAyB,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,uCAAuC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC;aACb,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC7B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC5B,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;YACtF,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC7C,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YAClD,2BAA2B,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;SAC3D,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,WAAW,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,gBAAgB,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,OAAO,IAAI,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,sBAAsB,CAAC,QAAQ,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5c,yCAAyC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,IAAI;YAC7C,QAAQ;YACR,kBAAkB;YAClB,GAAG,CAAC,MAAM,CAAC,2BAA2B,EAAE,MAAM;gBAC5C,CAAC,CAAC;oBACE;wBACE,6BAA6B,EAAE;4BAC7B,oBAAoB,EAAE,MAAM,CAAC,2BAA2B;yBACzD;qBACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,SAAS;YACT,QAAQ;SACT,CAAC;QACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,SAAS;YAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7B,IACE,QAAQ,KAAK,SAAS;gBACtB,QAAQ,KAAK,QAAQ;gBACrB,CAAC,MAAM,CAAC,OAAO;gBACf,CAAC,MAAM,CAAC,sBAAsB;gBAE9B,SAAS;YACX,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,iCAAiC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC;aACb,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;SAChC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,MAAM;YAAE,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9F,WAAW,CAAC,IAAI,GAAG,4BAA4B,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yCAAyC,EAAE,CAAC;QACpY,KAAK,MAAM,QAAQ,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;YACpF,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAChE,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,kCAAkC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC;aACb,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;YAC5B,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC;gBAC1B,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;gBACtE,UAAU,EAAE,CAAC;qBACV,YAAY,CAAC;oBACZ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;oBACpC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;oBACrC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;oBAC3D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;iBACzC,CAAC;qBACD,OAAO,EAAE;aACb,CAAC;SACH,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CACpC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CACxE,CAAC;QACF,WAAW,CAAC,IAAI,GAAG,2BAA2B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACxJ,KAAK,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QACzE,KAAK,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QACxF,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,MAAM,KAAK,4BAA4B,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC;aACb,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACrC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;YAC1D,SAAS,EAAE,CAAC;iBACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpC,OAAO,EAAE,CAAC;qBACP,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;qBACtE,GAAG,CAAC,EAAE,CAAC;qBACP,QAAQ,EAAE;aACd,CAAC,CACH;iBACA,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;SACX,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxD,OAAO,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC;QAC9E,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM;YAC3F,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;QAC9B,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QACzC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;QACzB,6BAA6B;QAC7B,WAAW,CAAC,SAAS;YACnB,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;QAC7E,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1D,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;YAC/B,SAAS,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;SACzD,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,KAAK,EAAE,oDAAoD,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5F,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,MAAM;QAC7C,OAAO,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC;IACvE,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;QAChE,OAAO,EAAE,KAAK,EAAE,8DAA8D,EAAE,CAAC;IACnF,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,SAAS;QACT,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"codex-interaction.js","sourceRoot":"","sources":["../../src/agents/codex-interaction.ts"],"names":[],"mappings":"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"}