@justfortytwo/installer 1.0.0-0 → 1.0.0-10

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.
Files changed (57) hide show
  1. package/README.md +163 -11
  2. package/dist/commands/doctor.d.ts +2 -0
  3. package/dist/commands/doctor.d.ts.map +1 -1
  4. package/dist/commands/doctor.js +11 -8
  5. package/dist/commands/doctor.js.map +1 -1
  6. package/dist/commands/forget.d.ts.map +1 -1
  7. package/dist/commands/forget.js +6 -4
  8. package/dist/commands/forget.js.map +1 -1
  9. package/dist/commands/init.d.ts +86 -0
  10. package/dist/commands/init.d.ts.map +1 -1
  11. package/dist/commands/init.js +254 -56
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/pair.d.ts +8 -0
  14. package/dist/commands/pair.d.ts.map +1 -1
  15. package/dist/commands/pair.js +37 -3
  16. package/dist/commands/pair.js.map +1 -1
  17. package/dist/commands/start.d.ts +2 -0
  18. package/dist/commands/start.d.ts.map +1 -0
  19. package/dist/commands/start.js +35 -0
  20. package/dist/commands/start.js.map +1 -0
  21. package/dist/commands/status.d.ts +14 -0
  22. package/dist/commands/status.d.ts.map +1 -0
  23. package/dist/commands/status.js +54 -0
  24. package/dist/commands/status.js.map +1 -0
  25. package/dist/commands/stop.d.ts +4 -0
  26. package/dist/commands/stop.d.ts.map +1 -0
  27. package/dist/commands/stop.js +34 -0
  28. package/dist/commands/stop.js.map +1 -0
  29. package/dist/commands/update.d.ts +6 -2
  30. package/dist/commands/update.d.ts.map +1 -1
  31. package/dist/commands/update.js +50 -11
  32. package/dist/commands/update.js.map +1 -1
  33. package/dist/engine.d.ts +32 -8
  34. package/dist/engine.d.ts.map +1 -1
  35. package/dist/engine.js +121 -29
  36. package/dist/engine.js.map +1 -1
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +23 -6
  40. package/dist/index.js.map +1 -1
  41. package/dist/oneiros.d.ts +2 -0
  42. package/dist/oneiros.d.ts.map +1 -0
  43. package/dist/oneiros.js +28 -0
  44. package/dist/oneiros.js.map +1 -0
  45. package/dist/render.d.ts +4 -3
  46. package/dist/render.d.ts.map +1 -1
  47. package/dist/render.js +13 -10
  48. package/dist/render.js.map +1 -1
  49. package/dist/runtime.d.ts +75 -0
  50. package/dist/runtime.d.ts.map +1 -0
  51. package/dist/runtime.js +219 -0
  52. package/dist/runtime.js.map +1 -0
  53. package/dist/shim.d.ts +52 -0
  54. package/dist/shim.d.ts.map +1 -0
  55. package/dist/shim.js +163 -0
  56. package/dist/shim.js.map +1 -0
  57. package/package.json +7 -31
@@ -5,7 +5,7 @@
5
5
  // - .env written with secrets + runtime config (gitignored)
6
6
  // - CLAUDE.md + context/* rendered from @justfortytwo/persona templates
7
7
  // - .mcp.json wired to the memory MCP server
8
- // - Ollama EMBED_MODEL pulled (warn-only); the memory DB migrated
8
+ // - Ollama EMBED_MODEL checked/pulled at the chosen OLLAMA_BASE_URL (warn-only); the memory DB migrated
9
9
  // - .fortytwo/state.json records the resolved sibling version set (rollback baseline)
10
10
  // - next-step guidance: set ALLOWED_CHAT_IDS / attach the channel
11
11
  //
@@ -19,7 +19,10 @@ import { spawnSync } from 'node:child_process';
19
19
  import { createInterface } from 'node:readline/promises';
20
20
  import { writeIdentity, recordVersionSet } from '../state.js';
21
21
  import { renderPersona, loadPersonaManifest } from '../render.js';
22
- import { loadMemory, readInstalledVersion, readSelfCompatRanges } from '../engine.js';
22
+ import { loadMemory, readInstalledVersion, readSelfCompatRanges, readSelfVersion, fetchOllamaModels, pullOllamaModel } from '../engine.js';
23
+ import { homedir } from 'node:os';
24
+ import { reconcileOneiros } from '../oneiros.js';
25
+ import { installShim, npmGlobalBin } from '../shim.js';
23
26
  // The embedder model the engine standardizes on (privacy: local-only embeddings).
24
27
  export const EMBED_MODEL = 'qwen3-embedding:0.6b';
25
28
  export const DEFAULT_OLLAMA_BASE_URL = 'http://localhost:11434';
@@ -137,50 +140,95 @@ export function engineInstallSpecs(compatRanges, isPresent) {
137
140
  .map(([name, range]) => `${name}@${range}`);
138
141
  }
