opencode-telegram-bridge 1.2.2 → 1.2.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 CHANGED
@@ -8,24 +8,25 @@ Run a Telegram bot that forwards messages to an OpenCode server and returns resp
8
8
 
9
9
  ## Installation (users)
10
10
 
11
- This project is currently Linux-only (it is designed to run as a long-running `systemd` service).
11
+ This project supports Linux (systemd) and macOS (launchd) for long-running services.
12
12
 
13
13
  Prereqs: Node.js 18+, OpenCode CLI on PATH, and an OpenCode server running (`opencode serve`).
14
14
 
15
- Recommended: use the installation wizard to set this up as a `systemd` daemon.
15
+ Recommended: use the installation wizard to set this up as a service.
16
16
 
17
17
  ```bash
18
18
  npm install -g opencode-telegram-bridge
19
19
  opencode-telegram-bridge setup
20
20
  ```
21
21
 
22
- The wizard is the easiest and recommended path; it writes the systemd unit and
23
- env file for you and starts the service.
22
+ The wizard is the easiest and recommended path; it writes the systemd/launchd
23
+ service definition and env file for you and starts the service.
24
24
 
25
- For required environment variables and systemd setup, see:
25
+ For required environment variables and service setup, see:
26
26
  - [docs/installation.md](docs/installation.md)
27
27
  - [docs/configuration.md](docs/configuration.md)
28
28
  - [docs/systemd.md](docs/systemd.md)
29
+ - [docs/launchd.md](docs/launchd.md)
29
30
 
30
31
  Contributing:
31
32
  - [CONTRIBUTING.md](CONTRIBUTING.md)
package/dist/bot.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAA;AAEpE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElE,OAAO,EAcL,KAAK,sBAAsB,EAC5B,MAAM,gBAAgB,CAAA;AAoBvB,eAAO,MAAM,wBAAwB,GAAI,MAAM,sBAAsB,kEAKpE,CAAA;AAED,eAAO,MAAM,QAAQ,GACnB,QAAQ,SAAS,EACjB,UAAU,cAAc,EACxB,UAAU,YAAY,EACtB,cAAc,gBAAgB,EAC9B,YAAY,cAAc,2EA0jB3B,CAAA"}
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAA;AAEpE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElE,OAAO,EAcL,KAAK,sBAAsB,EAC5B,MAAM,gBAAgB,CAAA;AAoBvB,eAAO,MAAM,wBAAwB,GAAI,MAAM,sBAAsB,kEAKpE,CAAA;AAED,eAAO,MAAM,QAAQ,GACnB,QAAQ,SAAS,EACjB,UAAU,cAAc,EACxB,UAAU,YAAY,EACtB,cAAc,gBAAgB,EAC9B,YAAY,cAAc,2EAumB3B,CAAA"}
package/dist/bot.js CHANGED
@@ -45,6 +45,7 @@ export const startBot = (config, opencode, projects, chatProjects, chatModels) =
45
45
  },
46
46
  { command: "model", description: "Show or list available models" },
47
47
  { command: "reset", description: "Reset the active project session" },
48
+ { command: "abort", description: "Abort the in-flight prompt" },
48
49
  ];
49
50
  if (config.opencodeRestart) {
50
51
  commands.push({
@@ -287,6 +288,39 @@ export const startBot = (config, opencode, projects, chatProjects, chatModels) =
287
288
  }
288
289
  await ctx.reply(`No active session to reset for ${project.alias}.`);
289
290
  });
