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
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getServiceNames = getServiceNames;
37
37
  exports.renderSystemdLinkUnit = renderSystemdLinkUnit;
38
38
  exports.renderSystemdPueuedUnit = renderSystemdPueuedUnit;
39
+ exports.getLaunchdProgramArguments = getLaunchdProgramArguments;
39
40
  exports.renderLaunchdPlist = renderLaunchdPlist;
40
41
  exports.planLaunchdJobs = planLaunchdJobs;
41
42
  exports.parseLingerState = parseLingerState;
@@ -49,8 +50,8 @@ const path = __importStar(require("path"));
49
50
  *
50
51
  * Linux two systemd USER units (no root); `KillMode=process` on the link: stopping it ends the launcher and nothing else, and the
51
52
  * commands it started (a lease watcher among them) see the closed pipe and finish by themselves — they are not killed with it.
52
- * macOS two launchd jobs: LaunchAgents (run while the account is logged in, switched away included), or — with `--system` — LaunchDaemons
53
- * with `UserName=<account>` (always, also logged out; they run as that account, with no extra rights). `AbandonProcessGroup`
53
+ * macOS two launchd jobs: LaunchAgents (run while the account is logged in, switched away included), or — installed by the admin pairing line
54
+ * (`adminService.ts`) — LaunchDaemons with `UserName=<account>` (always, also logged out; they run as that account, with no extra rights). `AbandonProcessGroup`
54
55
  * keeps launchd from killing what the link started when the link ends. Pueue runs at `nice`, never `taskpolicy -b` (on Apple
55
56
  * Silicon that pins jobs to the efficiency cores).
56
57
  */