139
142
  /**
140
- * Make sure the engine packages the persona + commands need are installed in the
141
- * project. Fresh users get the `create-fortytwo`/`fortytwo` bins from
142
- * @justfortytwo/installer, but its engine siblings are OPTIONAL peers npm does
143
- * not auto-install — so init installs whichever are missing. Presence is checked
144
- * with the SAME resolver the renderer/doctor use (Node's upward node_modules
145
- * walk), so an already-linked dev tree or a prior install is a no-op.
146
- * `--no-install` opts out (managed/offline installs).
143
+ * Make sure the project has what it runs on: the engine packages from
144
+ * fortytwo.compat (only the missing ones) and this CLI itself, pinned exactly,
145
+ * so `fortytwo` keeps working after `npx` exits. Presence is checked with the
146
+ * SAME project-rooted resolver the renderer/doctor use, so an already-linked dev
147
+ * tree or a prior install is a no-op. `--no-install` opts out (managed/offline
148
+ * installs).
147
149
  */
148
150
  async function ensureEngine(root, opts) {
149
151
  const specs = engineInstallSpecs(readSelfCompatRanges(), (s) => readInstalledVersion(s) !== null);
150
- if (specs.length === 0)
152
+ const cliSpec = cliInstallSpec(readSelfVersion(), readInstalledVersion(CLI_PACKAGE), process.env.FORTYTWO_INSTALLER_SPEC);
153
+ if (specs.length === 0 && !cliSpec)
151
154
  return;
152
155
  if (opts.noInstall) {
156
+ if (specs.length === 0)
157
+ return; // the project CLI is optional under --no-install
153
158
  throw new Error(`init: engine packages are not installed: ${specs.join(', ')}\n` +
154
159
  `Install them (npm install ${specs.join(' ')}) or omit --no-install.`);
155
160
  }
156
- process.stdout.write(`Installing engine packages: ${specs.join(', ')}\n`);
157
161
  if (!existsSync(join(root, 'package.json'))) {
158
162
  spawnSync('npm', ['init', '-y'], { cwd: root, stdio: 'ignore' });
159
163
  }
160
- const res = spawnSync('npm', ['install', '--no-audit', '--no-fund', ...specs], { cwd: root, stdio: 'inherit' });
164
+ if (specs.length > 0) {
165
+ process.stdout.write(`Installing engine packages: ${specs.join(', ')}\n`);
166
+ npmInstallOrThrow(root, specs, [], 'engine packages');
167
+ }
168
+ if (cliSpec) {
169
+ // Exact pin: the project's CLI moves only when you re-run init with a newer
170
+ // installer, never as a side effect of `npm install` or `fortytwo update`.
171
+ process.stdout.write(`Adding the fortytwo CLI to this project: ${cliSpec}\n`);
172
+ npmInstallOrThrow(root, [cliSpec], ['--save-exact'], 'the fortytwo CLI');
173
+ }
174
+ }
175
+ function npmInstallOrThrow(root, specs, flags, what) {
176
+ const res = spawnSync('npm', ['install', '--no-audit', '--no-fund', ...flags, ...specs], { cwd: root, stdio: 'inherit' });
161
177
  if (res.status !== 0) {
162
178
  const why = res.error ? res.error.message : `npm exited ${res.status}`;
163
- throw new Error(`init: failed to install engine packages (${why}). Install manually: npm install ${specs.join(' ')}`);
179
+ throw new Error(`init: failed to install ${what} (${why}). Install manually: npm install ${flags.join(' ')} ${specs.join(' ')}`.replace(/ +/g, ' '));
164
180
  }
165
181
  }
182
+ export const CLI_PACKAGE = '@justfortytwo/installer';
183
+ /**
184
+ * The install spec that pins this CLI into the project (so node_modules/.bin/
185
+ * fortytwo exists and package-lock.json records it), or null when the project
186
+ * already has exactly this version. `override` (FORTYTWO_INSTALLER_SPEC) lets a
187
+ * dev/CI run install a local tarball instead of the registry copy.
188
+ */
189
+ export function cliInstallSpec(selfVersion, installedVersion, override) {
190
+ if (!selfVersion || installedVersion === selfVersion)
191
+ return null;
192
+ return override || `${CLI_PACKAGE}@${selfVersion}`;
193
+ }
166
194
  function recordInstalledSet(root) {
167
195
  const pins = buildVersionPins(readSelfCompatRanges(), readInstalledVersion);
168
196
  recordVersionSet(pins, root);
169
197
  return pins;
170
198
  }
