greprag 5.44.3 → 5.46.0

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 (64) hide show
  1. package/dist/commands/collision-check.d.ts +113 -0
  2. package/dist/commands/collision-check.js +266 -0
  3. package/dist/commands/collision-check.js.map +1 -0
  4. package/dist/commands/coordinate-gate.d.ts +73 -0
  5. package/dist/commands/coordinate-gate.js +108 -0
  6. package/dist/commands/coordinate-gate.js.map +1 -0
  7. package/dist/commands/corpus/refresh.js +1 -1
  8. package/dist/commands/corpus/refresh.js.map +1 -1
  9. package/dist/commands/email.js +20 -2
  10. package/dist/commands/email.js.map +1 -1
  11. package/dist/commands/fix.d.ts +20 -2
  12. package/dist/commands/fix.js +21 -4
  13. package/dist/commands/fix.js.map +1 -1
  14. package/dist/commands/inbox-drain.d.ts +49 -0
  15. package/dist/commands/inbox-drain.js +163 -0
  16. package/dist/commands/inbox-drain.js.map +1 -0
  17. package/dist/commands/inbox-poll.d.ts +47 -0
  18. package/dist/commands/inbox-poll.js +261 -0
  19. package/dist/commands/inbox-poll.js.map +1 -0
  20. package/dist/commands/inbox-watch.js +3 -0
  21. package/dist/commands/inbox-watch.js.map +1 -1
  22. package/dist/commands/ingress-trigger.d.ts +67 -0
  23. package/dist/commands/ingress-trigger.js +103 -0
  24. package/dist/commands/ingress-trigger.js.map +1 -0
  25. package/dist/commands/init.js +41 -0
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/mechanic.d.ts +18 -0
  28. package/dist/commands/mechanic.js +77 -9
  29. package/dist/commands/mechanic.js.map +1 -1
  30. package/dist/commands/memory-format.d.ts +11 -2
  31. package/dist/commands/memory-format.js +22 -8
  32. package/dist/commands/memory-format.js.map +1 -1
  33. package/dist/commands/memory.d.ts +44 -0
  34. package/dist/commands/memory.js +73 -9
  35. package/dist/commands/memory.js.map +1 -1
  36. package/dist/commands/poll-registry.d.ts +13 -0
  37. package/dist/commands/poll-registry.js +94 -0
  38. package/dist/commands/poll-registry.js.map +1 -0
  39. package/dist/commands/state-trigger.d.ts +66 -0
  40. package/dist/commands/state-trigger.js +305 -0
  41. package/dist/commands/state-trigger.js.map +1 -0
  42. package/dist/fix-trigger.d.ts +25 -5
  43. package/dist/fix-trigger.js +35 -11
  44. package/dist/fix-trigger.js.map +1 -1
  45. package/dist/guard.d.ts +13 -0
  46. package/dist/guard.js +58 -3
  47. package/dist/guard.js.map +1 -1
  48. package/dist/hook.js +188 -1
  49. package/dist/hook.js.map +1 -1
  50. package/dist/inbox-attachments.d.ts +37 -0
  51. package/dist/inbox-attachments.js +64 -0
  52. package/dist/inbox-attachments.js.map +1 -0
  53. package/dist/index.js +15 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/session-id.d.ts +12 -0
  56. package/dist/session-id.js +17 -0
  57. package/dist/session-id.js.map +1 -1
  58. package/dist/worktree-state.d.ts +14 -0
  59. package/dist/worktree-state.js +61 -0
  60. package/dist/worktree-state.js.map +1 -0
  61. package/package.json +1 -1
  62. package/skill/greprag/SKILL.md +4 -0
  63. package/skill/mechanic/SKILL.md +22 -10
  64. package/skill/templates/chip-spawn.md +1 -1
package/dist/guard.js CHANGED
@@ -59,6 +59,8 @@ exports.wrapStandingNote = wrapStandingNote;
59
59
  exports.wrapDirective = wrapDirective;
60
60
  exports.injectionTier = injectionTier;
61
61
  exports.readMatchsetCache = readMatchsetCache;
62
+ exports.writeStateValues = writeStateValues;
63
+ exports.collectWatchedKeywords = collectWatchedKeywords;
62
64
  exports.runGuard = runGuard;
