charness 3.8.0 → 3.9.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 (167) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/DEVELOPMENT.md +3 -1
  3. package/SETUP.md +4 -3
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +12 -5
  7. package/dist/cli.js.map +1 -1
  8. package/dist/connectors/telegram/commands/runners.d.ts.map +1 -1
  9. package/dist/connectors/telegram/commands/runners.js +64 -26
  10. package/dist/connectors/telegram/commands/runners.js.map +1 -1
  11. package/dist/connectors/telegram/runnerPairingMessages.d.ts +7 -5
  12. package/dist/connectors/telegram/runnerPairingMessages.d.ts.map +1 -1
  13. package/dist/connectors/telegram/runnerPairingMessages.js +17 -10
  14. package/dist/connectors/telegram/runnerPairingMessages.js.map +1 -1
  15. package/dist/i18n/de.d.ts.map +1 -1
  16. package/dist/i18n/de.js +6 -4
  17. package/dist/i18n/de.js.map +1 -1
  18. package/dist/i18n/en.d.ts.map +1 -1
  19. package/dist/i18n/en.js +6 -4
  20. package/dist/i18n/en.js.map +1 -1
  21. package/dist/i18n/es.d.ts.map +1 -1
  22. package/dist/i18n/es.js +6 -4
  23. package/dist/i18n/es.js.map +1 -1
  24. package/dist/i18n/fr.d.ts.map +1 -1
  25. package/dist/i18n/fr.js +6 -4
  26. package/dist/i18n/fr.js.map +1 -1
  27. package/dist/i18n/hi.d.ts.map +1 -1
  28. package/dist/i18n/hi.js +6 -4
  29. package/dist/i18n/hi.js.map +1 -1
  30. package/dist/i18n/ja.d.ts.map +1 -1
  31. package/dist/i18n/ja.js +6 -4
  32. package/dist/i18n/ja.js.map +1 -1
  33. package/dist/i18n/ka.d.ts.map +1 -1
  34. package/dist/i18n/ka.js +6 -4
  35. package/dist/i18n/ka.js.map +1 -1
  36. package/dist/i18n/pt.d.ts.map +1 -1
  37. package/dist/i18n/pt.js +6 -4
  38. package/dist/i18n/pt.js.map +1 -1
  39. package/dist/i18n/ru.d.ts.map +1 -1
  40. package/dist/i18n/ru.js +6 -4
  41. package/dist/i18n/ru.js.map +1 -1
  42. package/dist/i18n/uk.d.ts.map +1 -1
  43. package/dist/i18n/uk.js +6 -4
  44. package/dist/i18n/uk.js.map +1 -1
  45. package/dist/i18n/uz.d.ts.map +1 -1
  46. package/dist/i18n/uz.js +6 -4
  47. package/dist/i18n/uz.js.map +1 -1
  48. package/dist/i18n/zh.d.ts.map +1 -1
  49. package/dist/i18n/zh.js +6 -4
  50. package/dist/i18n/zh.js.map +1 -1
  51. package/dist/index.d.ts +1 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +3 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/remoteRun/pairedRunners.js +1 -1
  56. package/dist/remoteRun/pairedRunners.js.map +1 -1
  57. package/dist/remoteRun/runnerSummary.js +1 -1
  58. package/dist/remoteRun/runnerSummary.js.map +1 -1
  59. package/dist/remoteRun/runners.d.ts +8 -1
  60. package/dist/remoteRun/runners.d.ts.map +1 -1
  61. package/dist/remoteRun/runners.js +14 -2
  62. package/dist/remoteRun/runners.js.map +1 -1
  63. package/dist/remoteRun/runnersConfig.d.ts +2 -0
  64. package/dist/remoteRun/runnersConfig.d.ts.map +1 -1
  65. package/dist/remoteRun/runnersConfig.js.map +1 -1
  66. package/dist/runnerUtility/adminCheck.d.ts +7 -0
  67. package/dist/runnerUtility/adminCheck.d.ts.map +1 -1
  68. package/dist/runnerUtility/adminCheck.js +5 -4
  69. package/dist/runnerUtility/adminCheck.js.map +1 -1
  70. package/dist/runnerUtility/adminService.d.ts +22 -0
  71. package/dist/runnerUtility/adminService.d.ts.map +1 -0
  72. package/dist/runnerUtility/adminService.js +145 -0
  73. package/dist/runnerUtility/adminService.js.map +1 -0
  74. package/dist/runnerUtility/hubClient.d.ts +2 -2
  75. package/dist/runnerUtility/hubClient.d.ts.map +1 -1
  76. package/dist/runnerUtility/hubClient.js +1 -1
  77. package/dist/runnerUtility/hubClient.js.map +1 -1
  78. package/dist/runnerUtility/linkLoop.d.ts +0 -8
  79. package/dist/runnerUtility/linkLoop.d.ts.map +1 -1
  80. package/dist/runnerUtility/linkLoop.js +3 -10
  81. package/dist/runnerUtility/linkLoop.js.map +1 -1
  82. package/dist/runnerUtility/pairArgs.d.ts +16 -0
  83. package/dist/runnerUtility/pairArgs.d.ts.map +1 -0
  84. package/dist/runnerUtility/pairArgs.js +17 -0
  85. package/dist/runnerUtility/pairArgs.js.map +1 -0
  86. package/dist/runnerUtility/rootServiceCli.d.ts +8 -0
  87. package/dist/runnerUtility/rootServiceCli.d.ts.map +1 -0
  88. package/dist/runnerUtility/rootServiceCli.js +31 -0
  89. package/dist/runnerUtility/rootServiceCli.js.map +1 -0
  90. package/dist/runnerUtility/runnerCli.js +29 -23
  91. package/dist/runnerUtility/runnerCli.js.map +1 -1
  92. package/dist/runnerUtility/runnerCommands.d.ts +13 -4
  93. package/dist/runnerUtility/runnerCommands.d.ts.map +1 -1
  94. package/dist/runnerUtility/runnerCommands.js +58 -12
  95. package/dist/runnerUtility/runnerCommands.js.map +1 -1
  96. package/dist/runnerUtility/serviceCommon.d.ts +97 -0
  97. package/dist/runnerUtility/serviceCommon.d.ts.map +1 -0
  98. package/dist/runnerUtility/serviceCommon.js +209 -0
  99. package/dist/runnerUtility/serviceCommon.js.map +1 -0
  100. package/dist/runnerUtility/serviceManager.d.ts +14 -17
  101. package/dist/runnerUtility/serviceManager.d.ts.map +1 -1
  102. package/dist/runnerUtility/serviceManager.js +132 -201
  103. package/dist/runnerUtility/serviceManager.js.map +1 -1
  104. package/dist/runnerUtility/serviceUnits.d.ts +3 -1
  105. package/dist/runnerUtility/serviceUnits.d.ts.map +1 -1
  106. package/dist/runnerUtility/serviceUnits.js +26 -6
  107. package/dist/runnerUtility/serviceUnits.js.map +1 -1
  108. package/dist/runners/bootstrapLine.d.ts +10 -1
  109. package/dist/runners/bootstrapLine.d.ts.map +1 -1
  110. package/dist/runners/bootstrapLine.js +102 -17
  111. package/dist/runners/bootstrapLine.js.map +1 -1
  112. package/dist/runners/gate.d.ts.map +1 -1
  113. package/dist/runners/gate.js +9 -0
  114. package/dist/runners/gate.js.map +1 -1
  115. package/dist/runners/gateProtocol.d.ts +7 -1
  116. package/dist/runners/gateProtocol.d.ts.map +1 -1
  117. package/dist/runners/gateProtocol.js +5 -3
  118. package/dist/runners/gateProtocol.js.map +1 -1
  119. package/dist/runners/hubPairing.d.ts +7 -0
  120. package/dist/runners/hubPairing.d.ts.map +1 -1
  121. package/dist/runners/hubPairing.js +16 -0
  122. package/dist/runners/hubPairing.js.map +1 -1
  123. package/dist/runners/hubPaths.d.ts +4 -0
  124. package/dist/runners/hubPaths.d.ts.map +1 -1
  125. package/dist/runners/hubPaths.js +2 -0
  126. package/dist/runners/hubPaths.js.map +1 -1
  127. package/dist/runners/hubRegistry.d.ts +23 -1
  128. package/dist/runners/hubRegistry.d.ts.map +1 -1
  129. package/dist/runners/hubRegistry.js +48 -2
  130. package/dist/runners/hubRegistry.js.map +1 -1
  131. package/dist/runners/linkControl.d.ts +12 -1
  132. package/dist/runners/linkControl.d.ts.map +1 -1
  133. package/dist/runners/linkControl.js +56 -9
  134. package/dist/runners/linkControl.js.map +1 -1
  135. package/dist/runners/removalTiming.d.ts +13 -0
  136. package/dist/runners/removalTiming.d.ts.map +1 -0
  137. package/dist/runners/removalTiming.js +17 -0
  138. package/dist/runners/removalTiming.js.map +1 -0
  139. package/dist/runners/runnerRemoval.d.ts.map +1 -1
  140. package/dist/runners/runnerRemoval.js +12 -0
  141. package/dist/runners/runnerRemoval.js.map +1 -1
  142. package/dist/runners/runnerServiceKind.d.ts +10 -0
  143. package/dist/runners/runnerServiceKind.d.ts.map +1 -0
  144. package/dist/runners/runnerServiceKind.js +13 -0
  145. package/dist/runners/runnerServiceKind.js.map +1 -0
  146. package/dist/runners/runnersCli.d.ts +11 -2
  147. package/dist/runners/runnersCli.d.ts.map +1 -1
  148. package/dist/runners/runnersCli.js +39 -14
  149. package/dist/runners/runnersCli.js.map +1 -1
  150. package/dist/runners/runnersList.d.ts +6 -9
  151. package/dist/runners/runnersList.d.ts.map +1 -1
  152. package/dist/runners/runnersList.js +9 -7
  153. package/dist/runners/runnersList.js.map +1 -1
  154. package/dist/runners/runnersOverview.d.ts.map +1 -1
  155. package/dist/runners/runnersOverview.js +2 -1
  156. package/dist/runners/runnersOverview.js.map +1 -1
  157. package/dist/selfUpdate/selfCheck.d.ts +13 -0
  158. package/dist/selfUpdate/selfCheck.d.ts.map +1 -1
  159. package/dist/selfUpdate/selfCheck.js +9 -3
  160. package/dist/selfUpdate/selfCheck.js.map +1 -1
  161. package/dist/stt/sttInstallEntry.js +7 -4
  162. package/dist/stt/sttInstallEntry.js.map +1 -1
  163. package/dist/utils/runnersScreenPlan.d.ts +18 -7
  164. package/dist/utils/runnersScreenPlan.d.ts.map +1 -1
  165. package/dist/utils/runnersScreenPlan.js +22 -7
  166. package/dist/utils/runnersScreenPlan.js.map +1 -1
  167. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.9.0 — 2026-11-03