@@ -114,8 +115,27 @@ function renderSystemdPueuedUnit(paths) {
114
115
  function escapeXml(text) {
115
116
  return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
116
117
  }
118
+ /**
119
+ * What launchd opens or enters ITSELF, as root, before it hands a LaunchDaemon to its `UserName` (whether it does so before or after the
120
+ * switch is not documented): none of it may be a path the account can swap for a link. So a daemon names `/dev/null` for its output, no
121
+ * `WorkingDirectory`, and runs its program through `sh`, which — already the account — enters the home, opens the log by `>>` and execs
122
+ * the program. A LaunchAgent is launchd's job in the account's own domain and needs none of this.
123
+ */
124
+ const daemonOutputPath = '/dev/null';
125
+ const daemonShell = '/bin/sh';
126
+ /**
127
+ * `$0` is the log, `$1` the home, the rest the program: the account's shell makes the log's folder (it cannot be left to anyone else: a
128
+ * failure to open the log goes to `/dev/null`, and a job that restarts every 10 s without a word is the worst way to fail), enters the
129
+ * home, then execs the program with its output in the log.
130
+ */
131
+ const daemonShellScript = 'mkdir -p "${0%/*}" && cd "$1" && shift && exec "$@" >> "$0" 2>&1';
132
+ /** The program and arguments launchd starts: the job's own for a LaunchAgent, the account's shell around them for a LaunchDaemon. */
133
+ function getLaunchdProgramArguments(spec) {
134
+ return spec.userName === null ? spec.programArguments : [daemonShell, '-c', daemonShellScript, spec.logPath, spec.homeDir, ...spec.programArguments];
135
+ }
117
136
  /** @description The property list of one launchd job. */
118
137
  function renderLaunchdPlist(spec) {
138
+ const isDaemon = spec.userName !== null;
119
139
  const pathValue = [...new Set([path.join(spec.homeDir, '.charness-runner', 'bin'), spec.nodeDir, ...systemPathDirs])].join(':');
120
140
  const entry = (key, value) => ` <key>${key}</key><string>${escapeXml(value)}</string>`;
121
141
  return [
@@ -126,7 +146,7 @@ function renderLaunchdPlist(spec) {
126
146
  ` <key>Label</key><string>${escapeXml(spec.label)}</string>`,
127
147
  ' <key>ProgramArguments</key>',
128
148
  ' <array>',
129
- ...spec.programArguments.map((argument) => ` <string>${escapeXml(argument)}</string>`),
149
+ ...getLaunchdProgramArguments(spec).map((argument) => ` <string>${escapeXml(argument)}</string>`),
130
150
  ' </array>',
131
151
  ...(spec.userName === null ? [] : [` <key>UserName</key><string>${escapeXml(spec.userName)}</string>`]),
132
152
  ' <key>RunAtLoad</key><true/>',
@@ -134,7 +154,7 @@ function renderLaunchdPlist(spec) {
134
154
  ` <key>ThrottleInterval</key><integer>${throttleSeconds}</integer>`,
135
155
  ' <key>AbandonProcessGroup</key><true/>',
136
156
  ...(spec.niceness === null ? [] : [` <key>Nice</key><integer>${spec.niceness}</integer>`]),
137
- ` <key>WorkingDirectory</key><string>${escapeXml(spec.homeDir)}</string>`,
157
+ ...(isDaemon ? [] : [` <key>WorkingDirectory</key><string>${escapeXml(spec.homeDir)}</string>`]),
138
158
  ' <key>EnvironmentVariables</key>',
139
159
  ' <dict>',
140
160
  entry('HOME', spec.homeDir),
@@ -142,8 +162,8 @@ function renderLaunchdPlist(spec) {
142
162
  entry('LOGNAME', spec.accountName),
143
163
  entry('PATH', pathValue),
144
164
  ' </dict>',
145
- ` <key>StandardOutPath</key><string>${escapeXml(spec.logPath)}</string>`,
146
- ` <key>StandardErrorPath</key><string>${escapeXml(spec.logPath)}</string>`,
165
+ ` <key>StandardOutPath</key><string>${escapeXml(isDaemon ? daemonOutputPath : spec.logPath)}</string>`,
166
+ ` <key>StandardErrorPath</key><string>${escapeXml(isDaemon ? daemonOutputPath : spec.logPath)}</string>`,
147
167
  '</dict>',
148
168
  '</plist>',
149
169
  '',
@@ -1 +1 @@
1
- {"version":3,"file":"serviceUnits.js","sourceRoot":"","sources":["../../src/runnerUtility/serviceUnits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serviceUnits.js","sourceRoot":"","sources":["../../src/runnerUtility/serviceUnits.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,13 @@
1
1
  import { type PairCodePayload } from './pairCode';
2
- /** @description The command to paste on the runner machine, for the pairing `payload`. */
2
+ /** @description The account the admin line pairs unless the operator changes its last word. */
3
+ export declare const defaultRunnerAccount = "runner";
4
+ /** @description Is `name` a plain account name (letters, digits, `.`, `_`, `-`; no leading `-`)? The admin line refuses anything else. */
5
+ export declare function checkIsAccountName(name: string): boolean;
6
+ /** @description The command to paste on the runner machine, as the account that will run jobs, for the pairing `payload`. */
3
7
  export declare function buildBootstrapLine(payload: PairCodePayload): string;
8
+ /**
9
+ * @description The command to paste in an ADMIN account's terminal on the runner machine: it checks `account`, pairs it, and installs its
10
+ * always-on service. `account` is the line's last word, so the operator can change it by hand.
11
+ */
12
+ export declare function buildAdminBootstrapLine(payload: PairCodePayload, account?: string): string;
4
13
  //# sourceMappingURL=bootstrapLine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapLine.d.ts","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AA+BlE,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAkCnE"}
1
+ {"version":3,"file":"bootstrapLine.d.ts","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAuDlE,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAK7C,0IAA0I;AAC1I,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAkDD,6HAA6H;AAC7H,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAGnE;AA2BD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,MAA6B,GAAG,MAAM,CAGhH"}
@@ -1,13 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultRunnerAccount = void 0;
4
+ exports.checkIsAccountName = checkIsAccountName;
3
5
  exports.buildBootstrapLine = buildBootstrapLine;
6
+ exports.buildAdminBootstrapLine = buildAdminBootstrapLine;
7
+ const adminCheck_1 = require("../runnerUtility/adminCheck");
8
+ const pairArgs_1 = require("../runnerUtility/pairArgs");
4
9
  const gateProtocol_1 = require("./gateProtocol");
5
10
  const pairCode_1 = require("./pairCode");
6
11
  /**
7
- * @description The one line the operator runs on the runner machine. It is plain `sh` (a runner has nothing of charness yet): it
8
- * writes the pairing's temporary key and the hub's host key into a private temp folder (removed on exit), downloads the hub's own
9
- * charness package through the gate's `bootstrap` request, unpacks it, and hands over to the runner utility's `pair` step with the
10
- * pairing code and the id of the archive it downloaded (the hub announces it in the marker line; the first step checks the archive against it). What the hub's shell printed before the gate ran (a banner, a motd) is skipped: the answer opens with the marker line,
12
+ * @description The lines the operator runs on the runner machine. They are plain `sh` (a runner has nothing of charness yet): they
13
+ * write the pairing's temporary key and the hub's host key into a private temp folder (removed on exit), download the hub's own
14
+ * charness package through the gate's `bootstrap` request, unpack it, and hand over to the runner utility's `pair` step with the
15
+ * pairing code and the id of the archive they downloaded (the hub announces it in the marker line; the first step checks the archive against it). What the hub's shell printed before the gate ran (a banner, a motd) is skipped: the answer opens with the marker line,
11
16
  * which `grep -b` finds among the first {@link maxGateNoiseBytes} bytes, and the archive is cut out from the byte after it.
12
17
  *
13
18
  * Contract with the runner utility: `runnerCli.js pair --bootstrap <unpacked folder> --archive <file> --package-id <id> <code>` is started with a package that has NO
@@ -16,6 +21,26 @@ const pairCode_1 = require("./pairCode");
16
21
  *
17
22
  * Every value in the line passed a strict pattern (`pairCode.ts`) that has no quote, space, `$`, backtick or backslash; the line
18
23
  * itself is wrapped in single quotes and so holds none.
24
+ *
25
+ * The PLAIN line ({@link buildBootstrapLine}) is run as the runner account itself: all of it is that account's.
26
+ *
27
+ * The ADMIN line ({@link buildAdminBootstrapLine}), `sudo sh -c '<script>' sh <account>`, is run from an admin account and does everything
28
+ * for the account named by its last word. The runner account runs the agents' code, so ROOT never executes, reads through or writes into
29
+ * anything that account can change. As root the script (1) checks the account (it exists; not root; not an admin; the OS is known),
30
+ * (2) downloads the package into a folder of ITS OWN in `/tmp` — root-owned, readable by the account, extracted with `--no-same-owner`
31
+ * — (3) has the account pair itself from that copy (`sudo -u <account> -H node …/runnerCli.js pair`: its files are the account's, never
32
+ * root's), and (4) runs the root step from the same root-owned copy (`rootServiceCli.js install <account>`: Node built-ins only, because
33
+ * the copy has no dependencies — it installs the always-on service, and touches the account's side only through `sudo -u`, see
34
+ * `runnerUtility/adminService.ts`). The pairing code stays single use, 10 minutes, a secret; sudo logs the command line, so a code that
35
+ * is neither used nor closed stays live in that log until it runs out: a refused line (no such account, an admin account) leaves it open ON
36
+ * PURPOSE — the operator fixes the last word and pastes the same line again — and an already-paired account's line closes its own code (the
37
+ * gate's `cancel`). Nothing creates an account. Run again for an account that is already paired, the line pairs nothing twice and installs
38
+ * the service — that is its way to retry.
39
+ *
40
+ * What the admin line trusts: the charness host. The line is text the host made, and the program root runs from it is the one in the host's
41
+ * own install, so whoever can change that install (its user, and the agents that run as that user) controls code that runs as root on the
42
+ * runner machine — and what it installs outlasts the paste. The plain line trusts the host only with the runner account. Every place that
43
+ * offers the line says so: the Telegram message (`runners.pairingAdminIntro`) and the CLI's text (`adminLineTrustSentence` in `runnersCli.ts`).
19
44
  */
20
45
  const minNodeMajor = 22;
21
46
  const minNodeMinor = 12;
@@ -26,12 +51,28 @@ const privateKeyFooter = '-----END OPENSSH PRIVATE KEY-----';
26
51
  const connectTimeoutSeconds = 20;
27
52
  /** The marker line of a `bootstrap` answer as an extended regular expression: the marker, the request, optional `key=value` fields. */
28
53
  const bootstrapMarkerPattern = `^${gateProtocol_1.gateMarker} bootstrap( [a-z]+=[A-Za-z0-9._:@/-]*)*$`;
54
+ const runnerCliInPackage = 'dist/runnerUtility/runnerCli.js';
55
+ const rootServiceCliInPackage = 'dist/runnerUtility/rootServiceCli.js';
56
+ /** Where the admin line's root-owned copy is made: a folder the account can read, which `$TMPDIR` (the admin's own, private) is not. */
57
+ const adminCopyBase = '/tmp';
29
58
  function getPrivateKeyBody(privateKey) {
30
59
  return privateKey.replace(privateKeyHeader, '').replace(privateKeyFooter, '').replace(/\s+/g, '');
31
60
  }
32
- /** @description The command to paste on the runner machine, for the pairing `payload`. */
33
- function buildBootstrapLine(payload) {
34
- const code = (0, pairCode_1.encodePairCode)(payload);
61
+ /** @description The account the admin line pairs unless the operator changes its last word. */
62
+ exports.defaultRunnerAccount = 'runner';
63
+ /** The characters of an account name the admin line lets through (a character class body): none is special to a shell, and a name never starts with `-`. */
64
+ const accountNameChars = 'A-Za-z0-9._-';
65
+ const accountNamePattern = new RegExp(`^(?!-)[${accountNameChars}]+$`);
66
+ /** @description Is `name` a plain account name (letters, digits, `.`, `_`, `-`; no leading `-`)? The admin line refuses anything else. */
67
+ function checkIsAccountName(name) {
68
+ return accountNamePattern.test(name);
69
+ }
70
+ /**
71
+ * The steps that make the package ready in `$d/pkg` (and its archive in `$d/package.tgz`): `sh` that needs nothing of charness. `isForAccount`:
72
+ * the copy is made by ROOT for an account to read — its folder is world-readable (the key files in it stay 0600), the archive and the
73
+ * package are extracted readable, and without taking the owner from the archive, so root's copy stays root's.
74
+ */
75
+ function renderFetchSteps(payload, isForAccount) {
35
76
  const sshOptions = [
36
77
  '-T', '-F /dev/null', '-i "$d/key"',
37
78
  '-o BatchMode=yes', '-o IdentitiesOnly=yes', '-o IdentityAgent=none',
@@ -39,10 +80,10 @@ function buildBootstrapLine(payload) {
39
80
  `-o HostKeyAlias=${hubHostAlias}`, `-o ConnectTimeout=${connectTimeoutSeconds}`,
40
81
  '-p "$p"',
41
82
  ].join(' ');
42
- const script = [
43
- 'set -eu',
83
+ return [
44
84
  'umask 077',
45
- 'd=$(mktemp -d "${TMPDIR:-/tmp}/charness-runner.XXXXXXXX")',
85
+ `d=$(mktemp -d "${isForAccount ? adminCopyBase : '${TMPDIR:-/tmp}'}/charness-runner.XXXXXXXX")`,
86
+ ...(isForAccount ? ['chmod 755 "$d"'] : []),
46
87
  'trap "rm -rf \\"$d\\"" EXIT',
47
88
  'trap "exit 1" INT TERM',
48
89
  `u="${payload.user}"`,
@@ -50,20 +91,64 @@ function buildBootstrapLine(payload) {
50
91
  `p="${payload.port}"`,
51
92
  `k="${payload.hostKey}"`,
52
93
  `b="${getPrivateKeyBody(payload.privateKey)}"`,
53
- `command -v node >/dev/null 2>&1 && node -e "var v=process.versions.node.split(/[.]/);process.exit(v[0]>${minNodeMajor}||v[0]==${minNodeMajor}&&v[1]>=${minNodeMinor}?0:1)" || { echo "charness-runner: Node.js ${minNodeMajor}.${minNodeMinor} or newer is needed on this machine (https://nodejs.org)" >&2; exit 1; }`,
94
+ `command -v node >/dev/null 2>&1 && node -e "var v=process.versions.node.split(/[.]/);process.exit(v[0]>${minNodeMajor}||v[0]==${minNodeMajor}&&v[1]>=${minNodeMinor}?0:1)" || { echo "charness-runner: ${isForAccount ? `sudo finds no Node.js ${minNodeMajor}.${minNodeMinor} or newer on its PATH (install it system-wide)` : `Node.js ${minNodeMajor}.${minNodeMinor} or newer is needed on this machine (https://nodejs.org)`}" >&2; exit 1; }`,
54
95
  `{ printf "%s\\n" "${privateKeyHeader}"; printf "%s" "$b" | fold -w ${privateKeyFoldWidth}; printf "\\n%s\\n" "${privateKeyFooter}"; } > "$d/key"`,
55
96
  `printf "%s %s\\n" ${hubHostAlias} "$k" > "$d/kh"`,
56
- `ssh ${sshOptions} "$u@$h" bootstrap > "$d/answer"`,
97
+ `ssh ${sshOptions} "$u@$h" bootstrap > "$d/answer" || { echo "charness-runner: the hub refused or did not answer (has the line expired or been used already? the ssh message above says which)" >&2; exit 1; }`,
57
98
  `hit=$(head -c ${gateProtocol_1.maxGateNoiseBytes} "$d/answer" | LC_ALL=C grep -a -b -o -E -e "${bootstrapMarkerPattern}" | head -n 1)`,
58
99
  '[ -n "$hit" ] || { echo "charness-runner: the hub did not send the package (has the line expired or been used already?)" >&2; exit 1; }',
59
100
  'o=${hit%%:*}; t=${hit#*:}',
101
+ ...(isForAccount ? ['umask 022'] : []),
60
102
  'tail -c +$((o + ${#t} + 2)) "$d/answer" > "$d/package.tgz"',
61
103
  'mkdir "$d/pkg"',
62
- 'tar -xzf "$d/package.tgz" -C "$d/pkg"',
63
- `node "$d/pkg/dist/runnerUtility/runnerCli.js" pair --bootstrap "$d/pkg" --archive "$d/package.tgz" --package-id "\${t##*id=}" ${code}`,
64
- ].join('; ');
104
+ `tar ${isForAccount ? '--no-same-owner ' : ''}-xzf "$d/package.tgz" -C "$d/pkg"`,
105
+ ];
106
+ }
107
+ /** The `pair` command on the unpacked package, for the pairing `code`. */
108
+ function renderPairCommand(code, isServiceFollowing) {
109
+ return `"$d/pkg/${runnerCliInPackage}" pair --bootstrap "$d/pkg" --archive "$d/package.tgz" --package-id "\${t##*id=}"${isServiceFollowing ? ` ${pairArgs_1.serviceFollowsFlag}` : ''} ${code}`;
110
+ }
111
+ function checkScriptHasNoQuote(script, what) {
65
112
  if (script.includes("'"))
66
- throw new Error('the bootstrap script must not hold a single quote');
67
- return `sh -c '${script}'`;
113
+ throw new Error(`the ${what} script must not hold a single quote`);
114
+ return script;
115
+ }
116
+ /** @description The command to paste on the runner machine, as the account that will run jobs, for the pairing `payload`. */
117
+ function buildBootstrapLine(payload) {
118
+ const script = [...renderFetchSteps(payload, false), `node ${renderPairCommand((0, pairCode_1.encodePairCode)(payload), false)}`];
119
+ return `sh -c '${checkScriptHasNoQuote(['set -eu', ...script].join('; '), 'bootstrap')}'`;
120
+ }
121
+ /**
122
+ * The admin script. `$1` is the account. Messages are plain ASCII with no apostrophe (the whole line sits in single quotes) and short: the
123
+ * line plus its text must fit one Telegram message.
124
+ */
125
+ function renderAdminScript(payload) {
126
+ const checks = [
127
+ 'f() { echo "charness-runner: $*" >&2; exit 1; }',
128
+ 'a=$1',
129
+ '[ "$(id -u)" = 0 ] || f "run this line with sudo"',
130
+ `case $a in ""|-*|*[!${accountNameChars}]*) f "$a is not an account name";; esac`,
131
+ 'i=$(id -u "$a" 2>/dev/null) || f "no account $a here: create a standard user or fix the last word"',
132
+ '[ "$i" != 0 ] || f "$a is root: use a standard user"',
133
+ `case $(uname -s) in Darwin) g="${adminCheck_1.macAdminGroup}";; Linux) g="${adminCheck_1.linuxAdminGroups.join(' ')}";; *) f "only macOS and Linux";; esac`,
134
+ 'gs=$(id -Gn "$a") || f "no groups for $a"',
135
+ 'for x in $gs; do case " $g " in *" $x "*) f "$a is an admin: the agents code runs with its rights";; esac; done',
136
+ ];
137
+ const steps = [
138
+ ...renderFetchSteps(payload, true),
139
+ 'n=$(command -v node)',
140
+ `sudo -u "$a" -H "$n" ${renderPairCommand((0, pairCode_1.encodePairCode)(payload), true)}`,
141
+ `"$n" "$d/pkg/${rootServiceCliInPackage}" install "$a" || f "$a is paired, but has no service: fix the above and paste a fresh admin line"`,
142
+ ];
143
+ return checkScriptHasNoQuote(['set -eu', ...checks, ...steps].join('; '), 'admin');
144
+ }
145
+ /**
146
+ * @description The command to paste in an ADMIN account's terminal on the runner machine: it checks `account`, pairs it, and installs its
147
+ * always-on service. `account` is the line's last word, so the operator can change it by hand.
148
+ */
149
+ function buildAdminBootstrapLine(payload, account = exports.defaultRunnerAccount) {
150
+ if (!checkIsAccountName(account))
151
+ throw new Error('the runner account must be a plain account name');
152
+ return `sudo sh -c '${renderAdminScript(payload)}' sh ${account}`;
68
153
  }
69
154
  //# sourceMappingURL=bootstrapLine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapLine.js","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":";;AAiCA,gDAkCC;AAnED,iDAA+D;AAC/D,yCAAkE;AAElE;;;;;;;;;;;;;GAaG;AAEH,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAC7D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,uIAAuI;AACvI,MAAM,sBAAsB,GAAG,IAAI,yBAAU,0CAA0C,CAAC;AAExF,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,0FAA0F;AAC1F,SAAgB,kBAAkB,CAAC,OAAwB;IACzD,MAAM,IAAI,GAAG,IAAA,yBAAc,EAAC,OAAO,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,cAAc,EAAE,aAAa;QACnC,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB;QACpE,8BAA8B,EAAE,+BAA+B,EAAE,mCAAmC;QACpG,mBAAmB,YAAY,EAAE,EAAE,qBAAqB,qBAAqB,EAAE;QAC/E,SAAS;KACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,MAAM,GAAG;QACb,SAAS;QACT,WAAW;QACX,2DAA2D;QAC3D,6BAA6B;QAC7B,wBAAwB;QACxB,MAAM,OAAO,CAAC,IAAI,GAAG;QACrB,MAAM,OAAO,CAAC,IAAI,GAAG;QACrB,MAAM,OAAO,CAAC,IAAI,GAAG;QACrB,MAAM,OAAO,CAAC,OAAO,GAAG;QACxB,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;QAC9C,0GAA0G,YAAY,WAAW,YAAY,WAAW,YAAY,8CAA8C,YAAY,IAAI,YAAY,0EAA0E;QACxT,qBAAqB,gBAAgB,iCAAiC,mBAAmB,wBAAwB,gBAAgB,iBAAiB;QAClJ,qBAAqB,YAAY,iBAAiB;QAClD,OAAO,UAAU,kCAAkC;QACnD,iBAAiB,gCAAiB,gDAAgD,sBAAsB,gBAAgB;QACxH,yIAAyI;QACzI,2BAA2B;QAC3B,4DAA4D;QAC5D,gBAAgB;QAChB,uCAAuC;QACvC,iIAAiI,IAAI,EAAE;KACxI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC/F,OAAO,UAAU,MAAM,GAAG,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"bootstrapLine.js","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAOL,KAAK,WAAW,EAGjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAmB/D,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,qHAAqH;AACrH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAUtE;AAED,uIAAuI;AACvI,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAGtH;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,+CAA+C;IAC/C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACxC;AAoFD,qGAAqG;AACrG,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmD3I"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAQL,KAAK,WAAW,EAGjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAmB/D,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,qHAAqH;AACrH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAUtE;AAED,uIAAuI;AACvI,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAGtH;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,+CAA+C;IAC/C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACxC;AA4FD,qGAAqG;AACrG,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoD3I"}
@@ -125,6 +125,13 @@ function safeParseJson(text) {
125
125
  return null;
126
126
  }
127
127
  }
128
+ /** `cancel`: the line that held this code is done without using it (an admin line pasted again for a machine that is already paired). Idempotent. */
129
+ async function handleCancel(ctx, pairId, io, now) {
130
+ const reply = { ok: await (0, hubPairing_1.cancelPairing)(ctx, pairId, now()) };
131
+ io.stdout.write((0, gateProtocol_1.formatGateAnswerHead)('cancel'));
132
+ io.stdout.write(`${JSON.stringify(reply)}\n`);
133
+ return 0;
134
+ }
128
135
  async function handleUnpair(ctx, runnerId, io, now) {
129
136
  const removed = await (0, hubPairing_1.removePairedRunner)(ctx, runnerId, now());
130
137
  if (removed !== null)
@@ -183,6 +190,8 @@ async function runRunnerGate(argv, env, io, options = {}) {
183
190
  }
184
191
  return await writePackage(ctx, io, 'bootstrap');
185
192
  }
193
+ if (request === 'cancel')
194
+ return await handleCancel(ctx, invocation.pairId, io, now);
186
195
  return await handleRedeem(ctx, invocation.pairId, io, now);
187
196
  }
188
197
  // The key line is only the way in: a runner that left the registry is refused whatever its line (or an ssh connection it already
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import { z } from 'zod';
21
21
  */
22
22
  /** The text every marker line starts with; the `1` is the protocol version. */
23
23
  export declare const gateMarker = "--charness-gate-1--";
24
- export declare const gateRequests: readonly ["bootstrap", "redeem", "link", "package", "version", "identity", "unpair"];
24
+ export declare const gateRequests: readonly ["bootstrap", "redeem", "cancel", "link", "package", "version", "identity", "unpair"];
25
25
  /** @name GateRequest @description One of the words a runner may send. */
26
26
  export type GateRequest = (typeof gateRequests)[number];
27
27
  export declare const temporaryKeyRequests: readonly GateRequest[];
@@ -93,6 +93,12 @@ export type RedeemReply = z.infer<typeof redeemReplySchema>;
93
93
  export declare const unpairReplySchema: z.ZodObject<{
94
94
  ok: z.ZodBoolean;
95
95
  }, z.core.$strict>;
96
+ /** `ok`: the code was open and is closed now; `false`: there was nothing to close (spent, expired, or cancelled already). */
97
+ export declare const cancelReplySchema: z.ZodObject<{
98
+ ok: z.ZodBoolean;
99
+ }, z.core.$strict>;
100
+ /** @name CancelReply @description What `cancel` answers. */
101
+ export type CancelReply = z.infer<typeof cancelReplySchema>;
96
102
  /** @name UnpairReply @description What `unpair` answers. */
97
103
  export type UnpairReply = z.infer<typeof unpairReplySchema>;
98
104
  //# sourceMappingURL=gateProtocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateProtocol.d.ts","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,sFAAuF,CAAC;AACjH,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,SAAS,WAAW,EAA4B,CAAC;AACpF,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAAyD,CAAC;AAE9G,0FAA0F;AAC1F,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,wGAAwG;AACxG,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAK7C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAEhH;AAMD,2HAA2H;AAC3H,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAGhH;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,yGAAyG;AACzG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CASnE;AAGD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAE,MAA0B,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsCrJ;AAID,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAU9B,CAAC;AACH,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;0BAa5B,CAAC;AACH,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;kBAAsC,CAAC;AACrE,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"gateProtocol.d.ts","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,gGAAiG,CAAC;AAC3H,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,SAAS,WAAW,EAAsC,CAAC;AAC9F,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAAyD,CAAC;AAE9G,0FAA0F;AAC1F,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,wGAAwG;AACxG,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAK7C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAEhH;AAMD,2HAA2H;AAC3H,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAGhH;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,yGAAyG;AACzG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CASnE;AAGD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAE,MAA0B,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsCrJ;AAID,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAU9B,CAAC;AACH,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;0BAa5B,CAAC;AACH,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;kBAAsC,CAAC;AAErE,6HAA6H;AAC7H,eAAO,MAAM,iBAAiB;;kBAAsC,CAAC;AACrE,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unpairReplySchema = exports.redeemReplySchema = exports.redeemRequestSchema = exports.maxGateNoiseBytes = exports.maxGateRequestBytes = exports.linkUserName = exports.noPackageMarker = exports.runnerKeyRequests = exports.temporaryKeyRequests = exports.gateRequests = exports.gateMarker = void 0;
3
+ exports.cancelReplySchema = exports.unpairReplySchema = exports.redeemReplySchema = exports.redeemRequestSchema = exports.maxGateNoiseBytes = exports.maxGateRequestBytes = exports.linkUserName = exports.noPackageMarker = exports.runnerKeyRequests = exports.temporaryKeyRequests = exports.gateRequests = exports.gateMarker = void 0;
4
4
  exports.formatGateAnswerHead = formatGateAnswerHead;
5
5
  exports.formatGateMarkerLine = formatGateMarkerLine;
6
6
  exports.parseGateMarkerLine = parseGateMarkerLine;
@@ -31,8 +31,8 @@ const hubRegistry_1 = require("./hubRegistry");
31
31
  */
32
32
  /** The text every marker line starts with; the `1` is the protocol version. */
33
33
  exports.gateMarker = '--charness-gate-1--';
34
- exports.gateRequests = ['bootstrap', 'redeem', 'link', 'package', 'version', 'identity', 'unpair'];
35
- exports.temporaryKeyRequests = ['bootstrap', 'redeem'];
34
+ exports.gateRequests = ['bootstrap', 'redeem', 'cancel', 'link', 'package', 'version', 'identity', 'unpair'];
35
+ exports.temporaryKeyRequests = ['bootstrap', 'redeem', 'cancel'];
36
36
  exports.runnerKeyRequests = ['link', 'package', 'version', 'identity', 'unpair'];
37
37
  /** What a `link` / `version` answer names as the package when the hub cannot pack one. */
38
38
  exports.noPackageMarker = 'none';
@@ -146,4 +146,6 @@ exports.redeemReplySchema = zod_1.z.discriminatedUnion('ok', [
146
146
  zod_1.z.strictObject({ ok: zod_1.z.literal(false), reason: zod_1.z.string() }),
147
147
  ]);
148
148
  exports.unpairReplySchema = zod_1.z.strictObject({ ok: zod_1.z.boolean() });
149
+ /** `ok`: the code was open and is closed now; `false`: there was nothing to close (spent, expired, or cancelled already). */
150
+ exports.cancelReplySchema = zod_1.z.strictObject({ ok: zod_1.z.boolean() });
149
151
  //# sourceMappingURL=gateProtocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateProtocol.js","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateProtocol.js","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,13 @@ export interface CreatedPairing {
28
28
  export declare function createPairing(ctx: HubContext, params: CreatePairingParams): Promise<CreatedPairing>;
29
29
  /** @description Is the pairing code `pairId` still open (made, not used, not expired)? The gate asks before it sends the package. */
30
30
  export declare function checkIsPairingOpen(ctx: HubContext, pairId: string, nowMs: number): boolean;
31
+ /**
32
+ * @description Close the pairing code `pairId` before it runs out: its entry leaves `pending.json` and its key line `authorized_keys`, so
33
+ * the line it was in can no longer be used. `true` when the code was open (made, not used, not expired); `false` — and nothing changes —
34
+ * for one that is unknown, used or expired. The closing is NOTED first (`recordClosedCode`, in the same transaction, best effort), so the
35
+ * offering instance and `--wait` can tell a code that was closed — its line was used on a machine that was already paired — from one that ran out.
36
+ */
37
+ export declare function cancelPairing(ctx: HubContext, pairId: string, nowMs: number): Promise<boolean>;
31
38
  /**
32
39
  * @description Forget the pairing codes that have expired (their lines are gone from `authorized_keys` too) and return them, so the
33
40
  * offering instance can edit its messages. A code that was used but whose entry outlived a crash is dropped without being returned.
@@ -1 +1 @@
1
- {"version":3,"file":"hubPairing.d.ts","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EAQL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAqBlE,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;CAC1B;AA0CD,yIAAyI;AACzI,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0BnG;AAED,qIAAqI;AACrI,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAK9F;AAED,uHAAuH;AACvH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAOjG;AAWD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAM/G;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC3J;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7G;AAED,iLAAiL;AACjL,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED,mQAAmQ;AACnQ,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMjH;AAED,6JAA6J;AAC7J,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAQxH"}
1
+ {"version":3,"file":"hubPairing.d.ts","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.createPairing = createPairing;
37
37
  exports.checkIsPairingOpen = checkIsPairingOpen;
38
+ exports.cancelPairing = cancelPairing;
38
39
  exports.sweepExpiredPairings = sweepExpiredPairings;
39
40
  exports.sanitizeRunnerName = sanitizeRunnerName;
40
41
  exports.pickFreeRunnerName = pickFreeRunnerName;
@@ -130,6 +131,21 @@ function checkIsPairingOpen(ctx, pairId, nowMs) {
130
131
  return (0, hubRegistry_1.readPendingFile)(ctx.dir).pending.some((pairing) => pairing.pairId === pairId && pairing.expiresAtMs > nowMs)
131
132
  && !checkIsPairingUsed((0, hubRegistry_1.readPairedFile)(ctx.dir), pairId);
132
133
  }
134
+ /**
135
+ * @description Close the pairing code `pairId` before it runs out: its entry leaves `pending.json` and its key line `authorized_keys`, so
136
+ * the line it was in can no longer be used. `true` when the code was open (made, not used, not expired); `false` — and nothing changes —
137
+ * for one that is unknown, used or expired. The closing is NOTED first (`recordClosedCode`, in the same transaction, best effort), so the
138
+ * offering instance and `--wait` can tell a code that was closed — its line was used on a machine that was already paired — from one that ran out.
139
+ */
140
+ function cancelPairing(ctx, pairId, nowMs) {
141
+ return runTransaction(ctx, nowMs, (state) => {
142
+ const pairing = state.pending.pending.find((candidate) => candidate.pairId === pairId);
143
+ if (pairing === undefined || pairing.expiresAtMs <= nowMs)
144
+ return { result: false };
145
+ (0, hubRegistry_1.recordClosedCode)(ctx, pairId, nowMs);
146
+ return { result: true, pending: { pending: state.pending.pending.filter((candidate) => candidate.pairId !== pairId) } };
147
+ });
148
+ }
133
149
  /**
134
150
  * @description Forget the pairing codes that have expired (their lines are gone from `authorized_keys` too) and return them, so the
135
151
  * offering instance can edit its messages. A code that was used but whose entry outlived a crash is dropped without being returned.
@@ -1 +1 @@
1
- {"version":3,"file":"hubPairing.js","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyGA,sCA0BC;AAGD,gDAGC;AAOD,oDAKC;AAGD,gDAQC;AAGD,gDAOC;AAiBD,wDAMC;AAUD,sCAkCC;AAGD,4CAEC;AAGD,kDAEC;AAGD,gDAMC;AAGD,sDAQC;AA3QD,uCAAyB;AACzB,8DAAiE;AACjE,qDAA4D;AAE5D,yCAAqE;AACrE,uCAAwC;AACxC,qCAAgE;AAChE,+CAWuB;AACvB,yCAAkE;AAClE,mDAAoD;AACpD,uCAA4F;AAE5F;;;;;;;;;;;;GAYG;AAEH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAsCpC,SAAS,cAAc,CAAU,GAAe,EAAE,KAAa,EAAE,IAA2D;IAC1H,OAAO,IAAA,qBAAW,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;QAC/B,IAAA,yCAAwB,EAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,kIAAkI;QAClI,qIAAqI;QACrI,kFAAkF;QAClF,MAAM,OAAO,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/H,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM;YAAE,IAAA,8BAAgB,EAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAClG,MAAM,KAAK,GAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAA,6BAAe,EAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAA,8BAAgB,EAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAA,iCAAmB,EAAC,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClG,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,OAAoB,EAAE,KAAa;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;IAClF,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;AAC1G,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAkB,EAAE,MAAc;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,yIAAyI;AACzI,SAAgB,aAAa,CAAC,GAAe,EAAE,MAA2B;IACxE,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,IAAA,wBAAc,GAAE,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,iCAAiB,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,IAAA,gCAAsB,EAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAmB;YAC9B,MAAM;YACN,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,cAAc,EAAE,IAAA,iCAAuB,EAAC,YAAY,CAAC,SAAS,CAAC;YAC/D,WAAW;YACX,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;SACtC,CAAC;QACF,MAAM,OAAO,GAAoB;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ;YAC9C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,MAAM;SACP,CAAC;QACF,0IAA0I;QAC1I,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAA,yBAAc,EAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;IAChJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qIAAqI;AACrI,SAAgB,kBAAkB,CAAC,GAAe,EAAE,MAAc,EAAE,KAAa;IAC/E,OAAO,IAAA,6BAAe,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;WAC9G,CAAC,kBAAkB,CAAC,IAAA,4BAAc,EAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,GAAe,EAAE,KAAa;IACjE,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACjH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uHAAuH;AACvH,SAAgB,kBAAkB,CAAC,aAAqB;IACtD,MAAM,OAAO,GAAG,aAAa;SAC1B,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC;SAC7B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvB,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,wGAAwG;AACxG,SAAgB,kBAAkB,CAAC,aAAqB,EAAE,UAA+B;IACvF,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAe,EAAE,MAA+B;IAC3E,MAAM,QAAQ,GAAG,IAAA,mCAAmB,EAAC,IAAA,iCAAsB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IAC5F,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAoB,EAAE,YAAoB,EAAE,SAAwB;IAC5F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;AAClJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,GAAe,EAAE,QAAgB,EAAE,SAAwB;IAChG,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC9F,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,8BAAgB,CAAC,4BAA4B,CAAC,CAAC;IAC9E,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,iBAAiB,GAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;AAE7G;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,GAAe,EAAE,MAAc,EAAE,OAAsB,EAAE,KAAa,EAAE,YAA2B,IAAI;IACnI,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,EAAmC,EAAE;QAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAA,iCAAwB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC/J,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvF,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,CAAC;QAC5G,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,CAAC;QAC9J,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,IAAA,wBAAc,GAAE;YACpB,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/F,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,IAAA,iCAAuB,EAAC,OAAO,CAAC,SAAS,CAAC;YAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,KAAK;YACjB,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO;YACL,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAA,iCAAwB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC;YACxF,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;YACjF,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;SAC/F,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2DAA2D;AAC3D,SAAgB,gBAAgB,CAAC,OAAgC,EAAE,QAAgB;IACjF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;AAChH,CAAC;AAED,iLAAiL;AACjL,SAAgB,mBAAmB,CAAC,GAAe,EAAE,QAAgB;IACnE,OAAO,IAAA,4BAAc,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;AAClF,CAAC;AAED,mQAAmQ;AACnQ,SAAgB,kBAAkB,CAAC,GAAe,EAAE,QAAgB,EAAE,KAAa;IACjF,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACpJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6JAA6J;AAC7J,SAAgB,qBAAqB,CAAC,GAAe,EAAE,QAAgB,EAAE,QAAiB;IACxF,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClD,MAAM,OAAO,GAAiB,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1K,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"hubPairing.js","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,14 @@ export interface HubContext {
9
9
  cliPath: string;
10
10
  /** The folder with `package.json`, `dist/` and `remoteRun/` — the package a runner installs. */
11
11
  packageRoot: string;
12
+ /** Where the hub side says that something went wrong which did NOT stop what it was doing (a leftover file it could not clean up). */
13
+ log: (line: string) => void;
12
14
  }
13
15
  export interface HubFilePaths {
14
16
  paired: string;
15
17
  pending: string;
18
+ /** The trace of the codes that were closed unused (`hubRegistry.ts`). */
19
+ closed: string;
16
20
  hubKey: string;
17
21
  hubPublicKey: string;
18
22
  knownHosts: string;