199
+ const defaultEmbedModelDeps = {
200
+ listModels: fetchOllamaModels,
201
+ pullModel: pullOllamaModel,
202
+ log: (line) => { process.stdout.write(line + '\n'); },
203
+ };
204
+ /**
205
+ * Make sure `model` is available on the Ollama server at `baseUrl` — the SAME
206
+ * endpoint written to .env and .mcp.json. Checks /api/tags first and pulls (over
207
+ * HTTP, on that server) only when missing. Warn-only: returns a status note.
208
+ */
209
+ export async function ensureEmbedModel(baseUrl, model, deps = defaultEmbedModelDeps) {
210
+ const models = await deps.listModels(baseUrl);
211
+ if (models === null) {
212
+ return `! Ollama unreachable at ${baseUrl} — could not check or pull ${model} (semantic recall will degrade until it is available)`;
213
+ }
214
+ if (models.includes(model))
215
+ return `✓ embedder ${model} available at ${baseUrl}`;
216
+ deps.log(`Pulling ${model} on ${baseUrl} (this can take a few minutes)…`);
217
+ const err = await deps.pullModel(baseUrl, model);
218
+ if (err)
219
+ return `! could not pull ${model} via ${baseUrl}: ${err} (semantic recall will degrade until it is present)`;
220
+ return `✓ pulled ${model} on ${baseUrl}`;
221
+ }
171
222
  /**
172
- * Provision local infra: pull the embedder model (warn-only, like wakeup.sh —
223
+ * Provision local infra: make the embedder model available (warn-only, like wakeup.sh —
173
224
  * the engine degrades to a fake embedder rather than hard-failing) and run the
174
225
  * memory DB migrations via the memory package (the engine owns the schema; the
175
226
  * CLI must not duplicate it).
176
227
  */
