opencode-telegram-bridge 1.2.2 → 1.2.3
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 +6 -5
- package/dist/cli.js +162 -4
- package/dist/cli.js.map +1 -1
- package/docs/configuration.md +4 -4
- package/docs/index.md +1 -0
- package/docs/installation.md +6 -2
- package/docs/launchd.md +90 -0
- package/docs/systemd.md +1 -0
- package/launchd/opencode-server.plist +26 -0
- package/launchd/opencode-telegram-bridge.plist +38 -0
- package/package.json +2 -1
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
|
|
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
|
|
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
|
|
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
|
|
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/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, "<")
|
|
115
|
+
.replace(/>/g, ">")
|
|
116
|
+
.replace(/"/g, """)
|
|
117
|
+
.replace(/'/g, "'");
|
|
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
|
|
140
|
-
|
|
141
|
-
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,QAAQ,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE;QAC5D,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACzC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,KAAK,EACtB,MAAc,EACd,UAAyD,EAAE,EAC3D,EAAE;IACF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACvE,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACjE,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,YAAY,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,KAAK,EACtB,MAAc,EACd,UAAyD,EAAE,EAC3D,EAAE;IACF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACvE,MAAM,cAAc,GAAG,GAAG,MAAM,GAAG,MAAM,IAAI,CAAA;IAC7C,MAAM,MAAM,GAAG,EAGd,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,KAAK,CAAC,CAAA;gBACZ,OAAM;YACR,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,CAAA;QACZ,CAAC,CAAA;QACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAA;IAC3B,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;QAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IACD,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,YAAY,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EAAE,MAAc,EAAE,YAAY,GAAG,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IAC/C,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAClE,EAAE,CAAC,KAAK,EAAE,CAAA;IAEV,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,MAA8B,EAAE,EAAE;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAA;IAC7E,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACjD,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAA;IACF,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE;IAC1D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CACpB,OAAe,EACf,QAAgB,EAChB,OAAe,EACf,EAAE,CAAC;;;;;;;;kBAQa,OAAO;YACb,QAAQ,IAAI,OAAO;;;;;;CAM9B,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,YAAoB,EAAE,OAAe,EAAE,EAAE,CAAC;;;;;;;;mBAQtD,OAAO;YACd,YAAY;;;;;;CAMvB,CAAA;AAED,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IAChC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,GAAG,CAAC,6EAA6E,CAAC,CAAA;IACpF,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;QACrE,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAA;IACF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,yEAAyE,CAAC,CAAA;IAChF,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,8BAA8B,CAC/B,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,kCAAkC,CACnC,CAAA;IAED,MAAM,eAAe,GAAG,MAAM,aAAa,CACzC,2CAA2C,EAC3C,KAAK,CACN,CAAA;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,kBAAkB,CACnB,CAAA;IACD,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACzC,IAAI,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,aAAa,CACnC,mCAAmC,EACnC,KAAK,CACN,CAAA;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3E,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,0BAA0B,EAAE;QACjE,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,qBAAqB,EAAE;QACxD,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,0BAA0B,EAAE;QAClE,YAAY,EAAE,UAAU;KACzB,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;IACvE,MAAM,sBAAsB,GAAG,eAAe;QAC5C,CAAC,CAAC,8CAA8C;QAChD,CAAC,CAAC,MAAM,UAAU,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;IACpD,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAEtE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAA;IAChD,YAAY,CAAC,OAAO,EAAE;QACpB,kBAAkB,EAAE,QAAQ;QAC5B,wBAAwB,EAAE,aAAa;QACvC,mBAAmB,EAAE,SAAS;QAC9B,wBAAwB,EAAE,cAAc;QACxC,wBAAwB,EAAE,cAAc;QACxC,0BAA0B,EAAE,QAAQ;QACpC,2BAA2B,EAAE,QAAQ;QACrC,wBAAwB,EAAE,sBAAsB;QAChD,2BAA2B,EAAE,wBAAwB;QACrD,+BAA+B,EAC7B,8DAA8D;QAChE,kCAAkC,EAAE,OAAO;KAC5C,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC1D,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,eAAe,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACrE,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;IACnD,CAAC;IAED,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAA;IACpD,IAAI,eAAe,EAAE,CAAC;QACpB,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACpE,CAAC;IACD,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAA;IAElF,MAAM,YAAY,GAAG,MAAM,aAAa,CACtC,wDAAwD,EACxD,KAAK,CACN,CAAA;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAA;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE;YACpE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CACV,oGAAoG,IAAI,EAAE,CAC3G,CAAA;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,gCAAgC,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAClE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,MAAM,EAAE,CAAA;AACV,CAAC;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IAC/B,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;AACJ,CAAC;KAAM,CAAC;IACN,GAAG,CAAC,wDAAwD,CAAC,CAAA;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/docs/configuration.md
CHANGED
|
@@ -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
|
-
##
|
|
24
|
-
The setup wizard writes
|
|
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
package/docs/installation.md
CHANGED
|
@@ -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.
|
|
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
|
package/docs/launchd.md
ADDED
|
@@ -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
|
@@ -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.
|
|
3
|
+
"version": "1.2.3",
|
|
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
|
],
|