@bd7pil/ocrc 0.13.6 → 0.14.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
@@ -65,7 +65,7 @@ required**:
65
65
  ```
66
66
  2. **From Telegram** (once the bot is running): send `/pair`, open the link.
67
67
 
68
- Links carry a *pending* token — valid **5 minutes, single use**, and issuing
68
+ Links carry a *pending* token — valid **1 minute, single use**, and issuing
69
69
  a new one invalidates the old (refresh = new code). The device exchanges it
70
70
  for the real access token on first open; the token never appears in a URL
71
71
  again. Already-paired sessions can onboard further devices from the web
package/dist/cli/index.js CHANGED
@@ -24,12 +24,12 @@ COMMANDS:
24
24
  install Install as opencode plugin
25
25
  uninstall Remove from opencode plugin config
26
26
  pair Show QR + URL to pair a device
27
- start <dir> Start the production instance (detached; env from ~/.ocrc/config.env)
28
- start --watch <dir> Foreground supervisor: adopt-or-spawn + crash auto-restart
29
- restore Re-launch the last instance under --watch (for @reboot cron)
30
- stop Stop it (watcher first, then the instance)
31
- restart [dir] Restart it (keeps the current mode)
32
- status Show instance state (server / watcher / web panel / workdir)
27
+ start <dir> Start the production instance under its supervisor
28
+ (crash auto-restart; env from ~/.ocrc/config.env)
29
+ restore Re-launch the last instance (the @reboot cron calls this)
30
+ stop Stop it (supervisor first, then the instance)
31
+ restart [dir] Restart it
32
+ status Show instance state (server / supervisor / web panel / workdir)
33
33
  host Run standalone against an ACP agent (no opencode; OCRC_ACP_CMD)
34
34
  --help, -h Show this help
35
35
  `;
@@ -1,19 +1,24 @@
1
1
  // service.ts — `ocrc start|stop|restart|status|restore`: production instance
2
- // lifecycle, the octg `octg start <dir>` ergonomic.
2
+ // lifecycle, matching octg's ergonomics: ONE command, supervision built in.
3
3
  //
4
- // Two start modes:
5
- // ocrc start <dir> detached one-shot launcher (no supervision).
6
- // ocrc start --watch <dir> FOREGROUND supervisor (run-4096.sh semantics in
7
- // Node): adopt-or-spawn, crash-restart after a
8
- // delay, exit-code>=128 / stop-file = intentional
9
- // stop. User runs it under nohup/tmux; `ocrc
10
- // restore` re-launches it after reboot.
11
- // The plugin still cannot supervise its own host — the watcher is this CLI
12
- // process watching from outside; in steady state it is a dormant poll loop.
4
+ // ocrc start <dir> spawn a detached supervisor (adopt-or-spawn, crash
5
+ // auto-restart, .stop-file graceful stop) and exit —
6
+ // exactly what octg's start did by generating run-N.sh
7
+ // ocrc stop TERM the supervisor (its cleanup chain takes the
8
+ // instance down), port-level fallback, SIGKILL last
9
+ // ocrc restart [dir] stop + start
10
+ // ocrc status server / supervisor / web panel / workdir
11
+ // ocrc restore idempotent revive — reads last.json; the @reboot cron
12
+ // line (`ocrc restore`) is the only boot-restore path
13
+ //
14
+ // The plugin cannot supervise its own host; the supervisor is this CLI
15
+ // process running --supervisor (hidden arg) in a detached self-spawn.
13
16
  import { spawn, spawnSync } from 'node:child_process';
14
17
  import { existsSync, readFileSync, writeFileSync, mkdirSync, appendFileSync, openSync, unlinkSync } from 'node:fs';
15
18
  import { join } from 'node:path';
16
19
  import { homedir } from 'node:os';
20
+ import { fileURLToPath } from 'node:url';
21
+ import { resolve } from 'node:path';
17
22
  const OCRC_HOME = process.env.OCRC_HOME ?? join(homedir(), '.ocrc');
18
23
  const RUN_DIR = join(OCRC_HOME, 'run');
19
24
  const CONFIG_FILE = join(OCRC_HOME, 'config.env');
@@ -80,12 +85,12 @@ function alive(pid) {
80
85
  return false;
81
86
  }