177
228
  async function provision(opts) {
178
229
  const notes = [];
179
- // 1. embedder model (best-effort)
180
- const pulled = spawnSync('ollama', ['pull', opts.embedModel], { stdio: 'ignore' });
181
- if (pulled.status !== 0) {
182
- notes.push(`! could not pull ${opts.embedModel} via ollama (semantic recall will degrade until it is present)`);
183
- }
230
+ // 1. embedder model (best-effort), on the configured endpoint
231
+ notes.push(await ensureEmbedModel(opts.ollamaBaseUrl, opts.embedModel));
184
232
  // 2. db migrations via the memory engine
185
233
  const mem = await loadMemory();
186
234
  if (mem && typeof mem.openDb === 'function' && typeof mem.runMigrations === 'function') {
@@ -213,8 +261,9 @@ function parseInitArgs(argv) {
213
261
  let yes = false;
214
262
  let noInstall = false;
215
263
  let answersFile;
216
- let ollamaBaseUrl = process.env.OLLAMA_BASE_URL ?? DEFAULT_OLLAMA_BASE_URL;
217
- let dbPath = process.env.DB_PATH ?? DEFAULT_DB_PATH;
264
+ let ollamaBaseUrl;
265
+ // Shell env, else the DB_PATH a previous init saved in .env (a re-run keeps a custom path).
266
+ let dbPath = readProjectSetting('DB_PATH') ?? DEFAULT_DB_PATH;
218
267
  const SECRET_FLAGS = {
219
268
  'telegram-bot-token': 'TELEGRAM_BOT_TOKEN',
220
269
  'allowed-chat-ids': 'ALLOWED_CHAT_IDS',
@@ -238,7 +287,7 @@ function parseInitArgs(argv) {
238
287
  if (name === 'answers')
239
288
  answersFile = val;
240
289
  else if (name === 'ollama-base-url')
241
- ollamaBaseUrl = val;
290
+ ollamaBaseUrl = val.trim() || undefined;
242
291
  else if (name === 'db-path')
243
292
  dbPath = val;
244
293
  else if (SECRET_FLAGS[name])
@@ -252,15 +301,50 @@ function parseInitArgs(argv) {
252
301
  secrets.ALLOWED_CHAT_IDS ??= process.env.ALLOWED_CHAT_IDS;
253
302
  return { yes, noInstall, answersFile, flags, secrets, ollamaBaseUrl, dbPath };
254
303
  }
304
+ /**
305
+ * A list field's manifest prompt without its "one per line" hint. readline is
306
+ * single-line (Enter — or Shift+Enter in many terminals — submits), so that hint
307
+ * promised input the UI can't take; askList gives the real instructions instead.
308
+ */
309
+ export function listPromptLabel(prompt) {
310
+ return prompt.replace(/,?\s*one (?:item |step )?per line\.?\s*$/i, '').trim();
311
+ }
312
+ /**
313
+ * Collect a list one item per prompt; a blank entry ends it. Each answer is ONE
314
+ * item, verbatim (trimmed) — commas inside it are kept. A required list re-asks
315
+ * on an immediate blank instead of returning []. Pure: `ask` is injected.
316
+ */
317
+ export async function askList(label, ask, opts = {}) {
318
+ const items = [];
319
+ let prompt = `${label} — enter one at a time.\nPress Enter on an empty line when done.\n> `;
320
+ while (true) {
321
+ const item = (await ask(prompt)).trim();
322
+ if (item) {
323
+ items.push(item);
324
+ prompt = '> ';
325
+ }
326
+ else if (items.length === 0 && opts.required) {
327
+ prompt = ' (at least one is required)\n> ';
328
+ }
329
+ else {
330
+ return items;
331
+ }
332
+ }
333
+ }
334
+ /** Ask for the required fields still missing, in order; lists item by item. Pure: `ask` is injected. */
335
+ export async function askMissingAnswers(fields, missing, answers, ask) {
336
+ for (const key of missing) {
337
+ const field = fields.find((f) => f.key === key);
338
+ answers[key] = field.type === 'list'
339
+ ? await askList(listPromptLabel(field.prompt), ask, { required: field.required })
340
+ : (await ask(`${field.prompt}\n> `)).trim();
341
+ }
342
+ }
255
343
  /** Prompt (readline) for the required fields still missing. TTY only. */
256
344
  async function promptMissing(fields, missing, answers) {
257
345
  const rl = createInterface({ input: process.stdin, output: process.stdout });
258
346
  try {
259
- for (const key of missing) {
260
- const field = fields.find((f) => f.key === key);
261
- const ans = (await rl.question(`${field.prompt}\n> `)).trim();
262
- answers[key] = field.type === 'list' ? coerceList(ans) : ans;
263
- }
347
+ await askMissingAnswers(fields, missing, answers, (q) => rl.question(q));
264
348
  }
265
349
  finally {
266
350
  rl.close();
@@ -287,6 +371,116 @@ export async function collectChannelSecrets(existing, ask) {
287
371
  }
288
372
  return added;
289
373
  }
374
+ const isHttpUrl = (v) => {
375
+ try {
376
+ const u = new URL(v);
377
+ return (u.protocol === 'http:' || u.protocol === 'https:') && u.hostname !== '';
378
+ }
379
+ catch {
380
+ return false;
381
+ }
382
+ };
383
+ /** The value of `key` in .env content (last assignment wins; surrounding quotes stripped), or undefined. */
384
+ export function readEnvValue(content, key) {
385
+ return parseEnvContent(content)[key] || undefined;
386
+ }
387
+ /** All `KEY=value` assignments in .env content (last wins; surrounding quotes stripped; other lines ignored). */
388
+ export function parseEnvContent(content) {
389
+ const vars = {};
390
+ for (const line of content.split(/\r?\n/)) {
391
+ const m = line.match(/^([A-Z0-9_]+)=(.*)$/);
392
+ if (m)
393
+ vars[m[1]] = m[2].trim().replace(/^(['"])(.*)\1$/, '$2');
394
+ }
395
+ return vars;
396
+ }
397
+ /**
398
+ * A runtime setting for a command run inside the project: the shell env wins,
399
+ * else the value `init` saved in `<root>/.env`. The CLI never loads .env into
400
+ * process.env, so without this fallback doctor/forget silently used defaults
401
+ * (e.g. localhost Ollama) whenever the variable was not exported.
402
+ */
403
+ export function readProjectSetting(key, root = process.cwd()) {
404
+ const fromShell = process.env[key]?.trim();
405
+ if (fromShell)
406
+ return fromShell;
407
+ const envPath = join(root, '.env');
408
+ return existsSync(envPath) ? readEnvValue(readFileSync(envPath, 'utf8'), key) : undefined;
409
+ }
410
+ /**
411
+ * Choose the Ollama endpoint for this init. Precedence:
412
+ * 1. an explicit `--ollama-base-url` — used as-is, never re-asked;
413
+ * 2. interactive: ask, with a default of the inherited OLLAMA_BASE_URL env,
414
+ * else the value already saved in the project's .env (so re-running init
415
+ * and pressing Enter keeps a custom endpoint), else http://localhost:11434;
416
+ * a typed URL is used exactly as entered (an invalid one is re-asked, up to
417
+ * 3 tries);
418
+ * 3. non-interactive (`ask` absent): that same default.
419
+ * Pure: `ask` is injected, so it unit-tests without a TTY.
420
+ */
421
+ export async function resolveOllamaBaseUrl(opts) {
422
+ if (opts.flag)
423
+ return opts.flag;
424
+ const fallback = opts.env?.trim() || opts.saved?.trim() || DEFAULT_OLLAMA_BASE_URL;
425
+ if (!opts.ask)
426
+ return fallback;
427
+ let prompt = `Ollama base URL — where the embedder runs (Enter for ${fallback}): `;
428
+ for (let attempt = 0; attempt < 3; attempt++) {
429
+ const answer = (await opts.ask(prompt)).trim();
430
+ if (!answer)
431
+ return fallback;
432
+ if (isHttpUrl(answer))
433
+ return answer;
434
+ prompt = ` "${answer}" is not an http(s) URL (e.g. http://ollama:11434). Ollama base URL (Enter for ${fallback}): `;
435
+ }
436
+ throw new Error('init: no valid Ollama base URL given (expected http(s)://host:port)');
437
+ }
438
+ /**
439
+ * The closing "what now" lines. Points at the user-facing lifecycle
440
+ * (`fortytwo start`, `fortytwo pair`), never at the internal service bins.
441
+ * Telegram is optional: its bridge only starts with TELEGRAM_BOT_TOKEN, so say
442
+ * so here rather than let `start` skip it silently.
443
+ */
444
+ export function nextSteps(o) {
445
+ const cmd = o.cmd ?? 'fortytwo';
446
+ const lines = ['', 'Fortytwo is ready.', '', 'Start it with:', ` ${cmd} start`, ''];
447
+ if (!o.hasBotToken) {
448
+ lines.push('To use Telegram, first set TELEGRAM_BOT_TOKEN in .env (create a bot with @BotFather).');
449
+ }
450
+ if (o.allowedChatIds) {
451
+ lines.push(`Telegram chat(s) ${o.allowedChatIds} are already authorized. To connect another, with fortytwo running:`);
452
+ }
453
+ else {
454
+ lines.push('Then connect Telegram with:');
455
+ }
456
+ lines.push(` ${cmd} pair`);
457
+ return lines;
458
+ }
459
+ /**
460
+ * The init report line for the user-level launcher, and the command to tell the
461
+ * user to type: `fortytwo` when our launcher is on PATH, else `npx fortytwo`
462
+ * (which runs the project-local CLI with no download).
463
+ */
464
+ export function shimReport(r) {
465
+ switch (r.status) {
466
+ case 'installed':
467
+ case 'updated':
468
+ case 'unchanged':
469
+ return { line: `✓ fortytwo command: ${r.path} (runs the CLI of the project you are in)`, cmd: 'fortytwo' };
470
+ case 'foreign':
471
+ return {
472
+ line: `! left ${r.path} alone (not installed by Fortytwo); this project's CLI runs with \`npx fortytwo\``,
473
+ cmd: 'npx fortytwo',
474
+ };
475
+ case 'no-dir':
476
+ return {
477
+ line: '! no writable directory on your PATH for the fortytwo command; run it from this project with `npx fortytwo` (or set FORTYTWO_BIN_DIR and re-run init)',
478
+ cmd: 'npx fortytwo',
479
+ };
480
+ case 'unsupported':
481
+ return { line: `! no fortytwo launcher on ${r.platform}; run it from this project with \`npx fortytwo\``, cmd: 'npx fortytwo' };
482
+ }
483
+ }
290
484
  export async function runInit(argv) {
291
485
  const root = process.cwd();
292
486
  const opts = parseInitArgs(argv);
@@ -321,29 +515,49 @@ export async function runInit(argv) {
321
515
  updatedAt: new Date().toISOString(),
322
516
  };
323
517
  writeIdentity(identity, root);
324
- // Interactively offer the optional Telegram secrets not already provided, so
325
- // the channel works without a second manual .env edit. Skippable; non-TTY/--yes
326
- // runs are unaffected (secrets still come from flags/env there).
518
+ // Interactively ask for the Ollama endpoint (Enter keeps the default) and offer
519
+ // the optional Telegram secrets not already provided, so neither needs a second
520
+ // manual .env edit. Non-TTY/--yes runs are unaffected (flags/env/defaults).
521
+ const envPath = join(root, '.env');
522
+ const urlSources = {
523
+ flag: opts.ollamaBaseUrl,
524
+ env: process.env.OLLAMA_BASE_URL,
525
+ saved: existsSync(envPath) ? readEnvValue(readFileSync(envPath, 'utf8'), 'OLLAMA_BASE_URL') : undefined,
526
+ };
527
+ let ollamaBaseUrl;
327
528
  if (interactive) {
328
529
  const rl = createInterface({ input: process.stdin, output: process.stdout });
329
530
  try {
330
- Object.assign(opts.secrets, await collectChannelSecrets(opts.secrets, (q) => rl.question(q)));
531
+ const ask = (q) => rl.question(q);
532
+ ollamaBaseUrl = await resolveOllamaBaseUrl({ ...urlSources, ask });
533
+ Object.assign(opts.secrets, await collectChannelSecrets(opts.secrets, ask));
331
534
  }
332
535
  finally {
333
536
  rl.close();
334
537
  }
335
538
  }
539
+ else {
540
+ ollamaBaseUrl = await resolveOllamaBaseUrl(urlSources);
541
+ }
336
542
  // Seed runtime config alongside any provided secrets.
337
543
  writeEnv({
338
- OLLAMA_BASE_URL: opts.ollamaBaseUrl,
544
+ OLLAMA_BASE_URL: ollamaBaseUrl, // same value as .mcp.json + the provision check/pull
339
545
  EMBED_MODEL,
340
546
  DB_PATH: opts.dbPath,
341
547
  ...opts.secrets,
342
548
  }, root);
343
549
  const render = renderPersona(identity, { root });
344
- writeMcpJson(root, opts.dbPath, opts.ollamaBaseUrl);
345
- const provisionNotes = await provision({ ollamaBaseUrl: opts.ollamaBaseUrl, embedModel: EMBED_MODEL, dbPath: opts.dbPath });
550
+ writeMcpJson(root, opts.dbPath, ollamaBaseUrl);
551
+ const provisionNotes = await provision({ ollamaBaseUrl, embedModel: EMBED_MODEL, dbPath: opts.dbPath });
552
+ await reconcileOneiros(root, opts.dbPath);
346
553
  const pins = recordInstalledSet(root);
554
+ const shim = shimReport(installShim({
555
+ home: homedir(),
556
+ pathEnv: process.env.PATH ?? '',
557
+ platform: process.platform,
558
+ override: process.env.FORTYTWO_BIN_DIR || undefined,
559
+ npmGlobalBin,
560
+ }));
347
561
  // Report.
348
562
  const out = process.stdout;
349
563
  out.write(`✓ wrote .fortytwo/identity.json (${Object.keys(answers).length} answers)\n`);
@@ -352,28 +566,12 @@ export async function runInit(argv) {
352
566
  for (const n of provisionNotes)
353
567
  out.write(` ${n}\n`);
354
568
  out.write(`✓ recorded ${pins.length} installed engine package(s)\n`);
355
- // Telegram is an OPTIONAL channel; init only wires its secrets into .env when
356
- // you pass them (--telegram-bot-token / --allowed-chat-ids, or the matching env
357
- // vars). The bridge REFUSES TO START without TELEGRAM_BOT_TOKEN, so surface that
358
- // requirement here rather than letting the bridge fail on first launch.
359
- const next = ['\nNext — to use the Telegram channel (optional):'];
360
- if (!opts.secrets.TELEGRAM_BOT_TOKEN) {
361
- next.push(" • set TELEGRAM_BOT_TOKEN in .env — create a bot with @BotFather (the bridge won't start without it)");
362
- }
363
- next.push(' • start the channel bridge');
364
- if (opts.secrets.ALLOWED_CHAT_IDS) {
365
- next.push(` • ${opts.secrets.ALLOWED_CHAT_IDS} is already authorized — add more chats with \`fortytwo pair\` → \`/login <code>\``);
366
- }
367
- else {
368
- next.push(' • authorize a chat: run `fortytwo pair` and send `/login <code>`, or set ALLOWED_CHAT_IDS in .env');
369
- }
370
- // The scheduler is now part of the engine (installed above), but — like the
371
- // bridge — it's a long-running process the operator starts, not a supervised
372
- // service. Surface how to run it; doctor reports its liveness via the heartbeat.
373
- next.push('\nNext — to run scheduled / proactive jobs (briefings, sweeps, reminders):');
374
- next.push(' • start the scheduler daemon: `fortytwo-scheduler` under a restart loop (see @justfortytwo/scheduler)');
375
- next.push(' • it seeds the recurring jobs on first boot; `fortytwo doctor` reports whether it is running');
376
- out.write(next.join('\n') + '\n');
569
+ out.write(`${shim.line}\n`);
570
+ out.write(nextSteps({
571
+ cmd: shim.cmd,
572
+ hasBotToken: !!opts.secrets.TELEGRAM_BOT_TOKEN,
573
+ allowedChatIds: opts.secrets.ALLOWED_CHAT_IDS,
574
+ }).join('\n') + '\n');
377
575
  return 0;
378
576
  }
379
577
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,qCAAqC;AACrC,0EAA0E;AAC1E,kFAAkF;AAClF,6EAA6E;AAC7E,8DAA8D;AAC9D,0GAA0G;AAC1G,4FAA4F;AAC5F,oEAAoE;AACpE,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,iFAAiF;AACjF,iBAAiB;AAEjB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3I,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAExE,kFAAkF;AAClF,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAmBhD,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,YAAY,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AACzC,CAAC;AACD,SAAS,OAAO,CAAC,CAAU;IACzB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,UAAU,CAAC,CAAU;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1F,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAuB,EACvB,OAAsB;IAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACvC,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QACnF,MAAM,KAAK,GAAsB,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,IAA4B;IAC5E,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAC3D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/B,CAAC;AAOD,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAC5B,QAA0B,EAC1B,IAAqE;IAErE,MAAM,GAAG,GAAc,QAAQ,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACtC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG;QAClC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,sBAAsB,CAAC;QACpC,iFAAiF;QACjF,uFAAuF;QACvF,GAAG,EAAE;YACH,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,WAAW;YAC3C,eAAe,EAAE,IAAI,CAAC,aAAa,IAAI,uBAAuB;SAC/D;KACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAC9B,YAAoC,EACpC,WAA4C;IAE5C,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kFAAkF;AAElF,SAAS,QAAQ,CAAC,OAA+B,EAAE,IAAY;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc,EAAE,aAAqB;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAqB,UAAU,CAAC,IAAI,CAAC;QACjD,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAe;QACvD,CAAC,CAAC,IAAI,CAAC;IACT,aAAa,CACX,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACnF,MAAM,CACP,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAChC,YAAoC,EACpC,SAAoC;IAEpC,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,IAA6B;IACrE,MAAM,KAAK,GAAG,kBAAkB,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,cAAc,CAC5B,eAAe,EAAE,EACjB,oBAAoB,CAAC,WAAW,CAAC,EACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CACpC,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IAC3C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,iDAAiD;QACjF,MAAM,IAAI,KAAK,CACb,4CAA4C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAChE,6BAA6B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC5C,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,4EAA4E;QAC5E,2EAA2E;QAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,OAAO,IAAI,CAAC,CAAC;QAC9E,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAe,EAAE,KAAe,EAAE,IAAY;IACrF,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1H,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,MAAM,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,GAAG,oCAAoC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACxJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,WAA0B,EAC1B,gBAA+B,EAC/B,QAAiB;IAEjB,IAAI,CAAC,WAAW,IAAI,gBAAgB,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,QAAQ,IAAI,GAAG,WAAW,IAAI,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC5E,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AASD,MAAM,qBAAqB,GAAmB;IAC5C,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,eAAe;IAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,KAAa,EACb,OAAuB,qBAAqB;IAE5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,2BAA2B,OAAO,8BAA8B,KAAK,uDAAuD,CAAC;IACtI,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,cAAc,KAAK,iBAAiB,OAAO,EAAE,CAAC;IACjF,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,OAAO,iCAAiC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,IAAI,GAAG;QAAE,OAAO,oBAAoB,KAAK,QAAQ,OAAO,KAAK,GAAG,qDAAqD,CAAC;IACtH,OAAO,YAAY,KAAK,OAAO,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,SAAS,CAAC,IAAmE;IAC1F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,KAAK,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,yCAAyC;IACzC,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;IAC/B,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,OAAQ,GAAmC,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACxH,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAuC,CAAC;QAC7E,IAAI,CAAC;YACH,MAAO,GAAmE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBAAC,MAAO,MAAM,CAAC,CAAuC,EAAE,OAAO,EAAE,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACvG,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,qHAAqH,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,mFAAmF;AACnF,SAAS,aAAa,CAAC,IAAc;IACnC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,WAA+B,CAAC;IACpC,IAAI,aAAiC,CAAC;IACtC,4FAA4F;IAC5F,IAAI,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC;IAC9D,MAAM,YAAY,GAA2B;QAC3C,oBAAoB,EAAE,oBAAoB;QAC1C,kBAAkB,EAAE,kBAAkB;KACvC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,cAAc,EAAE,CAAC;YAAC,SAAS,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QACzD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS;YAAE,WAAW,GAAG,GAAG,CAAC;aACrC,IAAI,IAAI,KAAK,iBAAiB;YAAE,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;aACxE,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,GAAG,GAAG,CAAC;aACrC,IAAI,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;;YAC1D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,6BAA6B;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAAE,OAAO,CAAC,kBAAkB,KAAK,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAClG,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5F,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,GAAwC,EACxC,OAA+B,EAAE;IAEjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,GAAG,KAAK,sEAAsE,CAAC;IAC5F,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/C,MAAM,GAAG,kCAAkC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAuB,EACvB,OAAiB,EACjB,OAAgB,EAChB,GAAwC;IAExC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM;YAClC,CAAC,CAAC,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjF,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,aAAa,CAAC,MAAuB,EAAE,OAAiB,EAAE,OAAgB;IACvF,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgC,EAChC,GAAwC;IAExC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,6EAA6E,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChH,IAAI,KAAK;YAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,gGAAgG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjI,IAAI,GAAG;YAAE,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAW,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,4GAA4G;AAC5G,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,GAAW;IACvD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACpD,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC5C,IAAI,CAAC;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAe,OAAO,CAAC,GAAG,EAAE;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5F,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAM1C;IACC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,uBAAuB,CAAC;IACnF,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC/B,IAAI,MAAM,GAAG,wDAAwD,QAAQ,KAAK,CAAC;IACnF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAC7B,IAAI,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACrC,MAAM,GAAG,MAAM,MAAM,kFAAkF,QAAQ,KAAK,CAAC;IACvH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,CAAkE;IAC1F,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,cAAc,qEAAqE,CAAC,CAAC;IACxH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,CAAa;IACtC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,IAAI,2CAA2C,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QAC7G,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,mFAAmF;gBACzG,GAAG,EAAE,cAAc;aACpB,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,uJAAuJ;gBAC7J,GAAG,EAAE,cAAc;aACpB,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,EAAE,IAAI,EAAE,6BAA6B,CAAC,CAAC,QAAQ,kDAAkD,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;IACpI,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAE9D,sEAAsE;IACtE,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;QAClE,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAA6B;QACjF,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvG,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;IAErC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjE,qFAAqF,CACtF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9F,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtG,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAa;QACzB,eAAe,EAAE,CAAC;QAClB,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE9B,gFAAgF;IAChF,gFAAgF;IAChF,4EAA4E;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,IAAI,CAAC,aAAa;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QAChC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;KACxG,CAAC;IACF,IAAI,aAAqB,CAAC;IAC1B,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1C,aAAa,GAAG,MAAM,oBAAoB,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;SAAM,CAAC;QACN,aAAa,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,sDAAsD;IACtD,QAAQ,CACN;QACE,eAAe,EAAE,aAAa,EAAE,qDAAqD;QACrF,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,GAAG,IAAI,CAAC,OAAO;KAChB,EACD,IAAI,CACL,CAAC;IAEF,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC;QAClC,IAAI,EAAE,OAAO,EAAE;QACf,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS;QACnD,YAAY;KACb,CAAC,CAAC,CAAC;IAEJ,UAAU;IACV,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC;IACxF,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC3D,GAAG,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC;IACxG,KAAK,MAAM,CAAC,IAAI,cAAc;QAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,MAAM,gCAAgC,CAAC,CAAC;IACrE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAClB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;QAC9C,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;KAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -3,6 +3,8 @@ export interface PairFlags {
3
3
  channel: string;
4
4
  /** Optional TTL override (seconds) for the code. */
5
5
  ttlSeconds?: number;
6
+ /** Issue a code even though `fortytwo start` is not running Telegram (e.g. a hand-run bridge). */
7
+ force?: boolean;
6
8
  }
7
9
  export declare function parsePairArgs(argv: string[]): PairFlags;
8
10
  /**
@@ -11,5 +13,11 @@ export declare function parsePairArgs(argv: string[]): PairFlags;
11
13
  * or a code minted here would land in a db the bridge never reads.
12
14
  */
13
15
  export declare function resolveBindingsDbPath(root: string): string;
16
+ /**
17
+ * Why a code minted now could not be redeemed, or null if Telegram is running
18
+ * under `fortytwo start`. A code is only useful while the bridge is up to read
19
+ * `/login <code>`, so pair refuses to print one otherwise.
20
+ */
21
+ export declare function telegramUnavailableMessage(root: string, nowMs?: number): string | null;
14
22
  export declare function runPair(argv: string[]): Promise<number>;
15
23
  //# sourceMappingURL=pair.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAUvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AASD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB7D"}
1
+ {"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAWvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAclG;AASD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B7D"}
@@ -9,12 +9,18 @@
9
9
  import { resolve, dirname } from 'node:path';
10
10
  import { mkdirSync } from 'node:fs';
11
11
  import { loadTelegram } from '../engine.js';
12
+ import { liveRuntime, serviceRunning } from '../runtime.js';
13
+ import { readProjectSetting } from './init.js';
12
14
  export function parsePairArgs(argv) {
13
15
  const f = { channel: 'telegram' };
14
16
  for (let i = 0; i < argv.length; i++) {
15
17
  const a = argv[i];
16
18
  if (a === undefined || !a.startsWith('--'))
17
19
  continue;
20
+ if (a === '--force') {
21
+ f.force = true;
22
+ continue;
23
+ }
18
24
  const v = argv[++i] ?? '';
19
25
  if (a === '--channel')
20
26
  f.channel = v || 'telegram';
@@ -29,9 +35,30 @@ export function parsePairArgs(argv) {
29
35
  * or a code minted here would land in a db the bridge never reads.
30
36
  */
31
37
  export function resolveBindingsDbPath(root) {
32
- return process.env.TELEGRAM_BINDINGS_DB
33
- ? resolve(root, process.env.TELEGRAM_BINDINGS_DB)
34
- : resolve(root, 'state', 'telegram-bindings.db');
38
+ // Shell env, else the project's .env — the same value `fortytwo start` passes the bridge.
39
+ const custom = readProjectSetting('TELEGRAM_BINDINGS_DB', root);
40
+ return custom ? resolve(root, custom) : resolve(root, 'state', 'telegram-bindings.db');
41
+ }
42
+ /**
43
+ * Why a code minted now could not be redeemed, or null if Telegram is running
44
+ * under `fortytwo start`. A code is only useful while the bridge is up to read
45
+ * `/login <code>`, so pair refuses to print one otherwise.
46
+ */
47
+ export function telegramUnavailableMessage(root, nowMs = Date.now()) {
48
+ const runtime = liveRuntime(root, nowMs);
49
+ if (serviceRunning(runtime, 'telegram'))
50
+ return null;
51
+ const skipped = runtime?.skipped.find((s) => s.name === 'telegram');
52
+ return [
53
+ skipped ? `Telegram is not running (${skipped.reason}).` : 'Telegram is not running.',
54
+ ...(skipped ? ['Fix that in .env, then restart Fortytwo:'] : ['Start Fortytwo with:']),
55
+ ' fortytwo start',
56
+ '',
57
+ 'Then run:',
58
+ ' fortytwo pair',
59
+ '',
60
+ '(Running the bridge yourself? `fortytwo pair --force` issues a code anyway.)',
61
+ ].join('\n');
35
62
  }
36
63
  export async function runPair(argv) {
37
64
  const flags = parsePairArgs(argv);
@@ -39,6 +66,13 @@ export async function runPair(argv) {
39
66
  process.stderr.write(`pair: unsupported channel "${flags.channel}" (only telegram at v0).\n`);
40
67
  return 2;
41
68
  }
69
+ if (!flags.force) {
70
+ const why = telegramUnavailableMessage(process.cwd());
71
+ if (why) {
72
+ process.stderr.write(why + '\n');
73
+ return 1;
74
+ }
75
+ }
42
76
  const tg = (await loadTelegram());
43
77
  if (!tg || typeof tg.SqliteBindingStore !== 'function' || typeof tg.TelegramAdapter !== 'function') {
44
78
  process.stderr.write('pair: @justfortytwo/telegram (>=0.1.1, with persisted challenges) is not installed.\n');
@@ -1 +1 @@
1
- {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runStart(_argv: string[]): Promise<number>;
2
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAeA,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB/D"}