6
+
7
+ **Pairing a runner from an admin account is now one paste: the pairing offers a `sudo` line that checks the account, pairs it and keeps it running — the line for the runner account itself stays as the second option.**
8
+ Before, the one-time line had to be pasted into the terminal of the account that will run the jobs — awkward when you are logged in as an admin and that account is one you never log in to — and the commands to keep it running came afterwards.
9
+ Now `/runners` → **+ Pair a new runner** (and `charness runners pair`, with `--account <name>`) offers two lines for one code, in two messages: first `sudo sh -c '…' sh runner`, to run from an admin account of the runner machine, then the plain line for the runner account. The admin line checks the account named by its last word — `runner` unless you change it: it must exist, and it is refused if it is root or an admin (or if its groups cannot be read), because it runs the agents' code; nothing ever creates an account — pairs the machine **as that account** (its files are its own, not root's), and then installs its always-on service: on a Mac the LaunchDaemon that runs as the account, on Linux its systemd user service with lingering switched on. The account runs the agents' code, so root never runs, reads through or writes into anything that account can change: the line downloads the package into a folder of its own, has the account pair itself from it, and runs the service step from the same copy — the account's own side is done by the account's program through `sudo -u`. Pasting the admin line runs code from this charness host as root on that machine (the Telegram message and the CLI's text say so); the plain line trusts the host only with the runner account. A Mac's daemons write their logs as the account, never through a folder root opens. Both messages turn into «paired» or «expired» together; a service step that fails leaves the account paired and says to paste a fresh admin line, which finds the account paired, closes its own code on the charness host and only installs the service (its Telegram messages then say the line was used on a machine that was already paired, and `charness runners pair --wait` exits 0). For the same reason `service install --system` on the runner is gone (an always-on service is installed by the admin line, and removed by the plain `launchctl` commands that `charness-runner service uninstall` prints).
10
+
5
11
  ## 3.8.0 — 2026-11-02