82
87
  }
83
- function pidFilePath(port, kind) {
84
- return join(RUN_DIR, `${kind}-${port}.pid`);
88
+ function pidFilePath(port) {
89
+ return join(RUN_DIR, `${port}.pid`);
85
90
  }
86
- function readPid(port, kind) {
91
+ function readPid(port) {
87
92
  try {
88
- const raw = readFileSync(pidFilePath(port, kind), 'utf-8').trim();
93
+ const raw = readFileSync(pidFilePath(port), 'utf-8').trim();
89
94
  const pid = Number(raw);
90
95
  return Number.isFinite(pid) && pid > 0 ? pid : null;
91
96
  }
@@ -116,11 +121,10 @@ function lastWorkDir() {
116
121
  return null;
117
122
  }
118
123
  }
119
- // ── watch mode: the foreground supervisor ───────────────────────────────────
120
- async function watchLoop(cfg, workDir) {
124
+ // ── supervisor (the run-N.sh equivalent): an internal, detached self-spawn ──
125
+ async function supervisorLoop(cfg, workDir) {
121
126
  const stopFile = join(RUN_DIR, `.stop-${cfg.port}`);
122
- const watchPidFile = pidFilePath(cfg.port, 'watch');
123
- let child = null;
127
+ const pidFile = pidFilePath(cfg.port);
124
128
  let childPid = null;
125
129
  let stopping = false;
126
130
  const killChild = () => {
@@ -138,56 +142,55 @@ async function watchLoop(cfg, workDir) {
138
142
  }
139
143
  catch { /* absent */ }
140
144
  try {
141
- unlinkSync(watchPidFile);
145
+ unlinkSync(pidFile);
142
146
  }
143
147
  catch { /* absent */ }
144
- console.log(`[watch:${cfg.port}] stopped`);
148
+ console.log(`[supervisor:${cfg.port}] stopped`);
145
149
  process.exit(0);
146
150
  };
147
151
  process.on('SIGTERM', () => { stopping = true; killChild(); });
148
152
  process.on('SIGINT', () => { stopping = true; killChild(); });
149
153
  mkdirSync(RUN_DIR, { recursive: true });
150
- writeFileSync(watchPidFile, String(process.pid));
151
- console.log(`[watch:${cfg.port}] supervising (pid ${process.pid}, workdir ${workDir}; stop: ocrc stop)`);
154
+ writeFileSync(pidFile, String(process.pid));
155
+ console.log(`[supervisor:${cfg.port}] supervising (pid ${process.pid}, workdir ${workDir}; stop: ocrc stop)`);
152
156
  while (!stopping) {
153
157
  if (existsSync(stopFile)) {
154
- console.log(`[watch:${cfg.port}] stop file detected`);
158
+ console.log(`[supervisor:${cfg.port}] stop file detected`);
155
159
  cleanupAndExit();
156
160
  }
157
161
  // Adopt an already-listening instance (octg takeover semantics)…
158
162
  const existing = pidOnPort(cfg.port);
159
163
  if (existing !== null) {
160
- console.log(`[watch:${cfg.port}] adopted existing opencode (pid ${existing})`);
164
+ console.log(`[supervisor:${cfg.port}] adopted existing opencode (pid ${existing})`);
161
165
  childPid = existing;
162
166
  while (alive(childPid) && !existsSync(stopFile) && !stopping)
163
167
  await sleep(1000);
164
168
  }
165
169
  else {
166
- // …or spawn our own attached child and await its exit code.
170
+ // …or spawn our own attached child and await its exit.
167
171
  if (!existsSync(cfg.bin)) {
168
- console.error(`[watch:${cfg.port}] opencode binary missing: ${cfg.bin}`);
172
+ console.error(`[supervisor:${cfg.port}] opencode binary missing: ${cfg.bin}`);
169
173
  process.exit(1);
170
174
  }
171
- appendFileSync(PROD_LOG, `\n[watch ${new Date().toISOString()}] spawn ${cfg.mode} :${cfg.port}\n`);
172
- child = spawn(cfg.bin, [cfg.mode, '--port', cfg.port, `--hostname=${cfg.host}`], {
175
+ appendFileSync(PROD_LOG, `\n[supervisor ${new Date().toISOString()}] spawn ${cfg.mode} :${cfg.port}\n`);
176
+ const child = spawn(cfg.bin, [cfg.mode, '--port', cfg.port, `--hostname=${cfg.host}`], {
173
177
  cwd: workDir,
174
178
  stdio: ['ignore', 'inherit', 'inherit'],
175
179
  env: { ...process.env, ...cfg.env },
176
180
  });
177
181
  childPid = child.pid ?? null;
178
- console.log(`[watch:${cfg.port}] started opencode (pid ${childPid})`);
182
+ console.log(`[supervisor:${cfg.port}] started opencode (pid ${childPid})`);
179
183
  const outcome = await new Promise((resolve) => {
180
184
  child.once('exit', (c, sig) => resolve({ code: c, signal: sig ?? null }));
181
185
  });
182
- child = null;
183
186
  childPid = null;
184
187
  if (stopping)
185
188
  break;
186
189
  if (!shouldRestart(outcome.code, outcome.signal, existsSync(stopFile))) {
187
- console.log(`[watch:${cfg.port}] opencode exited intentionally (code=${outcome.code ?? '-'} signal=${outcome.signal ?? '-'})`);
190
+ console.log(`[supervisor:${cfg.port}] opencode exited intentionally (code=${outcome.code ?? '-'} signal=${outcome.signal ?? '-'})`);
188
191
  cleanupAndExit();
189
192
  }
190
- console.log(`[watch:${cfg.port}] opencode CRASHED (code=${outcome.code ?? '-'} signal=${outcome.signal ?? '-'}); restarting in ${cfg.watchDelayMs / 1000}s`);
193
+ console.log(`[supervisor:${cfg.port}] opencode CRASHED (code=${outcome.code ?? '-'} signal=${outcome.signal ?? '-'}); restarting in ${cfg.watchDelayMs / 1000}s`);
191
194
  }
192
195
  if (stopping)
193
196
  break;
@@ -197,52 +200,59 @@ async function watchLoop(cfg, workDir) {
197
200
  }
198
201
  // ── commands ────────────────────────────────────────────────────────────────
199
202
  export async function main(argv) {
200
- // argv[0] is the command word; --watch may sit anywhere after it.
201
- const watch = argv.includes('--watch');
202
- const args = argv.filter((a) => a !== '--watch');
203
- const cmd = args[0];
204
- const rest = args.slice(1);
203
+ // Internal entry: the detached supervisor process itself.
204
+ if (argv[0] === '--supervisor') {
205
+ const workDir = argv[1] ?? '';
206
+ if (!workDir || !existsSync(workDir)) {
207
+ console.error('[supervisor] invalid workdir');
208
+ process.exit(1);
209
+ }
210
+ await supervisorLoop(loadConfig(), workDir);
211
+ return;
212
+ }
213
+ // `--watch` is accepted and IGNORED (pre-0.14.0 muscle memory): supervision
214
+ // is always on, octg-style. The first non-flag word is the command.
215
+ const cmd = argv.find((a) => !a.startsWith('--')) ?? '';
216
+ const rest = (() => {
217
+ const i = argv.findIndex((a) => !a.startsWith('--'));
218
+ return i >= 0 ? argv.slice(i + 1) : [];
219
+ })();
205
220
  const cfg = loadConfig();
206
221
  const webPort = readConfigEnv().OCRC_WEB_PORT ?? '4099';
207
222
  if (cmd === 'start') {
208
223
  const workDir = rest[0] ?? lastWorkDir();
209
224
  if (!workDir || !existsSync(workDir)) {
210
- console.error('usage: ocrc start [--watch] <work_dir>');
225
+ console.error('usage: ocrc start <work_dir>');
211
226
  process.exit(1);
212
227
  }
213
- if (watch) {
214
- // One watcher per port: a live watch pid file refuses to double-start.
215
- const wpid = readPid(cfg.port, 'watch');
216
- if (wpid !== null && alive(wpid)) {
217
- console.log(`watcher already running (pid ${wpid}) — nothing to do`);
218
- return;
219
- }
220
- await watchLoop(cfg, workDir);
221
- return;
222
- }
223
228
  const existing = pidOnPort(cfg.port);
224
229
  if (existing !== null) {
225
230
  console.log(`already running (pid ${existing}, port ${cfg.port}) — nothing to do`);
226
231
  return;
227
232
  }
233
+ const supPid = readPid(cfg.port);
234
+ if (supPid !== null && alive(supPid)) {
235
+ console.log(`supervisor already running (pid ${supPid}) — it will adopt or restart the instance`);
236
+ return;
237
+ }
228
238
  if (!existsSync(cfg.bin)) {
229
239
  console.error(`opencode binary not found: ${cfg.bin} (set OCRC_SERVER_BIN in ${CONFIG_FILE})`);
230
240
  process.exit(1);
231
241
  }
232
242
  mkdirSync(RUN_DIR, { recursive: true });
233
243
  writeFileSync(join(RUN_DIR, 'last.json'), JSON.stringify({ workDir, port: cfg.port }, null, 2));
234
- // Detached + unref + stdin ignored: the child survives the CLI exiting
235
- // (nohup-equivalent). stdout/stderr append to prod.log.
244
+ // octg parity: `start` hands off to a detached supervisor and returns.
245
+ // Spawn SELF (--supervisor) detached; stdout/stderr append to prod.log.
246
+ const self = fileURLToPath(import.meta.url);
236
247
  const out = openSync(PROD_LOG, 'a');
237
- const child = spawn(cfg.bin, [cfg.mode, '--port', cfg.port, `--hostname=${cfg.host}`], {
238
- cwd: workDir,
248
+ const child = spawn(process.execPath, [self, '--supervisor', workDir], {
239
249
  detached: true,
240
250
  stdio: ['ignore', out, out],
241
251
  env: { ...process.env, ...cfg.env },
242
252
  });
243
253
  child.unref();
244
- appendFileSync(PROD_LOG, `\n[ocrc start ${new Date().toISOString()}] pid=${child.pid} workdir=${workDir}\n`);
245
- console.log(`starting opencode ${cfg.mode} on :${cfg.port} (pid ${child.pid}, workdir ${workDir})…`);
254
+ appendFileSync(PROD_LOG, `\n[ocrc start ${new Date().toISOString()}] supervisor pid=${child.pid} workdir=${workDir}\n`);
255
+ console.log(`starting supervised opencode on :${cfg.port} (supervisor pid ${child.pid}, workdir ${workDir})…`);
246
256
  if (!(await waitPort(cfg.port, true, 30))) {
247
257
  console.error(`port ${cfg.port} did not come up in 30s — check ${PROD_LOG}`);
248
258
  process.exit(1);
@@ -252,50 +262,41 @@ export async function main(argv) {
252
262
  return;
253
263
  }
254
264
  if (cmd === 'restore') {
255
- // Idempotent revive: nothing to do when the instance (watched or bare) is
256
- // already up — this runs every minute from cron.
265
+ // Idempotent revive: nothing to do when the instance is already up —
266
+ // this runs every boot from the @reboot cron line.
257
267
  if (pidOnPort(cfg.port) !== null) {
258
268
  console.log(`already running (port ${cfg.port}) — nothing to restore`);
259
269
  return;
260
270
  }
261
271
  const workDir = lastWorkDir();
262
272
  if (!workDir) {
263
- console.error('no previous work_dir on record — usage: ocrc start --watch <work_dir> first');
273
+ console.error('no previous work_dir on record — usage: ocrc start <work_dir> first');
264
274
  process.exit(1);
265
275
  }
266
- console.log(`restoring watched instance for ${workDir}…`);
267
- await main(['start', '--watch', workDir]);
276
+ console.log(`restoring supervised instance for ${workDir}…`);
277
+ await main(['start', workDir]);
268
278
  return;
269
279
  }
270
280
  if (cmd === 'stop') {
271
- // The watcher owns the child via its cleanup chain — TERM it first.
272
- const wpid = readPid(cfg.port, 'watch');
273
- if (wpid !== null && alive(wpid)) {
274
- console.log(`stopping watcher (pid ${wpid})…`);
281
+ // The supervisor owns the child via its cleanup chain — TERM it first.
282
+ const supPid = readPid(cfg.port);
283
+ if (supPid !== null && alive(supPid)) {
284
+ console.log(`stopping supervisor (pid ${supPid})…`);
275
285
  try {
276
- process.kill(wpid, 'SIGTERM');
286
+ process.kill(supPid, 'SIGTERM');
277
287
  }
278
288
  catch { /* gone */ }
279
- // Watcher's cleanup chain: TERM child → free port → remove files.
280
289
  for (let i = 0; i < 20; i++) {
281
- if (!alive(wpid))
290
+ if (!alive(supPid))
282
291
  break;
283
292
  await sleep(500);
284
293
  }
285
294
  }
286
- let pid = readPid(cfg.port, 'prod');
287
- if (pid !== null && !alive(pid))
288
- pid = null;
289
- if (pid === null)
290
- pid = pidOnPort(cfg.port);
295
+ const pid = pidOnPort(cfg.port);
291
296
  if (pid === null) {
292
297
  console.log(`not running (nothing on port ${cfg.port})`);
293
298
  try {
294
- unlinkSync(pidFilePath(cfg.port, 'prod'));
295
- }
296
- catch { /* already gone */ }
297
- try {
298
- unlinkSync(pidFilePath(cfg.port, 'watch'));
299
+ unlinkSync(pidFilePath(cfg.port));
299
300
  }
300
301
  catch { /* already gone */ }
301
302
  return;
@@ -314,7 +315,7 @@ export async function main(argv) {
314
315
  await waitPort(cfg.port, false, 5);
315
316
  }
316
317
  try {
317
- unlinkSync(pidFilePath(cfg.port, 'prod'));
318
+ unlinkSync(pidFilePath(cfg.port));
318
319
  }
319
320
  catch { /* already gone */ }
320
321
  console.log(pidOnPort(cfg.port) === null ? `stopped (port ${cfg.port} free)` : `port ${cfg.port} still busy — check manually`);
@@ -326,29 +327,34 @@ export async function main(argv) {
326
327
  console.error('no previous work_dir — usage: ocrc restart <work_dir>');
327
328
  process.exit(1);
328
329
  }
329
- const wasWatched = (() => {
330
- const wpid = readPid(cfg.port, 'watch');
331
- return wpid !== null && alive(wpid);
332
- })();
333
330
  await main(['stop']);
334
- await main(wasWatched ? ['start', '--watch', workDir] : ['start', workDir]);
331
+ await main(['start', workDir]);
335
332
  return;
336
333
  }
337
334
  if (cmd === 'status') {
338
335
  const portPid = pidOnPort(cfg.port);
339
336
  const ver = spawnSync(cfg.bin, ['--version'], { encoding: 'utf-8' }).stdout?.trim();
340
- const wpid = readPid(cfg.port, 'watch');
341
- console.log(`binary : ${cfg.bin} (${(ver ?? 'n/a').split('\n')[0]})`);
342
- console.log(`server : port ${cfg.port} ${portPid !== null ? `UP (pid ${portPid})` : 'DOWN'}`);
343
- console.log(`watch : ${wpid !== null && alive(wpid) ? `active (pid ${wpid})` : 'none (bare start)'}`);
337
+ const supPid = readPid(cfg.port);
338
+ console.log(`binary : ${cfg.bin} (${(ver ?? 'n/a').split('\n')[0]})`);
339
+ console.log(`server : port ${cfg.port} ${portPid !== null ? `UP (pid ${portPid})` : 'DOWN'}`);
340
+ console.log(`supervisor: ${supPid !== null && alive(supPid) ? `active (pid ${supPid})` : 'none'}`);
344
341
  const web = httpGetStatus(`http://127.0.0.1:${webPort}/`);
345
- console.log(`web : port ${webPort} ${web !== null ? `HTTP ${web}` : 'unreachable'}`);
342
+ console.log(`web panel : port ${webPort} ${web !== null ? `HTTP ${web}` : 'unreachable'}`);
346
343
  const workDir = lastWorkDir();
347
344
  if (workDir)
348
- console.log(`workdir: ${workDir}`);
345
+ console.log(`workdir : ${workDir}`);
349
346
  return;
350
347
  }
351
- console.error('usage: ocrc start [--watch] <work_dir> | stop | restart [work_dir] | restore | status');
348
+ console.error('usage: ocrc start <work_dir> | stop | restart [work_dir] | status | restore');
352
349
  process.exit(1);
353
350
  }
351
+ // Direct-invocation guard: `start` spawns SELF with --supervisor; when this
352
+ // module IS the entry script, run main() (index.js's dispatcher is absent).
353
+ const selfPath = fileURLToPath(import.meta.url);
354
+ if (process.argv[1] && resolve(process.argv[1]) === selfPath) {
355
+ main(process.argv.slice(2)).catch((err) => {
356
+ console.error(err);
357
+ process.exit(1);
358
+ });
359
+ }
354
360
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export async function buildPairContext() {
27
27
  const url = await resolvePublicUrl({ publicUrl: process.env.WEB_PUBLIC_URL, port });
28
28
  return { token, url };
29
29
  }
30
- const DEFAULT_PENDING_TTL_MS = 5 * 60_000;
30
+ const DEFAULT_PENDING_TTL_MS = 60_000;
31
31
  export function createPairingStore(realToken, ttlMs = DEFAULT_PENDING_TTL_MS) {
32
32
  const random = () => randomBytes(24).toString('base64url');
33
33
  let current = null;
@@ -1 +1 @@
1
- {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../../src/connectivity/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D;4EAC4E;AAC5E,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;AAC1E,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IAC7D,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG;QACZ,wDAAwD;QACxD,EAAE;QACF,GAAG;QACH,EAAE;QACF,yDAAyD;KAC1D,CAAA;IACD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AAC3B,CAAC;AAOD;wDACwD;AACxD,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IACjE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;IACnF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACvB,CAAC;AAsBD,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAA;AAEzC,MAAM,UAAU,kBAAkB,CAAC,SAAuB,EAAE,QAAgB,sBAAsB;IAChG,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClE,IAAI,OAAO,GAA0B,IAAI,CAAA;IAEzC,OAAO;QACL,KAAK;YACH,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;YAC5D,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,QAAQ,CAAC,OAAO;YACd,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAA;YACtD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAA;YAAC,CAAC;YACnE,OAAO,GAAG,IAAI,CAAA,CAAC,aAAa;YAC5B,OAAO,SAAS,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;kCAEkC;AAClC,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAe;IAC/D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAA;AAC3E,CAAC"}
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../../src/connectivity/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D;4EAC4E;AAC5E,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;AAC1E,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IAC7D,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACrC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG;QACZ,wDAAwD;QACxD,EAAE;QACF,GAAG;QACH,EAAE;QACF,yDAAyD;KAC1D,CAAA;IACD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AAC3B,CAAC;AAOD;wDACwD;AACxD,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;IACjE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;IACnF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACvB,CAAC;AAsBD,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAErC,MAAM,UAAU,kBAAkB,CAAC,SAAuB,EAAE,QAAgB,sBAAsB;IAChG,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClE,IAAI,OAAO,GAA0B,IAAI,CAAA;IAEzC,OAAO;QACL,KAAK;YACH,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;YAC5D,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,QAAQ,CAAC,OAAO;YACd,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAA;YACtD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAA;YAAC,CAAC;YACnE,OAAO,GAAG,IAAI,CAAA,CAAC,aAAa;YAC5B,OAAO,SAAS,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;kCAEkC;AAClC,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAe;IAC/D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAA;AAC3E,CAAC"}
@@ -380,10 +380,10 @@ export function registerHandlers(deps) {
380
380
  const { url } = await buildPairContext();
381
381
  if (deps.pairing) {
382
382
  // M11: short-lived single-use pending token — the chat log only ever
383
- // holds a credential that dies in 5 minutes or on first use.
383
+ // holds a credential that dies in 1 minute or on first use.
384
384
  const p = deps.pairing.issue();
385
385
  const pairUrl = buildPairUrlPending(url, p.token);
386
- await ctx.reply(`🔗 <b>Pair a device</b>\n\nOpen this link on the device within <b>5 minutes</b> (single use — sending /pair again invalidates it):\n<code>${pairUrl}</code>`, { parse_mode: 'HTML' });
386
+ await ctx.reply(`🔗 <b>Pair a device</b>\n\nOpen this link on the device within <b>1 minute</b> (single use — sending /pair again invalidates it):\n<code>${pairUrl}</code>`, { parse_mode: 'HTML' });
387
387
  }
388
388
  else {
389
389
  const { token } = await buildPairContext();