291
+ bot.command("abort", async (ctx) => {
292
+ if (!isAuthorized(ctx.from, config.allowedUserId)) {
293
+ await ctx.reply("Not authorized.");
294
+ return;
295
+ }
296
+ const chatId = ctx.chat?.id;
297
+ if (!chatId) {
298
+ console.warn("Missing chat id for incoming abort command");
299
+ await ctx.reply("Missing chat context.");
300
+ return;
301
+ }
302
+ const activeAlias = getChatProjectAlias(chatId);
303
+ const project = projects.getProject(activeAlias);
304
+ if (!project) {
305
+ console.error("Missing project for chat", { chatId, activeAlias });
306
+ await ctx.reply("Missing project configuration.");
307
+ return;
308
+ }
309
+ const aborted = promptGuard.abort(chatId);
310
+ if (!aborted) {
311
+ await ctx.reply("No in-flight prompt to abort.");
312
+ return;
313
+ }
314
+ await sendReply(chatId, aborted.replyToMessageId, "Aborting response to this prompt...");
315
+ if (aborted.sessionId) {
316
+ try {
317
+ await opencode.abortSession(aborted.sessionId, project.path);
318
+ }
319
+ catch (error) {
320
+ console.error("Failed to abort OpenCode session", error);
321
+ }
322
+ }
323
+ });
290
324
  bot.command("reboot", async (ctx) => {
291
325
  if (!isAuthorized(ctx.from, config.allowedUserId)) {
292
326
  await ctx.reply("Not authorized.");
@@ -416,7 +450,7 @@ export const startBot = (config, opencode, projects, chatProjects, chatModels) =
416
450
  * late replies by checking this flag before responding.
417
451
  */
418
452
  let timedOut = false;
419
- const abortController = promptGuard.tryStart(chatId, () => {
453
+ const abortController = promptGuard.tryStart(chatId, replyToMessageId, () => {
420
454
  timedOut = true;
421
455
  void sendReply(chatId, replyToMessageId, "OpenCode request timed out. You can send a new message.");
422
456
  });
@@ -426,10 +460,12 @@ export const startBot = (config, opencode, projects, chatProjects, chatModels) =
426
460
  }
427
461
  void (async () => {
428
462
  try {
463
+ const sessionId = await opencode.ensureSessionId(chatId, project.path);
464
+ promptGuard.setSessionId(chatId, abortController, sessionId);
429
465
  const storedModel = chatModels.getModel(chatId, project.path);
430
466
  const promptOptions = storedModel
431
- ? { signal: abortController.signal, model: storedModel }
432
- : { signal: abortController.signal };
467
+ ? { signal: abortController.signal, model: storedModel, sessionId }
468
+ : { signal: abortController.signal, sessionId };
433
469
  const result = await opencode.promptFromChat(chatId, text, project.path, promptOptions);
434
470
  if (!storedModel && result.model) {
435
471
  chatModels.setModel(chatId, project.path, result.model);
@@ -439,6 +475,9 @@ export const startBot = (config, opencode, projects, chatProjects, chatModels) =
439
475
  }
440
476
  }
441
477
  catch (error) {
478
+ if (abortController.signal.aborted) {
479
+ return;
480
+ }
442
481
  console.error("Failed to send prompt to OpenCode", error);
443
482
  if (!timedOut) {
444
483
  await sendReply(chatId, replyToMessageId, "OpenCode error. Check server logs.");
package/dist/bot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -104,6 +104,17 @@ const writeUnitFile = (unitPath, content) => {
104
104
  fs.mkdirSync(path.dirname(unitPath), { recursive: true });
105
105
  fs.writeFileSync(unitPath, content, "utf8");
106
106
  };
107
+ const writePlistFile = (plistPath, content) => {
108
+ fs.mkdirSync(path.dirname(plistPath), { recursive: true });
109
+ fs.writeFileSync(plistPath, content, { encoding: "utf8", mode: 0o600 });
110
+ fs.chmodSync(plistPath, 0o600);
111
+ };
112
+ const escapeXml = (value) => value
113
+ .replace(/&/g, "&")
114
+ .replace(/</g, "&lt;")
115
+ .replace(/>/g, "&gt;")
116
+ .replace(/"/g, "&quot;")
117
+ .replace(/'/g, "&apos;");
107
118
  const buildUnitFile = (envPath, nodePath, cliPath) => `
108
119
  [Unit]
109
120
  Description=OpenCode Telegram Bridge
@@ -136,10 +147,47 @@ RestartSec=3
136
147
  [Install]
137
148
  WantedBy=default.target
138
149
  `;
139
- const runSetupWizard = async () => {
140
- if (process.platform !== "linux") {
141
- die("Setup currently supports Linux systemd only. See the docs for manual setup.");
142
- }
150
+ const buildLaunchdPlist = ({ label, programArguments, env, logPath, }) => {
151
+ const envEntries = Object.entries(env)
152
+ .filter(([, value]) => value)
153
+ .map(([key, value]) => ` <key>${escapeXml(key)}</key>\n <string>${escapeXml(value)}</string>`)
154
+ .join("\n");
155
+ const envBlock = envEntries
156
+ ? ` <key>EnvironmentVariables</key>\n <dict>\n${envEntries}\n </dict>\n`
157
+ : "";
158
+ const programArgs = programArguments
159
+ .map((value) => ` <string>${escapeXml(value)}</string>`)
160
+ .join("\n");
161
+ return `<?xml version="1.0" encoding="UTF-8"?>
162
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
163
+ <plist version="1.0">
164
+ <dict>
165
+ <key>Label</key>
166
+ <string>${escapeXml(label)}</string>
167
+ <key>ProgramArguments</key>
168
+ <array>
169
+ ${programArgs}
170
+ </array>
171
+ ${envBlock} <key>RunAtLoad</key>
172
+ <true/>
173
+ <key>KeepAlive</key>
174
+ <true/>
175
+ <key>StandardOutPath</key>
176
+ <string>${escapeXml(logPath)}</string>
177
+ <key>StandardErrorPath</key>
178
+ <string>${escapeXml(logPath)}</string>
179
+ </dict>
180
+ </plist>
181
+ `;
182
+ };
183
+ const buildLaunchdPath = (nodeDir) => [nodeDir, "/opt/homebrew/bin", "/usr/local/bin", "/usr/bin", "/bin"].join(":");
184
+ const isLaunchdServiceLoaded = (uid, label) => {
185
+ const result = spawnSync("launchctl", ["print", `gui/${uid}/${label}`], {
186
+ encoding: "utf8",
187
+ });
188
+ return result.status === 0;
189
+ };
190
+ const runSystemdSetup = async () => {
143
191
  const systemctlCheck = spawnSync("systemctl", ["--user", "--version"], {
144
192
  encoding: "utf8",
145
193
  });
@@ -227,6 +275,116 @@ const runSetupWizard = async () => {
227
275
  console.log(`Env file: ${envPath}`);
228
276
  console.log(`Unit file: ${unitPath}`);
229
277
  };
278
+ const runLaunchdSetup = async () => {
279
+ const rawUid = process.getuid?.();
280
+ if (typeof rawUid !== "number") {
281
+ die("Unable to determine user id for launchd setup.");
282
+ return;
283
+ }
284
+ const uid = rawUid;
285
+ const homeDir = os.homedir();
286
+ const envPath = path.join(homeDir, ".config", "opencode-telegram-bridge", "opencode-telegram-bridge.env");
287
+ const bridgeLabel = "com.opencode.telegram-bridge";
288
+ const opencodeLabel = "com.opencode.server";
289
+ const plistPath = path.join(homeDir, "Library", "LaunchAgents", `${bridgeLabel}.plist`);
290
+ const installOpencode = await confirmAnswer("Set up OpenCode server as a launchd agent?", false);
291
+ const opencodePlistPath = path.join(homeDir, "Library", "LaunchAgents", `${opencodeLabel}.plist`);
292
+ const existingPaths = [envPath, plistPath];
293
+ if (installOpencode) {
294
+ existingPaths.push(opencodePlistPath);
295
+ }
296
+ if (existingPaths.some((filePath) => fs.existsSync(filePath))) {
297
+ const overwrite = await confirmAnswer("Existing config found. Overwrite?", false);
298
+ if (!overwrite) {
299
+ die("Setup cancelled.");
300
+ }
301
+ }
302
+ const opencodePath = installOpencode ? resolveOpencodePath() : null;
303
+ const botToken = await readSecret("TELEGRAM_BOT_TOKEN", { required: true });
304
+ const allowedUserId = await readAnswer("TELEGRAM_ALLOWED_USER_ID", {
305
+ required: true,
306
+ });
307
+ if (!Number.isInteger(Number(allowedUserId))) {
308
+ throw new Error("TELEGRAM_ALLOWED_USER_ID must be an integer");
309
+ }
310
+ const serverUrl = await readAnswer("OPENCODE_SERVER_URL", {
311
+ defaultValue: "http://127.0.0.1:4096",
312
+ });
313
+ const serverUsername = await readAnswer("OPENCODE_SERVER_USERNAME", {
314
+ defaultValue: "opencode",
315
+ });
316
+ const serverPassword = await readSecret("OPENCODE_SERVER_PASSWORD", {});
317
+ const opencodeRestartCommand = installOpencode
318
+ ? `launchctl kickstart -k gui/${uid}/${opencodeLabel}`
319
+ : await readAnswer("OPENCODE_RESTART_COMMAND", {});
320
+ const opencodeRestartTimeoutMs = opencodeRestartCommand ? "30000" : "";
321
+ const bridgeRestartCommand = `launchctl kickstart -k gui/${uid}/${bridgeLabel}`;
322
+ const { nodePath, cliPath } = resolveExecStart();
323
+ const envValues = {
324
+ TELEGRAM_BOT_TOKEN: botToken,
325
+ TELEGRAM_ALLOWED_USER_ID: allowedUserId,
326
+ OPENCODE_SERVER_URL: serverUrl,
327
+ OPENCODE_SERVER_USERNAME: serverUsername,
328
+ OPENCODE_SERVER_PASSWORD: serverPassword,
329
+ OPENCODE_PROMPT_TIMEOUT_MS: "600000",
330
+ TELEGRAM_HANDLER_TIMEOUT_MS: "630000",
331
+ OPENCODE_RESTART_COMMAND: opencodeRestartCommand,
332
+ OPENCODE_RESTART_TIMEOUT_MS: opencodeRestartTimeoutMs,
333
+ OPENCODE_BRIDGE_RESTART_COMMAND: bridgeRestartCommand,
334
+ OPENCODE_BRIDGE_RESTART_TIMEOUT_MS: "30000",
335
+ };
336
+ writeEnvFile(envPath, envValues);
337
+ const logPath = path.join(homeDir, "Library", "Logs", "opencode-telegram-bridge.log");
338
+ const plist = buildLaunchdPlist({
339
+ label: bridgeLabel,
340
+ programArguments: [nodePath, cliPath],
341
+ env: envValues,
342
+ logPath,
343
+ });
344
+ writePlistFile(plistPath, plist);
345
+ if (installOpencode && opencodePath) {
346
+ const nodeDir = path.dirname(nodePath);
347
+ const opencodeLogPath = path.join(homeDir, "Library", "Logs", "opencode-server.log");
348
+ const opencodePlist = buildLaunchdPlist({
349
+ label: opencodeLabel,
350
+ programArguments: [opencodePath, "serve"],
351
+ env: {
352
+ PATH: buildLaunchdPath(nodeDir),
353
+ },
354
+ logPath: opencodeLogPath,
355
+ });
356
+ writePlistFile(opencodePlistPath, opencodePlist);
357
+ }
358
+ if (isLaunchdServiceLoaded(uid, bridgeLabel)) {
359
+ runCommand("launchctl", ["bootout", `gui/${uid}`, plistPath]);
360
+ }
361
+ runCommand("launchctl", ["bootstrap", `gui/${uid}`, plistPath]);
362
+ runCommand("launchctl", ["enable", `gui/${uid}/${bridgeLabel}`]);
363
+ runCommand("launchctl", ["kickstart", "-k", `gui/${uid}/${bridgeLabel}`]);
364
+ if (installOpencode) {
365
+ if (isLaunchdServiceLoaded(uid, opencodeLabel)) {
366
+ runCommand("launchctl", ["bootout", `gui/${uid}`, opencodePlistPath]);
367
+ }
368
+ runCommand("launchctl", ["bootstrap", `gui/${uid}`, opencodePlistPath]);
369
+ runCommand("launchctl", ["enable", `gui/${uid}/${opencodeLabel}`]);
370
+ runCommand("launchctl", ["kickstart", "-k", `gui/${uid}/${opencodeLabel}`]);
371
+ }
372
+ console.log("Setup complete. Service is running.");
373
+ console.log(`Env file: ${envPath}`);
374
+ console.log(`Launch agent: ${plistPath}`);
375
+ console.log("Services start on login. Use a LaunchDaemon for boot-time start.");
376
+ };
377
+ const runSetupWizard = async () => {
378
+ if (process.platform === "linux") {
379
+ await runSystemdSetup();
380
+ return;
381
+ }
382
+ if (process.platform === "darwin") {
383
+ await runLaunchdSetup();
384
+ return;
385
+ }
386
+ die("Setup supports Linux systemd and macOS launchd only.");
387
+ };
230
388
  const command = process.argv[2];
231
389
  if (!command) {
232
390
  runBot();
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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"}
@@ -1,7 +1,9 @@
1
1
  import type { PermissionRequest, Provider } from "@opencode-ai/sdk/v2";
2
2
  import type { OpencodeConfig } from "./config.js";
3
3
  export type OpencodeBridge = {
4
+ ensureSessionId: (chatId: number, projectDir: string) => Promise<string>;
4
5
  promptFromChat: (chatId: number, text: string, projectDir: string, options?: PromptOptions) => Promise<PromptResult>;
6
+ abortSession: (sessionId: string, projectDir: string) => Promise<boolean>;
5
7
  resetSession: (chatId: number, projectDir: string) => boolean;
6
8
  resetAllSessions: () => void;
7
9
  getSessionOwner: (sessionId: string) => SessionOwner | null;
@@ -24,6 +26,7 @@ export type OpencodeBridgeOptions = {
24
26
  export type PromptOptions = {
25
27
  signal?: AbortSignal;
26
28
  model?: ModelRef;
29
+ sessionId?: string;
27
30
  };
28
31
  export type PermissionReply = "once" | "always" | "reject";
29
32
  export type SessionOwner = {
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,KACpB,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7D,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,IAAI,CAAA;IAC3D,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvD,iBAAiB,EAAE,CACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,EACtB,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,OAAO,CAAC,CAAA;IACrB,0BAA0B,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK;QACjE,IAAI,EAAE,MAAM,IAAI,CAAA;KACjB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACxE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7E,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7D,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,IAAI,CAAA;CAC5D,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,KAAK,CAAC,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE1D,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,iBAAiB,EAAE,CAAC,KAAK,EAAE;QACzB,OAAO,EAAE,iBAAiB,CAAA;QAC1B,SAAS,EAAE,MAAM,CAAA;KAClB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACnC,CAAA;AA8BD,eAAO,MAAM,kBAAkB,QAAO,YAgCrC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,cAAc,EACtB,UAAS,qBAA0B,KAClC,cA8IF,CAAA"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"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"}
package/dist/opencode.js CHANGED
@@ -70,8 +70,11 @@ export const createOpencodeBridge = (config, options = {}) => {
70
70
  return session.id;
71
71
  };
72
72
  return {
73
+ async ensureSessionId(chatId, projectDir) {
74
+ return ensureSession(chatId, projectDir);
75
+ },
73
76
  async promptFromChat(chatId, text, projectDir, options = {}) {
74
- const sessionId = await ensureSession(chatId, projectDir);
77
+ const sessionId = options.sessionId ?? (await ensureSession(chatId, projectDir));
75
78
  /*
76
79
  * The AbortSignal only cancels the HTTP request. The server may continue
77
80
  * processing, but the client stops waiting and the bot can move on.
@@ -99,6 +102,13 @@ export const createOpencodeBridge = (config, options = {}) => {
99
102
  : null;
100
103
  return { reply, model };
101
104
  },
105
+ async abortSession(sessionId, projectDir) {
106
+ const result = await client.session.abort({
107
+ sessionID: sessionId,
108
+ directory: projectDir,
109
+ });
110
+ return requireData(result, "session.abort");
111
+ },
102
112
  resetSession(chatId, projectDir) {
103
113
  return sessions.clearSession(chatId, projectDir);
104
114
  },
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  export type PromptGuard = {
2
- tryStart: (chatId: number, onTimeout: () => void) => AbortController | null;
2
+ tryStart: (chatId: number, replyToMessageId: number | undefined, onTimeout: () => void) => AbortController | null;
3
+ setSessionId: (chatId: number, abortController: AbortController, sessionId: string) => void;
4
+ abort: (chatId: number) => {
5
+ abortController: AbortController;
6
+ replyToMessageId: number | undefined;
7
+ sessionId: string | null;
8
+ } | null;
3
9
  finish: (chatId: number) => void;
4
10
  isInFlight: (chatId: number) => boolean;
5
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-guard.d.ts","sourceRoot":"","sources":["../src/prompt-guard.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,KAAK,eAAe,GAAG,IAAI,CAAA;IAC3E,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,KAAG,WAuDrD,CAAA"}
1
+ {"version":3,"file":"prompt-guard.d.ts","sourceRoot":"","sources":["../src/prompt-guard.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,CACR,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,SAAS,EAAE,MAAM,IAAI,KAClB,eAAe,GAAG,IAAI,CAAA;IAC3B,YAAY,EAAE,CACZ,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,KACd,IAAI,CAAA;IACT,KAAK,EAAE,CACL,MAAM,EAAE,MAAM,KAEZ;QACE,eAAe,EAAE,eAAe,CAAA;QAChC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;QACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,GACD,IAAI,CAAA;IACR,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,KAAG,WAoGrD,CAAA"}
@@ -1,6 +1,6 @@
1
1
  export const createPromptGuard = (timeoutMs) => {
2
2
  const inFlight = new Map();
3
- const tryStart = (chatId, onTimeout) => {
3
+ const tryStart = (chatId, replyToMessageId, onTimeout) => {
4
4
  /*
5
5
  * This function is synchronous. It schedules a timeout and returns
6
6
  * immediately with an AbortController. The timeout callback will run
@@ -23,9 +23,35 @@ export const createPromptGuard = (timeoutMs) => {
23
23
  abortController.abort();
24
24
  onTimeout();
25
25
  }, timeoutMs);
26
- inFlight.set(chatId, { abortController, timeoutId });
26
+ inFlight.set(chatId, {
27
+ abortController,
28
+ timeoutId,
29
+ replyToMessageId,
30
+ sessionId: null,
31
+ });
27
32
  return abortController;
28
33
  };
34
+ const setSessionId = (chatId, abortController, sessionId) => {
35
+ const entry = inFlight.get(chatId);
36
+ if (!entry || entry.abortController !== abortController) {
37
+ return;
38
+ }
39
+ entry.sessionId = sessionId;
40
+ };
41
+ const abort = (chatId) => {
42
+ const entry = inFlight.get(chatId);
43
+ if (!entry) {
44
+ return null;
45
+ }
46
+ clearTimeout(entry.timeoutId);
47
+ inFlight.delete(chatId);
48
+ entry.abortController.abort();
49
+ return {
50
+ abortController: entry.abortController,
51
+ replyToMessageId: entry.replyToMessageId,
52
+ sessionId: entry.sessionId,
53
+ };
54
+ };
29
55
  const finish = (chatId) => {
30
56
  /*
31
57
  * Clearing the timeout cancels the scheduled callback so it never runs.
@@ -40,6 +66,8 @@ export const createPromptGuard = (timeoutMs) => {
40
66
  };
41
67
  return {
42
68
  tryStart,
69
+ setSessionId,
70
+ abort,
43
71
  finish,
44
72
  isInFlight: (chatId) => inFlight.has(chatId),
45
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-guard.js","sourceRoot":"","sources":["../src/prompt-guard.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAe,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IAEH,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,SAAqB,EAAE,EAAE;QACzD;;;;WAIG;QACH,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC;;;eAGG;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;gBACxD,OAAM;YACR,CAAC;YAED,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACvB,eAAe,CAAC,KAAK,EAAE,CAAA;YACvB,SAAS,EAAE,CAAA;QACb,CAAC,EAAE,SAAS,CAAC,CAAA;QAEb,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAA;QACpD,OAAO,eAAe,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE;QAChC;;;WAGG;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;KAC7C,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"prompt-guard.js","sourceRoot":"","sources":["../src/prompt-guard.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAe,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAQrB,CAAA;IAEH,MAAM,QAAQ,GAAG,CACf,MAAc,EACd,gBAAoC,EACpC,SAAqB,EACrB,EAAE;QACF;;;;WAIG;QACH,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC;;;eAGG;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;gBACxD,OAAM;YACR,CAAC;YAED,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACvB,eAAe,CAAC,KAAK,EAAE,CAAA;YACvB,SAAS,EAAE,CAAA;QACb,CAAC,EAAE,SAAS,CAAC,CAAA;QAEb,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;YACnB,eAAe;YACf,SAAS;YACT,gBAAgB;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAA;QACF,OAAO,eAAe,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CACnB,MAAc,EACd,eAAgC,EAChC,SAAiB,EACjB,EAAE;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;YACxD,OAAM;QACR,CAAC;QAED,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;IAC7B,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAA;QACb,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvB,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC7B,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;IACH,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE;QAChC;;;WAGG;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,MAAM;QACN,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;KAC7C,CAAA;AACH,CAAC,CAAA"}
@@ -12,13 +12,13 @@ Set these environment variables in your shell or service environment.
12
12
  - `OPENCODE_SERVER_PASSWORD` - Basic auth password.
13
13
  - `OPENCODE_PROMPT_TIMEOUT_MS` - Prompt timeout in milliseconds (default: 600000).
14
14
  - `TELEGRAM_HANDLER_TIMEOUT_MS` - Telegraf handler timeout in milliseconds (default: prompt timeout + 30000).
15
- - `OPENCODE_RESTART_COMMAND` - Command to restart OpenCode when `/reboot` is used (example: `systemctl --user restart opencode --no-block`).
15
+ - `OPENCODE_RESTART_COMMAND` - Command to restart OpenCode when `/reboot` is used (example: `systemctl --user restart opencode --no-block` or `launchctl kickstart -k gui/$UID/com.opencode.server`).
16
16
  - `OPENCODE_RESTART_TIMEOUT_MS` - Restart command timeout in milliseconds (default: 30000).
17
- - `OPENCODE_BRIDGE_RESTART_COMMAND` - Command to restart the Telegram bridge when `/restart` is used (example: `systemctl --user restart opencode-telegram-bridge --no-block`).
17
+ - `OPENCODE_BRIDGE_RESTART_COMMAND` - Command to restart the Telegram bridge when `/restart` is used (example: `systemctl --user restart opencode-telegram-bridge --no-block` or `launchctl kickstart -k gui/$UID/com.opencode.telegram-bridge`).
18
18
  - `OPENCODE_BRIDGE_RESTART_TIMEOUT_MS` - Restart command timeout in milliseconds (default: 30000).
19
19
 
20
20
  ## Data storage
21
21
  - Project aliases and chat selections are stored in `~/.opencode-telegram-bridge/projects.db`.
22
22
 
23
- ## systemd user service
24
- The setup wizard writes a user service env file at `~/.config/opencode-telegram-bridge/opencode-telegram-bridge.env`.
23
+ ## service env file
24
+ The setup wizard writes the service env file at `~/.config/opencode-telegram-bridge/opencode-telegram-bridge.env`.
package/docs/index.md CHANGED
@@ -9,3 +9,4 @@ Start here:
9
9
  - Configuration
10
10
  - Usage
11
11
  - Systemd
12
+ - Launchd
@@ -10,12 +10,16 @@
10
10
  npm install -g opencode-telegram-bridge
11
11
  ```
12
12
 
13
- ## Setup (Linux systemd)
13
+ ## Setup (Linux systemd / macOS launchd)
14
14
  ```bash
15
15
  opencode-telegram-bridge setup
16
16
  ```
17
17
 
18
- The wizard can also set up OpenCode as a user service. Setup currently supports Linux systemd only. On other platforms, run the bot manually.
18
+ The wizard can also set up OpenCode as a user service. It supports Linux systemd and macOS launchd.
19
+
20
+ See:
21
+ - [systemd](systemd.md)
22
+ - [launchd](launchd.md)
19
23
 
20
24
  ## Run the bot
21
25
  ```bash
@@ -0,0 +1,90 @@
1
+ # launchd Service (macOS user)
2
+
3
+ This project ships launchd templates in `launchd/` for manual setup on macOS.
4
+
5
+ ## Recommended: setup wizard
6
+ ```bash
7
+ opencode-telegram-bridge setup
8
+ ```
9
+
10
+ This is the recommended path. It writes the launchd plist and env file for your
11
+ machine and starts the service for you.
12
+
13
+ ## Advanced: manual install
14
+ Only use this if you cannot run the wizard. It is easy to misconfigure paths
15
+ or environment values and end up with a service that does not start.
16
+
17
+ 1. Install the package:
18
+
19
+ ```bash
20
+ npm install -g opencode-telegram-bridge
21
+ ```
22
+
23
+ 2. Locate the installed package so you can copy the bundled launchd files:
24
+
25
+ ```bash
26
+ npm root -g
27
+ ```
28
+
29
+ The launchd templates live at:
30
+
31
+ ```text
32
+ <npm root -g>/opencode-telegram-bridge/launchd/
33
+ ```
34
+
35
+ 3. Copy the launchd plist:
36
+
37
+ ```bash
38
+ mkdir -p ~/Library/LaunchAgents
39
+ cp "$(npm root -g)/opencode-telegram-bridge/launchd/opencode-telegram-bridge.plist" \
40
+ ~/Library/LaunchAgents/com.opencode.telegram-bridge.plist
41
+ ```
42
+
43
+ 4. Edit the plist:
44
+
45
+ - Replace `/path/to/node` with `command -v node`.
46
+ - Replace `/path/to/opencode-telegram-bridge/dist/cli.js` with:
47
+
48
+ ```bash
49
+ echo "$(npm root -g)/opencode-telegram-bridge/dist/cli.js"
50
+ ```
51
+
52
+ - Replace `REPLACE_ME` values with your Telegram credentials.
53
+ - Replace `~/Library/Logs/...` with absolute paths (launchd does not expand `~`).
54
+
55
+ 5. Load and start:
56
+
57
+ ```bash
58
+ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.opencode.telegram-bridge.plist
59
+ launchctl enable gui/$(id -u)/com.opencode.telegram-bridge
60
+ launchctl kickstart -k gui/$(id -u)/com.opencode.telegram-bridge
61
+ ```
62
+
63
+ ## Optional: OpenCode server agent
64
+ If you want `opencode serve` to run as a launchd agent too:
65
+
66
+ ```bash
67
+ cp "$(npm root -g)/opencode-telegram-bridge/launchd/opencode-server.plist" \
68
+ ~/Library/LaunchAgents/com.opencode.server.plist
69
+ ```
70
+
71
+ Edit the plist:
72
+ - Replace `/path/to/opencode` with `command -v opencode`.
73
+ - Replace `/path/to/node/dir` with `dirname "$(command -v node)"`.
74
+ - Replace `~/Library/Logs/...` with absolute paths.
75
+
76
+ Then load and start:
77
+
78
+ ```bash
79
+ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.opencode.server.plist
80
+ launchctl enable gui/$(id -u)/com.opencode.server
81
+ launchctl kickstart -k gui/$(id -u)/com.opencode.server
82
+ ```
83
+
84
+ ## Logs
85
+ ```bash
86
+ tail -f ~/Library/Logs/opencode-telegram-bridge.log
87
+ ```
88
+
89
+ ## Start on boot (optional)
90
+ LaunchAgents start on login. To start before login, use a LaunchDaemon (requires sudo).
package/docs/systemd.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # systemd Service (Linux user)
2
2
 
3
3
  This project ships a user systemd unit template in `systemd/opencode-telegram-bridge.service`.
4
+ On macOS, use the [launchd](launchd.md) guide instead.
4
5
 
5
6
  ## Recommended: setup wizard
6
7
  ```bash
package/docs/usage.md CHANGED
@@ -9,6 +9,7 @@
9
9
  - `/project set <alias>` - set the active project alias for this chat.
10
10
  - `/model` - show the active model for this chat (after the first reply).
11
11
  - `/model list` - list available models from the OpenCode server.
12
+ - `/abort` - abort the in-flight prompt for this chat.
12
13
  - `/reset` - reset the OpenCode session for the active project.
13
14
  - `/reboot` - restart the OpenCode service and clear cached sessions (requires `OPENCODE_RESTART_COMMAND`).
14
15
  - `/restart` - restart the Telegram bridge (requires `OPENCODE_BRIDGE_RESTART_COMMAND`).
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.opencode.server</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/path/to/opencode</string>
10
+ <string>serve</string>
11
+ </array>
12
+ <key>EnvironmentVariables</key>
13
+ <dict>
14
+ <key>PATH</key>
15
+ <string>/path/to/node/dir:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
16
+ </dict>
17
+ <key>RunAtLoad</key>
18
+ <true/>
19
+ <key>KeepAlive</key>
20
+ <true/>
21
+ <key>StandardOutPath</key>
22
+ <string>~/Library/Logs/opencode-server.log</string>
23
+ <key>StandardErrorPath</key>
24
+ <string>~/Library/Logs/opencode-server.log</string>
25
+ </dict>
26
+ </plist>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.opencode.telegram-bridge</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/path/to/node</string>
10
+ <string>/path/to/opencode-telegram-bridge/dist/cli.js</string>
11
+ </array>
12
+ <key>EnvironmentVariables</key>
13
+ <dict>
14
+ <key>TELEGRAM_BOT_TOKEN</key>
15
+ <string>REPLACE_ME</string>
16
+ <key>TELEGRAM_ALLOWED_USER_ID</key>
17
+ <string>REPLACE_ME</string>
18
+ <key>OPENCODE_SERVER_URL</key>
19
+ <string>http://127.0.0.1:4096</string>
20
+ <key>OPENCODE_SERVER_USERNAME</key>
21
+ <string>opencode</string>
22
+ <key>OPENCODE_SERVER_PASSWORD</key>
23
+ <string></string>
24
+ <key>OPENCODE_PROMPT_TIMEOUT_MS</key>
25
+ <string>600000</string>
26
+ <key>TELEGRAM_HANDLER_TIMEOUT_MS</key>
27
+ <string>630000</string>
28
+ </dict>
29
+ <key>RunAtLoad</key>
30
+ <true/>
31
+ <key>KeepAlive</key>
32
+ <true/>
33
+ <key>StandardOutPath</key>
34
+ <string>~/Library/Logs/opencode-telegram-bridge.log</string>
35
+ <key>StandardErrorPath</key>
36
+ <string>~/Library/Logs/opencode-telegram-bridge.log</string>
37
+ </dict>
38
+ </plist>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-telegram-bridge",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -11,6 +11,7 @@
11
11
  "dist/",
12
12
  "docs/",
13
13
  "systemd/",
14
+ "launchd/",
14
15
  ".env.example",
15
16
  "README.md"
16
17
  ],