63
65
  exports.flushTallySpools = flushTallySpools;
64
66
  exports.fetchAndCacheMatchset = fetchAndCacheMatchset;
@@ -135,6 +137,51 @@ function writeMatchsetCache(projectId, cache) {
135
137
  fs.mkdirSync(dir, { recursive: true });
136
138
  fs.writeFileSync(file, JSON.stringify(cache, null, 2) + '\n');
137
139
  }
140
+ /** Merge state values into the matchset cache (Adapter A). Single-writer; no cache yet → no-op. */
141
+ function writeStateValues(projectId, values) {
142
+ try {
143
+ const cache = readMatchsetCache(projectId);
144
+ if (!cache)
145
+ return; // no matchset yet — nothing to attach state to
146
+ cache.stateValues = { ...(cache.stateValues || {}), ...values };
147
+ writeMatchsetCache(projectId, cache);
148
+ }
149
+ catch { /* state write is best-effort — never block the turn */ }
150
+ }
151
+ /** Collect watched keyword terms — every `state` clause field `keyword:<term>`. */
152
+ function collectWatchedKeywords(projectId) {
153
+ const out = new Set();
154
+ const walk = (cond) => {
155
+ if (!cond || typeof cond !== 'object')
156
+ return;
157
+ const c = cond;
158
+ if (Array.isArray(c.all)) {
159
+ c.all.forEach(walk);
160
+ return;
161
+ }
162
+ if (Array.isArray(c.any)) {
163
+ c.any.forEach(walk);
164
+ return;
165
+ }
166
+ if ('not' in c) {
167
+ walk(c.not);
168
+ return;
169
+ }
170
+ if (c.source === 'state' && typeof c.field === 'string' && c.field.startsWith('keyword:')) {
171
+ const term = c.field.slice('keyword:'.length);
172
+ if (term)
173
+ out.add(term);
174
+ }
175
+ };
176
+ try {
177
+ const cache = readMatchsetCache(projectId);
178
+ if (cache)
179
+ for (const row of cache.repairs)
180
+ walk(row.repair?.trigger?.condition);
181
+ }
182
+ catch { /* best-effort */ }
183
+ return [...out];
184
+ }
138
185
  // ---------- Matching ---------------------------------------------------------