6
12
 
7
13
  **Charness can now make a one-time pairing line for a runner machine — `charness runners pair` — and keeps the machines that used it in a registry (`charness runners ls | remove | pause | resume`); the runner's own side and the use of paired runners by `remote-run` follow in the same release.**
package/DEVELOPMENT.md CHANGED
@@ -164,7 +164,9 @@ layout, from the teardown, from a detached reaper and at the next start.
164
164
 
165
165
  The paired-runner flows (`runnerLinkE2e.test.ts`, `remoteRunPairedE2e.test.ts`, `runnersScreenE2e.test.ts`) use the same loopback `sshd` as «the charness
166
166
  host» (its `AuthorizedKeysFile` pointed at a temp `.ssh`) and `charness-runner` in a temp `HOME`, so they never touch the real `~/.ssh`;
167
- `runnerServiceTakeoverE2e.test.ts` needs only real Pueue (the service manager is a recording stand-in). Same tools, same local skip and CI failure.
167
+ `runnerServiceTakeoverE2e.test.ts` needs only real Pueue (the service manager is a recording stand-in). `runnerAdminLineE2e.test.ts` (the admin pairing line) also needs
168
+ `fakeroot`: root, a second account and the service manager are stand-ins in `runnerAdminLineE2e/` (`sudo` runs the line under `fakeroot`, `sudo -u <account> -H` hands a
169
+ command to the real user with the stand-in account's `HOME`, and plants a trap in the account's launcher that fails the flow if root ever starts it); everything else — the line's own `sh`, the download, the pairing, the root step, the service install — is real. Same tools, same local skip and CI failure.
168
170
 