139
186
  function toolNameMatches(matcher, toolName) {
140
187
  if (matcher === undefined || matcher === '' || matcher === '*')
@@ -204,6 +251,7 @@ function runGuard(input, projectId) {
204
251
  const nowMs = Date.now();
205
252
  const nowIso = new Date(nowMs).toISOString();
206
253
  const latchState = cache.latchState || {};
254
+ const stateValues = cache.stateValues || {};
207
255
  const injections = [];
208
256
  let ask = null;
209
257
  let deny = null;
@@ -213,15 +261,21 @@ function runGuard(input, projectId) {
213
261
  for (const row of cache.repairs) {
214
262
  const repair = row.repair;
215
263
  const trigger = repair?.trigger;
216
- if (!trigger || trigger.event !== 'PreToolUse')
264
+ if (!trigger)
265
+ continue;
266
+ // Source gate (bridge): `state` rides this hot path; `ingress` fires off-path
267
+ // (skip); legacy rows still require event === PreToolUse, unchanged.
268
+ if (trigger.source === 'ingress')
269
+ continue;
270
+ if (trigger.source !== 'state' && trigger.event !== 'PreToolUse')
217
271
  continue;
218
272
  const status = repair.status;
219
273
  if (status !== 'shadow' && status !== 'active')
220
274
  continue;
221
- // (c) match: tool-name regex → condition (the shared core interpreter).
275
+ // (c) match: tool-name regex → condition (multi-source: `state` clauses read stateValues).
222
276
  if (!toolNameMatches(trigger.matcher, toolName))
223
277
  continue;
224
- if (!(0, fix_trigger_1.evaluateCondition)(trigger.condition ?? true, toolInput))
278
+ if (!(0, fix_trigger_1.evaluateConditionMulti)(trigger.condition ?? true, { tool_input: toolInput, state: stateValues }))
225
279
  continue;
226
280
  // (d) cadence/latch.
227
281
  const key = latchKey(repair, sessionId, row.scope, toolInput);
@@ -411,6 +465,7 @@ async function fetchAndCacheMatchset(apiUrl, apiKey, projectId) {
411
465
  repairs: Array.isArray(body.repairs) ? body.repairs : [],
412
466
  fetchedAt: new Date().toISOString(),
413
467
  latchState: prior?.latchState || {},
468
+ stateValues: prior?.stateValues || {},
414
469
  });
415
470
  return body.triggersVersion;
416
471
  }
package/dist/guard.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
package/dist/hook.js CHANGED
@@ -71,6 +71,12 @@ const opencode_plugin_helpers_1 = require("./opencode-plugin-helpers");
71
71
  // Mechanic dispatcher (Chip B) — PreToolUse guard + matchset boot pull/refresh.
72
72
  // docs/mechanic-repairs.md D1/D2/D5/D8; docs/mechanic-engine-contracts.md.
73
73
  const guard_1 = require("./guard");
74
+ const worktree_state_1 = require("./worktree-state");
75
+ // Ingress-trigger bridge, Adapter A (LOCAL/state half) — the Stop hook computes
76
+ // the deterministic state values (stress / turnCount / keyword-seen) from the
77
+ // transcript, NO LLM/network, and stashes them for `source:"state"` rules to read
78
+ // on the PreToolUse hot path. docs/ingress-trigger-bridge.md, docs/stress-trigger.md
79
+ const state_trigger_1 = require("./commands/state-trigger");
74
80
  // Context governor (Chip C) — Stop probe measures live context size from the
75
81
  // transcript tail; the governor is PULL-ONLY via `greprag context status`. The
76
82
  // UserPromptSubmit crossover advisory was RETIRED 2026-06-13 — it injected into
@@ -86,6 +92,24 @@ const pipe_wrap_1 = require("./commands/pipe-wrap");
86
92
  // injects the pointer so the post-compact model can Read the verbatim record.
87
93
  // All real logic lives in ./commands/archive. adr: adr/governed-compact.md
88
94
  const archive_1 = require("./commands/archive");
95
+ // Collision schematic (SessionStart) — detect another live session in the same
96
+ // repo (cloud watcher registry) and inject a coordinate-now directive. All real
97
+ // logic lives in ./commands/collision-check. docs/schematic-triggers.md
98
+ const collision_check_1 = require("./commands/collision-check");
99
+ // Coordinate-GATE (PreToolUse) — on a risky shared-state action (git merge/push/
100
+ // deploy) do a FRESH inbox-watchers read and, if a peer is live in THIS repo, raise
101
+ // a permission `ask` so the agent coordinates before merging. Source-agnostic eval
102
+ // (runCoordinateGate) + PreToolUse adapter. docs/collision-schematic.md
103
+ const coordinate_gate_1 = require("./commands/coordinate-gate");
104
+ // adr: adr/monitor-resilience.md — the asyncRewake idle-liveness poll was REMOVED
105
+ // (it cost ~1 long-lived node process per session, ~1.1 GB across the operator's
106
+ // concurrent sessions). The Monitor watcher + the SessionStart drain are the
107
+ // delivery path; idle-wake-without-a-turn was the trade made to drop that cost.
108
+ // Inbox drain-on-arm (SessionStart) — drains THIS session's unread, session-
109
+ // directed messages into context on every arm, tagged peer/human, marks them
110
+ // read, advances the poll cursor. Closes the watcher dead-window gap. All real
111
+ // logic lives in ./commands/inbox-drain. adr: adr/monitor-resilience.md
112
+ const inbox_drain_1 = require("./commands/inbox-drain");
89
113
  const API_URL_DEFAULT = 'https://api.greprag.com';
90
114
  const MAX_FIELD_CHARS = 500_000; // safety cap per text field
91
115
  // ---------- Env + config ---------------------------------------------------
@@ -1314,6 +1338,65 @@ async function armCheck(input) {
1314
1338
  hookSpecificOutput: { hookEventName: 'UserPromptSubmit', additionalContext: verdict },
1315
1339
  }) + '\n');