169
171
  Node applies `--test-timeout` to a whole test FILE (a `describe`'s own `timeout` cannot extend it), so a file that
170
172
  hangs or leaves a process alive fails by name when its limit passes, instead of hanging the run. A long-running
package/SETUP.md CHANGED
@@ -391,9 +391,10 @@ had run locally. Without a runner nothing changes for anyone, and agents are not
391
391
  **Pair it (the normal way).** Needs this machine's ordinary `sshd` (key login on) with an address the runner can reach — nothing else is
392
392
  opened or changed, no root, no VPN — and on the runner machine Node 22.12+, `ssh` and `tar`. In General send `/runners` → **+ Pair a new
393
393
  runner**; the first time the bot asks which address runners dial (the `runnerHost` row of the [instance settings](#instance-settings-settingsjson)) and
394
- proposes the public address it finds. It posts one line (valid 10 minutes, single use): run it on the runner machine as the account that
395
- will run the jobs, then `charness-runner service install` there to keep it running. An instance without Telegram uses
396
- `charness runners pair --host host.example`. The steps, the services (a Mac that stays on while logged out), removing and the safety
394
+ proposes the public address it finds. It posts two lines (valid 10 minutes, single use, one code): the first from an admin account of the
395
+ runner machine — it pairs a standard user there (`runner` unless you change the last word of the line) and installs its always-on service
396
+ in one go — the second as the account that will run the jobs, with `charness-runner service install` afterwards to keep it running. An
397
+ instance without Telegram uses `charness runners pair --host host.example`. The steps, the services (a Mac that stays on while logged out), removing and the safety
397
398
  model: [docs/remote-run.md](docs/remote-run.md#pair-a-runner).
398
399
 
399
400
  **Or by hand over plain ssh** — for a machine that cannot dial this one: list it in `~/.config/charness/runners.json` (one file per OS
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  import './selfUpdate/launchEnvironment';
3
+ /** @description Run the command line (`process.argv`); a failure is printed and ends the process with 1. */
4
+ export declare function runCli(): void;
3
5
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,gCAAgC,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,gCAAgC,CAAC;AAgLxC,4GAA4G;AAC5G,wBAAgB,MAAM,IAAI,IAAI,CAM7B"}
package/dist/cli.js CHANGED
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  };
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.runCli = runCli;
37
38
  // FIRST import, on purpose: it snapshots the launch environment before anything reads a `.env` file into `process.env`.
38
39
  require("./selfUpdate/launchEnvironment");
39
40
  const fs = __importStar(require("fs"));
@@ -41,7 +42,6 @@ const path = __importStar(require("path"));
41
42
  const applyDnsFix_1 = require("./cli/applyDnsFix");
42
43
  const bot_1 = require("./cli/bot");
43
44
  const hot_1 = require("./cli/hot");
44
- (0, applyDnsFix_1.applyDnsFix)();
45
45
  /** How long a finished `runner-gate` waits for its stdout to drain before it ends the process. */
46
46
  const gateExitGraceMs = 5000;
47
47
  /**
@@ -195,8 +195,15 @@ async function main() {
195
195
  printUsage();
196
196
  process.exit(2);
197
197
  }
198
- main().catch((err) => {
199
- console.error(err);
200
- process.exit(1);
201
- });
198
+ /** @description Run the command line (`process.argv`); a failure is printed and ends the process with 1. */
199
+ function runCli() {
200
+ (0, applyDnsFix_1.applyDnsFix)();
201
+ main().catch((err) => {
202
+ console.error(err);
203
+ process.exit(1);
204
+ });
205
+ }
206
+ // Only when this file IS the program (`node dist/cli.js`, the `charness` bin, `tsx src/cli.ts`): importing it — `index.ts`, the self-check — starts nothing.
207
+ if (require.main === module)
208
+ runCli();
202
209
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wHAAwH;AACxH,0CAAwC;AACxC,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAgD;AAChD,mCAAmC;AACnC,mCAAmC;AAEnC,IAAA,yBAAW,GAAE,CAAC;AAEd,kGAAkG;AAClG,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;GAMG;AACH,SAAS,YAAY;IACnB,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5F,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU;QACR,0EAA0E;QAC1E,8EAA8E;QAC9E,6EAA6E;QAC7E,2EAA2E;QAC3E,qFAAqF;QACrF,qFAAqF;QACrF,4EAA4E;QAC5E,6FAA6F;QAC7F,mHAAmH;QACnH,mHAAmH;QACnH,2FAA2F;QAC3F,mGAAmG;QACnG,6GAA6G;QAC7G,+EAA+E;QAC/E,8CAA8C;QAC9C,iDAAiD;QACjD,IAAI;QACJ,gBAAgB;QAChB,2EAA2E;QAC3E,+DAA+D;QAC/D,oFAAoF;QACpF,oFAAoF;QACpF,0EAA0E;QAC1E,oEAAoE;QACpE,0CAA0C,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,IAAA,YAAM,GAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACvD,UAAU,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7D,YAAY,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,sGAAsG;IACtG,6DAA6D;IAC7D,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;QAC9B,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,kIAAkI;IAClI,wBAAwB;IACxB,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,0BAA0B,GAAC,CAAC;QACrE,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,mGAAmG;IACnG,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QAC/D,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,iIAAiI;IACjI,4DAA4D;IAC5D,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;YACnE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;SACrE,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,4FAA4F;QAC5F,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,8GAA8G;IAC9G,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,uBAAuB,GAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACxH,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,wBAAwB,GAAC,CAAC;QACnE,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/runners.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElF,OAAO,EAAoC,KAAK,cAAc,EAAE,KAAK,UAAU,EAAwB,MAAM,6BAA6B,CAAC;AAE3I,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAeL,KAAK,UAAU,EAGhB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,4GAA4G;AAC5G,eAAO,MAAM,sBAAsB,QAAW,CAAC;AAQ/C,uHAAuH;AACvH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,eAAe,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;IAChM,yDAAyD;IACzD,GAAG,EAAE,UAAU,CAAC;IAChB,oFAAoF;IACpF,cAAc,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACxC,wFAAwF;IACxF,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,GAAG,IAAI,CAAC;IACvD,oEAAoE;IACpE,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,gHAAgH;IAChH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+DAA+D;IAC/D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1D,qFAAqF;IACrF,aAAa,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACtF,oGAAoG;IACpG,qBAAqB,EAAE,MAAM,MAAM,EAAE,CAAC;IACtC,WAAW,EAAE,cAAc,CAAC;IAC5B,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,2JAA2J;AAC3J,eAAO,MAAM,iBAAiB,EAAE,UAI/B,CAAC;AAgBF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY;mCA0XX,IAAI;oCAYH,IAAI;oCA9NI,UAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;oCATjD,UAAU,KAAG,IAAI;+BAqMxB,MAAM,IAAI;6BAlDN,OAAO,CAAC,IAAI,CAAC;EAoGlD"}
1
+ {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/runners.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElF,OAAO,EAAoC,KAAK,cAAc,EAAE,KAAK,UAAU,EAAwB,MAAM,6BAA6B,CAAC;AAE3I,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAgBL,KAAK,UAAU,EAGhB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,4GAA4G;AAC5G,eAAO,MAAM,sBAAsB,QAAW,CAAC;AAQ/C,uHAAuH;AACvH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,eAAe,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;IAChM,yDAAyD;IACzD,GAAG,EAAE,UAAU,CAAC;IAChB,oFAAoF;IACpF,cAAc,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACxC,wFAAwF;IACxF,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,GAAG,IAAI,CAAC;IACvD,oEAAoE;IACpE,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,gHAAgH;IAChH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+DAA+D;IAC/D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1D,qFAAqF;IACrF,aAAa,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACtF,oGAAoG;IACpG,qBAAqB,EAAE,MAAM,MAAM,EAAE,CAAC;IACtC,WAAW,EAAE,cAAc,CAAC;IAC5B,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,2JAA2J;AAC3J,eAAO,MAAM,iBAAiB,EAAE,UAI/B,CAAC;AAgBF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY;mCA4ZX,IAAI;oCAYH,IAAI;oCA9OI,UAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;oCATjD,UAAU,KAAG,IAAI;+BAqNxB,MAAM,IAAI;6BAlEN,OAAO,CAAC,IAAI,CAAC;EAoHlD"}
@@ -5,14 +5,17 @@ exports.createRunners = createRunners;
5
5
  /**
6
6
  * `/runners` — the machines that run the agents' tests and builds, paired from Telegram. In General only (admins): one message that
7
7
  * lists the machines (online or not, what they are, what they can do) with Pause / Resume / Remove per machine, and a button that pairs
8
- * another one — a one-time line to paste on the new machine, valid 10 minutes, shown as a message that turns into «paired» or «expired».
8
+ * another one — two one-time lines for the new machine (one for an admin account, one for the runner account itself), valid 10 minutes, in
9
+ * two messages that turn into «paired» or «expired».
9
10
  * The hub itself is `src/runners/`; this file is only the screen, its buttons and the two background jobs (editing the pairing message,
10
11
  * refreshing a list with live data). See `src/runners/README.md` for the safety line and `utils/runnersScreenPlan.ts` for the texts.
11
12
  *
12
13
  * Two rules keep the screen true under concurrency. (1) A render is claimed BEFORE its Telegram edit is awaited: every message has a
13
14
  * generation, and a background job (the live probe) draws only if the message still carries the generation it started from — so a
14
15
  * question that replaced the list while its edit was still queued is never drawn over. (2) The messages that offer a pairing code are
15
- * this instance's own record (`runnerPairingMessages.ts`), kept until the edit that settles them was accepted.
16
+ * this instance's own record (`runnerPairingMessages.ts`, an entry per message), each kept until the edit that settles it was accepted. A
17
+ * message settles to «paired» (a runner carries its code), «closed» (the code was closed unused: its line was pasted for a machine that
18
+ * was already paired) or «expired».
16
19
  */
17
20
  const telegraf_1 = require("telegraf");
18
21
  const configDirFile_1 = require("../../../configDirFile");
@@ -71,11 +74,12 @@ function createRunners(ports) {
71
74
  const addressProposals = new Map();
72
75
  /** General keys whose next message is an address → when the wait began. */
73
76
  const addressWaits = new Map();
74
- /** Pairing messages whose edit failed: when the next try may be, and the delay after it (in memory — a restart tries at once). */
77
+ /** Pairing messages whose edit failed, by {@link getPairingMessageId}: when the next try may be, and the delay after it (in memory — a restart tries at once). */
75
78
  const settleRetries = new Map();
76
79
  let isWatchTickRunning = false;
77
80
  let lastGeneration = 0;
78
81
  let lastStoreProblem = null;
82
+ let lastClosedProblem = null;
79
83
  /** Claim `messageId` for a render: whatever started from an earlier claim no longer draws on it. Returns the claim. */
80
84
  function claimMessage(key, messageId, kind, page) {
81
85
  lastGeneration += 1;
@@ -172,7 +176,28 @@ function createRunners(ports) {
172
176
  armAddressWait(key);
173
177
  await replyToThread(key, (0, i18n_1.t)('runners.addressRejected', { reason }));
174
178
  }
175
- /** Make a code and post the line that carries it — a secret: the trace keeps only the message's length. */
179
+ /** `intro`, the line in a `<pre>`, and `outro` when there is one — the HTML of a pairing message. */
180
+ function renderPairingMessage(intro, line, outro) {
181
+ return `${(0, renderAgentHtml_1.escapeHtmlText)(intro)}\n\n<pre>${(0, renderAgentHtml_1.escapeHtmlText)(line)}</pre>${outro === null ? '' : `\n\n${(0, renderAgentHtml_1.escapeHtmlText)(outro)}`}`;
182
+ }
183
+ /** Post a message that carries a pairing line (a secret: the trace keeps only its length) and remember it so it can turn into «paired» / «expired». */
184
+ async function postPairingLine(key, pairId, text) {
185
+ const messageId = await replyToThread(key, text, { parse_mode: 'HTML' }, { isSecret: true });
186
+ if (messageId === null)
187
+ return false;
188
+ try {
189
+ (0, runnerPairingMessages_1.addPairingMessage)(ports.pairingMessagesPath, { pairId, key: (0, sessionKey_1.keyToString)(key), messageId, offeredAtMs: now() });
190
+ }
191
+ catch (error) {
192
+ // The line is out and works; only its turning into «paired» / «expired» is lost.
193
+ console.warn(`[${logTag}] the pairing message could not be recorded (${(0, configDirFile_1.getCaughtErrnoCode)(error)}); it will not turn into «paired» or «expired»`);
194
+ }
195
+ return true;
196
+ }
197
+ /**
198
+ * Make a code and post the two lines that carry it, one message each (together they are longer than a Telegram message): the line for an
199
+ * ADMIN account first, the plain one second. Both settle together, whichever line is used.
200
+ */
176
201
  async function offerPairing(key, address, knownCheck) {
177
202
  const check = knownCheck ?? (await (0, hubAddress_1.checkHubAddress)(address, ports.scanHostKey));
178
203
  if (!check.ok) {
@@ -182,19 +207,14 @@ function createRunners(ports) {
182
207
  try {
183
208
  ports.ensureGateWrapper();
184
209
  const pairing = await (0, hubPairing_1.createPairing)(hub, { host: address.host, port: address.port, hostKey: check.hostKey, label: ports.getBotLabel(), nowMs: now() });
185
- const parts = (0, runnersScreenPlan_1.buildPairingMessageParts)(pairingTiming_1.pairingLifetimeMinutes, i18n_1.t);
186
- const text = `${(0, renderAgentHtml_1.escapeHtmlText)(parts.intro)}\n\n<pre>${(0, renderAgentHtml_1.escapeHtmlText)((0, bootstrapLine_1.buildBootstrapLine)(pairing.payload))}</pre>\n\n${(0, renderAgentHtml_1.escapeHtmlText)(parts.outro)}`;
187
- const messageId = await replyToThread(key, text, { parse_mode: 'HTML' }, { isSecret: true });
188
- if (messageId === null) {
210
+ const parts = (0, runnersScreenPlan_1.buildPairingMessageParts)(pairingTiming_1.pairingLifetimeMinutes, bootstrapLine_1.defaultRunnerAccount, i18n_1.t);
211
+ if (!(await postPairingLine(key, pairing.pairId, renderPairingMessage(parts.adminIntro, (0, bootstrapLine_1.buildAdminBootstrapLine)(pairing.payload, bootstrapLine_1.defaultRunnerAccount), null)))) {
189
212
  await replyToThread(key, (0, i18n_1.t)('runners.pairFailedText', { reason: 'the message could not be sent' }));
190
213
  return;
191
214
  }
192
- try {
193
- (0, runnerPairingMessages_1.addPairingMessage)(ports.pairingMessagesPath, { pairId: pairing.pairId, key: (0, sessionKey_1.keyToString)(key), messageId, offeredAtMs: now() });
194
- }
195
- catch (error) {
196
- // The line is out and works; only its turning into «paired» / «expired» is lost.
197
- console.warn(`[${logTag}] the pairing message could not be recorded (${(0, configDirFile_1.getCaughtErrnoCode)(error)}); it will not turn into «paired» or «expired»`);
215
+ // The admin line is out and works whatever happens to this one.
216
+ if (!(await postPairingLine(key, pairing.pairId, renderPairingMessage(parts.alternativeIntro, (0, bootstrapLine_1.buildBootstrapLine)(pairing.payload), parts.alternativeOutro)))) {
217
+ console.warn(`[${logTag}] the second pairing message (the line for the runner account itself) could not be sent`);
198
218
  }
199
219
  }
200
220
  catch (error) {
@@ -391,33 +411,51 @@ function createRunners(ports) {
391
411
  lastStoreProblem = problem;
392
412
  if (pending.some((pairing) => pairing.expiresAtMs <= nowMs))
393
413
  await ports.sweepExpiredCodes(nowMs);
394
- const settledPairIds = new Set();
414
+ const settledMessageIds = new Set();
415
+ /** The closed codes — read when a message first settles without a runner, and not before, and not on a look that has nothing to settle. */
416
+ let closedPairIds = null;
417
+ /** Is `pairId` a code that was closed unused AND is gone from the pending list? A trace of a code that is still listed (its write was followed by a failed one) is not a closing. */
418
+ const checkIsClosed = (pairId) => {
419
+ if (pending.some((pairing) => pairing.pairId === pairId))
420
+ return false;
421
+ if (closedPairIds === null) {
422
+ // After the pending list: a code is noted as closed BEFORE it leaves that list, so a code seen gone from it is already noted here.
423
+ const { codes, problem } = (0, hubRegistry_1.readClosedCodes)(hub.dir);
424
+ // A broken trace file fails every read: say it once, not at every look.
425
+ if (problem !== null && problem !== lastClosedProblem)
426
+ console.warn(`[${logTag}] ${problem}`);
427
+ lastClosedProblem = problem;
428
+ closedPairIds = new Set(codes.map((entry) => entry.pairId));
429
+ }
430
+ return closedPairIds.has(pairId);
431
+ };
395
432
  for (const message of messages) {
396
- if ((settleRetries.get(message.pairId)?.nextAttemptAtMs ?? 0) > nowMs)
433
+ const messageId = (0, runnerPairingMessages_1.getPairingMessageId)(message);
434
+ if ((settleRetries.get(messageId)?.nextAttemptAtMs ?? 0) > nowMs)
397
435
  continue;
398
436
  const runner = runners.find((candidate) => candidate.pairId === message.pairId);
399
437
  const isOpen = pending.some((pairing) => pairing.pairId === message.pairId && pairing.expiresAtMs > nowMs);
400
438
  if (runner === undefined && isOpen)
401
439
  continue;
402
440
  const key = (0, sessionKey_1.keyFromString)(message.key);
403
- const isEdited = await withThreadLocale(key, () => editThreadMessage(key, message.messageId, runner === undefined ? (0, runnersScreenPlan_1.buildExpiredText)(i18n_1.t) : (0, runnersScreenPlan_1.buildPairedText)(runner.name, runner.pairedAtMs, i18n_1.t, exports.formatRunnersTime)));
441
+ const isEdited = await withThreadLocale(key, () => editThreadMessage(key, message.messageId, runner !== undefined ? (0, runnersScreenPlan_1.buildPairedText)(runner.name, runner.pairedAtMs, i18n_1.t, exports.formatRunnersTime) : checkIsClosed(message.pairId) ? (0, runnersScreenPlan_1.buildClosedText)(i18n_1.t) : (0, runnersScreenPlan_1.buildExpiredText)(i18n_1.t)));
404
442
  if (isEdited) {
405
- settledPairIds.add(message.pairId);
406
- settleRetries.delete(message.pairId);
443
+ settledMessageIds.add(messageId);
444
+ settleRetries.delete(messageId);
407
445
  continue;
408
446
  }
409
447
  if (nowMs - (message.firstFailedAtMs ?? nowMs) > pairingMessageGiveUpAfterFailingMs) {
410
448
  console.warn(`[${logTag}] a pairing message could not be edited for a day; giving up on it`);
411
- settledPairIds.add(message.pairId);
412
- settleRetries.delete(message.pairId);
449
+ settledMessageIds.add(messageId);
450
+ settleRetries.delete(messageId);
413
451
  continue;
414
452
  }
415
- (0, runnerPairingMessages_1.markPairingMessageFailed)(ports.pairingMessagesPath, message.pairId, nowMs);
416
- const delayMs = Math.min((settleRetries.get(message.pairId)?.delayMs ?? settleRetryFirstDelayMs / 2) * 2, settleRetryMaxDelayMs);
417
- settleRetries.set(message.pairId, { nextAttemptAtMs: nowMs + delayMs, delayMs });
453
+ (0, runnerPairingMessages_1.markPairingMessageFailed)(ports.pairingMessagesPath, message, nowMs);
454
+ const delayMs = Math.min((settleRetries.get(messageId)?.delayMs ?? settleRetryFirstDelayMs / 2) * 2, settleRetryMaxDelayMs);
455
+ settleRetries.set(messageId, { nextAttemptAtMs: nowMs + delayMs, delayMs });
418
456
  }
419
- if (settledPairIds.size > 0)
420
- (0, runnerPairingMessages_1.removePairingMessages)(ports.pairingMessagesPath, settledPairIds);
457
+ if (settledMessageIds.size > 0)
458
+ (0, runnerPairingMessages_1.removePairingMessages)(ports.pairingMessagesPath, settledMessageIds);
421
459
  }
422
460
  /**
423
461
  * Keep the `gate` wrapper that the runners' `authorized_keys` lines run pointing at THIS install (a Node upgrade or a moved checkout would
@@ -1 +1 @@
1
- {"version":3,"file":"runners.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/runners.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runners.js","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/runners.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,13 @@ export interface PairingMessagesRead {
17
17
  export declare function readPairingMessages(filePath: string): PairingMessagesRead;
18
18
  /** @description Write the entries (the newest {@link maxEntries}), through a temp file and a rename. */
19
19
  export declare function writePairingMessages(filePath: string, messages: readonly PairingMessage[]): void;
20
- /** @description Add `message` (an older entry for the same code is replaced). */
20
+ /** @description What names one message of the record: its code and its Telegram message id (a conversation holds both messages of a code). */
21
+ export declare function getPairingMessageId(message: Pick<PairingMessage, 'pairId' | 'messageId'>): string;
22
+ /** @description Add `message` (an older entry for the same message is replaced; the code's other message stays). */
21
23
  export declare function addPairingMessage(filePath: string, message: PairingMessage): void;
22
- /** @description Take the entries for `pairIds` out. */
23
- export declare function removePairingMessages(filePath: string, pairIds: ReadonlySet<string>): void;
24
- /** @description Note that an edit of the message for `pairId` failed at `nowMs`: the first failure is kept, later ones change nothing. */
25
- export declare function markPairingMessageFailed(filePath: string, pairId: string, nowMs: number): void;
24
+ /** @description Take the entries named by `messageIds` ({@link getPairingMessageId}) out. */
25
+ export declare function removePairingMessages(filePath: string, messageIds: ReadonlySet<string>): void;
26
+ /** @description Note that an edit of `message` failed at `nowMs`: the first failure is kept, later ones change nothing. */
27
+ export declare function markPairingMessageFailed(filePath: string, message: Pick<PairingMessage, 'pairId' | 'messageId'>, nowMs: number): void;
26
28
  export {};
27
29
  //# sourceMappingURL=runnerPairingMessages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runnerPairingMessages.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/runnerPairingMessages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,QAAA,MAAM,oBAAoB;;;;;;kBAOxB,CAAC;AAIH,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,6HAA6H;IAC7H,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,qJAAqJ;AACrJ,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAazE;AAED,wGAAwG;AACxG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAEhG;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAGjF;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAG1F;AAED,0IAA0I;AAC1I,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI9F"}
1
+ {"version":3,"file":"runnerPairingMessages.d.ts","sourceRoot":"","sources":["../../../src/connectors/telegram/runnerPairingMessages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,QAAA,MAAM,oBAAoB;;;;;;kBAOxB,CAAC;AAIH,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,6HAA6H;IAC7H,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,qJAAqJ;AACrJ,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAazE;AAED,wGAAwG;AACxG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAEhG;AAED,8IAA8I;AAC9I,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,GAAG,MAAM,CAEjG;AAED,oHAAoH;AACpH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAGjF;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAG7F;AAED,2HAA2H;AAC3H,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKrI"}
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.readPairingMessages = readPairingMessages;
37
37
  exports.writePairingMessages = writePairingMessages;
38
+ exports.getPairingMessageId = getPairingMessageId;
38
39
  exports.addPairingMessage = addPairingMessage;
39
40
  exports.removePairingMessages = removePairingMessages;
40
41
  exports.markPairingMessageFailed = markPairingMessageFailed;
@@ -44,7 +45,8 @@ const configDirFile_1 = require("../../configDirFile");
44
45
  const hubIds_1 = require("../../runners/hubIds");
45
46
  /**
46
47
  * @description The pairing messages this INSTANCE has sent and not yet settled — the one record of "which message offers which code"
47
- * (`DATA_DIR/runner-pairing-messages.json`). It is the instance's own: the hub registry is shared by every charness of the OS user and
48
+ * (`DATA_DIR/runner-pairing-messages.json`). One code is offered in TWO messages (the admin line and the plain one: together they would
49
+ * not fit one Telegram message), so an entry is one MESSAGE, found by {@link getPairingMessageId}, and a code has two entries. It is the instance's own: the hub registry is shared by every charness of the OS user and
48
50
  * holds the credentials only, so a message of this bot is never adopted by another bot, and a credential swept or spent (while this bot
49
51
  * was down, or by another instance) does not take the way back to its message with it. An entry stays until the message was edited to
50
52
  * what became of its code (paired / expired) and Telegram accepted the edit — or until edits of it have been FAILING for a day: the
@@ -85,21 +87,26 @@ function readPairingMessages(filePath) {
85
87
  function writePairingMessages(filePath, messages) {
86
88
  (0, configDirFile_1.writeJsonFileAtomically)(filePath, { messages: messages.slice(-maxEntries) }, fileMode);
87
89
  }
88
- /** @description Add `message` (an older entry for the same code is replaced). */
90
+ /** @description What names one message of the record: its code and its Telegram message id (a conversation holds both messages of a code). */
91
+ function getPairingMessageId(message) {
92
+ return `${message.pairId}:${message.messageId}`;
93
+ }
94
+ /** @description Add `message` (an older entry for the same message is replaced; the code's other message stays). */
89
95
  function addPairingMessage(filePath, message) {
90
96
  const { messages } = readPairingMessages(filePath);
91
- writePairingMessages(filePath, [...messages.filter((candidate) => candidate.pairId !== message.pairId), message]);
97
+ writePairingMessages(filePath, [...messages.filter((candidate) => getPairingMessageId(candidate) !== getPairingMessageId(message)), message]);
92
98
  }
93
- /** @description Take the entries for `pairIds` out. */
94
- function removePairingMessages(filePath, pairIds) {
99
+ /** @description Take the entries named by `messageIds` ({@link getPairingMessageId}) out. */
100
+ function removePairingMessages(filePath, messageIds) {
95
101
  const { messages } = readPairingMessages(filePath);
96
- writePairingMessages(filePath, messages.filter((candidate) => !pairIds.has(candidate.pairId)));
102
+ writePairingMessages(filePath, messages.filter((candidate) => !messageIds.has(getPairingMessageId(candidate))));
97
103
  }
98
- /** @description Note that an edit of the message for `pairId` failed at `nowMs`: the first failure is kept, later ones change nothing. */
99
- function markPairingMessageFailed(filePath, pairId, nowMs) {
104
+ /** @description Note that an edit of `message` failed at `nowMs`: the first failure is kept, later ones change nothing. */
105
+ function markPairingMessageFailed(filePath, message, nowMs) {
100
106
  const { messages } = readPairingMessages(filePath);
101
- if (!messages.some((candidate) => candidate.pairId === pairId && candidate.firstFailedAtMs === undefined))
107
+ const messageId = getPairingMessageId(message);
108
+ if (!messages.some((candidate) => getPairingMessageId(candidate) === messageId && candidate.firstFailedAtMs === undefined))
102
109
  return;
103
- writePairingMessages(filePath, messages.map((candidate) => (candidate.pairId === pairId && candidate.firstFailedAtMs === undefined ? { ...candidate, firstFailedAtMs: nowMs } : candidate)));
110
+ writePairingMessages(filePath, messages.map((candidate) => (getPairingMessageId(candidate) === messageId && candidate.firstFailedAtMs === undefined ? { ...candidate, firstFailedAtMs: nowMs } : candidate)));
104
111
  }
105
112
  //# sourceMappingURL=runnerPairingMessages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runnerPairingMessages.js","sourceRoot":"","sources":["../../../src/connectors/telegram/runnerPairingMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runnerPairingMessages.js","sourceRoot":"","sources":["../../../src/connectors/telegram/runnerPairingMessages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0rCzC,CAAC"}
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4rCzC,CAAC"}
package/dist/i18n/de.js CHANGED
@@ -1072,8 +1072,8 @@ exports.deDict = {
1072
1072
  'runners.pausedToast': '⏸ {name} pausiert',
1073
1073
  'runners.resumedToast': '▶️ {name} läuft wieder',
1074
1074
  'runners.removedJobsStoppedText': '✅ {name} entfernt. Sein Schlüssel ist gelöscht, die Jobs, die dort liefen, sind beendet.',
1075
- 'runners.removedJobsOfflineText': '✅ {name} entfernt. Sein Schlüssel ist gelöscht. Der Rechner ist offline, daher wurden seine Jobs von hier aus nicht beendet: Er beendet sie selbst, sobald er merkt, dass er entfernt wurde.',
1076
- 'runners.removedJobsFailedText': '✅ {name} entfernt. Sein Schlüssel ist gelöscht, aber die Jobs, die dort liefen, konnten von hier aus nicht beendet werden: Der Rechner beendet sie selbst, sobald er merkt, dass er entfernt wurde.',
1075
+ 'runners.removedJobsOfflineText': '✅ {name} entfernt. Sein Schlüssel ist gelöscht. Der Rechner ist offline, daher wurden seine Jobs von hier aus nicht beendet: Er beendet sie selbst, sobald sein Schlüssel {hours} h lang abgelehnt wird.',
1076
+ 'runners.removedJobsFailedText': '✅ {name} entfernt. Sein Schlüssel ist gelöscht, aber die Jobs, die dort liefen, konnten von hier aus nicht beendet werden: Der Rechner beendet sie selbst, sobald sein Schlüssel {hours} h lang abgelehnt wird.',
1077
1077
  'runners.removeConfirmText': '{name} entfernen? Sein Schlüssel wird gelöscht und er verbindet sich nicht mehr. Dort laufende Jobs werden beendet.',
1078
1078
  'runners.removeConfirmButton': 'Entfernen',
1079
1079
  'runners.removeCancelButton': 'Abbrechen',
@@ -1086,10 +1086,12 @@ exports.deDict = {
1086
1086
  'runners.addressRejected': '⚠️ {reason}\n\nSende eine andere Adresse oder öffne /runners erneut.',
1087
1087
  'runners.addressNote': 'ℹ️ {note}',
1088
1088
  'runners.addressExpired': 'Diese Frage ist veraltet — öffne /runners und beginne neu.',
1089
- 'runners.pairingIntro': 'Runner koppeln — gültig {minutes} Minuten, einmalig verwendbar.\n\nFühre das auf der Runner-Maschine aus, unter dem Konto, das die Jobs ausführen soll\n(nicht unter deinem Hauptkonto — dort läuft der Code der Agenten):',
1090
- 'runners.pairingOutro': 'Wer diese Zeile hat, kann eine Maschine mit diesem charness verbinden, bis sie benutzt wird oder abläuft.',
1089
+ 'runners.pairingAdminIntro': 'Runner koppeln — gültig {minutes} Minuten, einmalig verwendbar.\n\n① Von einem Administratorkonto der Runner-Maschine: koppelt „{account}“ (das letzte Wort — bei Bedarf ändern) und hält es am Laufen. Führt Code von diesem charness-Host als root auf der Maschine aus:',
1090
+ 'runners.pairingAlternativeIntro': '② Ohne Administratorrechte: Führe diese Zeile im Terminal des Runner-Kontos selbst aus:',
1091
+ 'runners.pairingAlternativeOutro': 'Das Konto muss bereits existieren und ein normales Konto sein, nicht dein Hauptkonto — es führt den Code der Agenten aus. Wer eine der beiden Zeilen hat, kann eine Maschine mit diesem charness verbinden, bis eine davon benutzt wird oder abläuft.',
1091
1092
  'runners.pairedText': 'Runner „{name}“ gekoppelt {time}.',
1092
1093
  'runners.expiredText': 'Der Kopplungscode ist abgelaufen.',
1094
+ 'runners.closedText': 'Diese Zeile wurde auf einer bereits gekoppelten Maschine verwendet — es wurde nichts Neues gekoppelt.',
1093
1095
  'runners.pairFailedText': '⚠️ Die Kopplungszeile konnte nicht erstellt werden: {reason}',
1094
1096
  'runners.registryErrorText': '⚠️ Das Runner-Register ist nicht lesbar: {reason}',
1095
1097
  };