1316
1340
  }
1341
+ /** Collision schematic (SessionStart) — `greprag-hook collision-check`. Detects
1342
+ * another live session working in THIS repo via the cloud watcher registry and
1343
+ * injects a directive telling the agent to message the peer + work in a
1344
+ * worktree. The hook NEVER sends — AI never auto-acts. Dedup is per-session so a
1345
+ * resume/compact re-fire pings each peer at most once. All detection/dedup/
1346
+ * directive logic lives in ./commands/collision-check (pure + tested). Reads
1347
+ * only the watcher registry (no inbox content) — no eavesdrop surface.
1348
+ * Fail-quiet: any miss → silent. docs/schematic-triggers.md */
1349
+ async function collisionCheck(input) {
1350
+ const cwd = input.cwd || process.cwd();
1351
+ const cfg = getConfig(cwd);
1352
+ if (!cfg.enabled || !cfg.apiKey)
1353
+ return; // unconfigured → silent
1354
+ const short = (0, session_id_1.truncateSessionId)(input.session_id);
1355
+ if (!short)
1356
+ return; // no session id → silent
1357
+ let anchor;
1358
+ try {
1359
+ anchor = (0, project_anchor_1.readAnchor)(cwd);
1360
+ }
1361
+ catch {
1362
+ return;
1363
+ }
1364
+ if (!anchor.projectId)
1365
+ return; // unanchored → nothing to match
1366
+ const context = await (0, collision_check_1.runCollisionCheck)({
1367
+ short,
1368
+ projectId: anchor.projectId,
1369
+ projectName: anchor.projectName,
1370
+ apiUrl: cfg.apiUrl,
1371
+ apiKey: cfg.apiKey,
1372
+ alias: (0, session_id_1.readIdentityAlias)(),
1373
+ });
1374
+ if (context)
1375
+ writeAdditionalContext(input.hook_event_name || 'SessionStart', context);
1376
+ }
1377
+ /** Inbox drain-on-arm — `greprag-hook drain`. Wire on SessionStart
1378
+ * (startup|resume|compact) = on arm. Drains THIS session's unread, session-
1379
+ * DIRECTED messages into the agent's context (each tagged peer/human via
1380
+ * peerHumanTag), marks them read, and advances the poll cursor so the just-armed
1381
+ * poll live-tails with no double-delivery. Closes the dead-window gap where a
1382
+ * session-directed message that lands between watcher death and re-arm sits
1383
+ * unread until a manual `greprag inbox`. Inbound-only — the front desk (cold
1384
+ * opens + email) stays with the human-scoped `mail` hook. All real logic lives
1385
+ * in ./commands/inbox-drain (pure + tested). Best-effort: any miss → silent,
1386
+ * never blocks SessionStart. adr: adr/monitor-resilience.md */
1387
+ async function drain(input) {
1388
+ const cwd = input.cwd || process.cwd();
1389
+ const cfg = getConfig(cwd);
1390
+ if (!cfg.enabled || !cfg.apiKey)
1391
+ return; // unconfigured → silent
1392
+ const short = (0, session_id_1.truncateSessionId)(input.session_id);
1393
+ if (!short)
1394
+ return; // no session id → silent
1395
+ const result = await (0, inbox_drain_1.runInboxDrain)({ session: short, apiUrl: cfg.apiUrl, apiKey: cfg.apiKey });
1396
+ if (result.context) {
1397
+ writeAdditionalContext(input.hook_event_name || 'SessionStart', result.context);
1398
+ }
1399
+ }
1317
1400
  function validateChip(title, prompt) {
1318
1401
  const violations = [];
1319
1402
  // Accept plain "Chip: <verb>" and the multi-chip leader convention
@@ -1380,6 +1463,87 @@ function guard(input) {
1380
1463
  if (out)
1381
1464
  process.stdout.write(JSON.stringify(out) + '\n');
1382
1465
  }
1466
+ /** Ingress-trigger bridge, Adapter A — compute + stash the local state values on
1467
+ * Stop. Reads the transcript (already on disk for `store`), computes stress /
1468
+ * turnCount / keyword-seen with NO LLM and NO network, and merges them into the
1469
+ * matchset cache for `source:"state"` rules to read on the next turn's PreToolUse
1470
+ * hot path. Fully fail-open: any miss → no write, the turn is untouched. The
1471
+ * watched keyword set is collected from the cached rules so the scan stays
1472
+ * matchset-driven. docs/ingress-trigger-bridge.md */
1473
+ function stateUpdate(input) {
1474
+ try {
1475
+ const cwd = input.cwd || process.cwd();
1476
+ const cfg = getConfig(cwd);
1477
+ if (!cfg.enabled || !cfg.apiKey)
1478
+ return;
1479
+ const anchor = (0, project_anchor_1.readAnchor)(cwd);
1480
+ if (!anchor.projectId)
1481
+ return;
1482
+ const keywords = (0, guard_1.collectWatchedKeywords)(anchor.projectId);
1483
+ const values = (0, state_trigger_1.computeStateValues)(input.transcript_path, {
1484
+ keywords,
1485
+ latestPrompt: typeof input.prompt === 'string' ? input.prompt : '',
1486
+ });
1487
+ // Repo-state signal (7053374e): merged-but-unswept worktrees → a state-trigger
1488
+ // schema injects a sweep nudge on the next greprag command. Fail-open helper.
1489
+ (0, guard_1.writeStateValues)(anchor.projectId, {
1490
+ ...values,
1491
+ merged_unswept_worktrees: (0, worktree_state_1.countMergedUnsweptWorktrees)(cwd),
1492
+ });
1493
+ }
1494
+ catch { /* state update is best-effort — never block the turn */ }
1495
+ }
1496
+ /** PreToolUse coordinate-GATE — `greprag-hook coordinate-gate`. On a risky
1497
+ * shared-state action (git merge / push / deploy) does a FRESH inbox-watchers
1498
+ * read and, if another live session is working in THIS repo, raises a permission
1499
+ * `ask` (a true pause before the irreversible action) whose reason names the
1500
+ * live peers and tells the agent to message them first. Fires the network read
1501
+ * ONLY for risky commands — a non-risky Bash call is classified locally and
1502
+ * exits silent, no network. NO dedup: a fresh read every fire (a stale roster at
1503
+ * merge is the exact failure this prevents). Reads only the watcher registry (no
1504
+ * inbox content) — no eavesdrop surface. Fail-quiet: any miss → silent, the
1505
+ * action proceeds ungated. docs/collision-schematic.md */
1506
+ async function coordinateGate(input) {
1507
+ const cwd = input.cwd || process.cwd();
1508
+ const cfg = getConfig(cwd);
1509
+ if (!cfg.enabled || !cfg.apiKey)
1510
+ return; // unconfigured → silent
1511
+ const short = (0, session_id_1.truncateSessionId)(input.session_id);
1512
+ if (!short)
1513
+ return; // no session id → silent
1514
+ // Local + cheap: classify BEFORE any network so non-risky calls cost nothing.
1515
+ const trigger = (0, coordinate_gate_1.triggerFromPreToolUse)(input.tool_name || '', (input.tool_input || {}));
1516
+ if (!trigger)
1517
+ return; // not a risky action → silent
1518
+ let anchor;
1519
+ try {
1520
+ anchor = (0, project_anchor_1.readAnchor)(cwd);
1521
+ }
1522
+ catch {
1523
+ return;
1524
+ }
1525
+ if (!anchor.projectId)
1526
+ return; // unanchored → nothing to match
1527
+ const directive = await (0, coordinate_gate_1.runCoordinateGate)(trigger, {
1528
+ short,
1529
+ projectId: anchor.projectId,
1530
+ projectName: anchor.projectName,
1531
+ apiUrl: cfg.apiUrl,
1532
+ apiKey: cfg.apiKey,
1533
+ alias: (0, session_id_1.readIdentityAlias)(),
1534
+ });
1535
+ if (!directive)
1536
+ return; // no live peer in this repo → proceed
1537
+ // EFFECT: inject as additionalContext — advisory heads-up, NO permission pause.
1538
+ // `ask` was too intrusive (prompted on every git op while peers were live); inject
1539
+ // keeps the agent aware without a manual-allow. adr: adr/monitor-resilience.md
1540
+ process.stdout.write(JSON.stringify({
1541
+ hookSpecificOutput: {
1542
+ hookEventName: input.hook_event_name || 'PreToolUse',
1543
+ additionalContext: directive,
1544
+ },
1545
+ }) + '\n');
1546
+ }
1383
1547
  /** Detached background child: refetch the matchset + rewrite the cache. */
1384
1548
  async function guardRefresh(input) {
1385
1549
  const cwd = input.cwd || process.cwd();
@@ -1402,6 +1566,7 @@ async function main() {
1402
1566
  const subcommand = process.argv[2];
1403
1567
  const validSubs = new Set([
1404
1568
  'store', 'recap', 'notify', 'mail', 'session-id', 'pre-spawn-check', 'armcheck',
1569
+ 'collision-check', 'drain', 'coordinate-gate',
1405
1570
  'guard', 'guard-refresh', 'guard-flush',
1406
1571
  'context-probe', 'context-check', 'crush-wrap',
1407
1572
  'pre-compact', 'archive-pointer',
@@ -1409,7 +1574,7 @@ async function main() {
1409
1574
  'codex-permission-context', 'codex-subagent-start',
1410
1575
  ]);
1411
1576
  if (!validSubs.has(subcommand)) {
1412
- process.stderr.write(`Usage: greprag-hook <store|recap|notify|mail|session-id|pre-spawn-check|armcheck|guard|guard-refresh|guard-flush|context-probe|context-check|crush-wrap|pre-compact|archive-pointer|codex-store|codex-notify|codex-inbox|codex-recap|codex-permission-context|codex-subagent-start>\n`);
1577
+ process.stderr.write(`Usage: greprag-hook <store|recap|notify|mail|session-id|pre-spawn-check|armcheck|collision-check|drain|coordinate-gate|guard|guard-refresh|guard-flush|context-probe|context-check|crush-wrap|pre-compact|archive-pointer|codex-store|codex-notify|codex-inbox|codex-recap|codex-permission-context|codex-subagent-start>\n`);
1413
1578
  process.exit(1);
1414
1579
  }
1415
1580
  let input = {};
@@ -1472,6 +1637,23 @@ async function main() {
1472
1637
  else if (subcommand === 'armcheck') {
1473
1638
  await armCheck(input);
1474
1639
  }
1640
+ else if (subcommand === 'collision-check') {
1641
+ // SessionStart — detect a sibling session in this repo and inject a
1642
+ // coordinate-now directive. docs/schematic-triggers.md
1643
+ await collisionCheck(input);
1644
+ }
1645
+ else if (subcommand === 'drain') {
1646
+ // SessionStart(startup|resume|compact) — drain THIS session's unread, session-
1647
+ // directed messages into context (tagged peer/human), mark read, advance the
1648
+ // poll cursor. Closes the watcher dead-window gap. adr: adr/monitor-resilience.md
1649
+ await drain(input);
1650
+ }
1651
+ else if (subcommand === 'coordinate-gate') {
1652
+ // PreToolUse[Bash] — on a risky shared-state action (git merge/push/deploy),
1653
+ // fresh inbox-watchers read → permission `ask` if a peer is live in this repo.
1654
+ // docs/collision-schematic.md
1655
+ await coordinateGate(input);
1656
+ }
1475
1657
  else if (subcommand === 'context-probe') {
1476
1658
  // Stop probe — transcript-tail context-size measurement, local state only.
1477
1659
  (0, context_governor_1.runContextProbe)(input);
@@ -1515,7 +1697,12 @@ async function main() {
1515
1697
  await store(input, 'codex');
1516
1698
  }
1517
1699
  else {
1700
+ // Stop — capture the turn, then refresh the local state bag (Adapter A) so
1701
+ // the next turn's PreToolUse `source:"state"` rules read a fresh stress /
1702
+ // turnCount reading. Order: store first (the primary job), then the
1703
+ // best-effort state stash. docs/ingress-trigger-bridge.md
1518
1704
  await store(input);
1705
+ stateUpdate(input);
1519
1706
  }
1520
1707
  }
1521
1708
  main().catch(err => {