peerllm-host-cli 0.1.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 (190) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +83 -0
  3. package/dist/cli/commands/agreement.d.ts +3 -0
  4. package/dist/cli/commands/agreement.d.ts.map +1 -0
  5. package/dist/cli/commands/agreement.js +151 -0
  6. package/dist/cli/commands/agreement.js.map +1 -0
  7. package/dist/cli/commands/config.d.ts +3 -0
  8. package/dist/cli/commands/config.d.ts.map +1 -0
  9. package/dist/cli/commands/config.js +163 -0
  10. package/dist/cli/commands/config.js.map +1 -0
  11. package/dist/cli/commands/diagnostics.d.ts +3 -0
  12. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  13. package/dist/cli/commands/diagnostics.js +131 -0
  14. package/dist/cli/commands/diagnostics.js.map +1 -0
  15. package/dist/cli/commands/doctor.d.ts +3 -0
  16. package/dist/cli/commands/doctor.d.ts.map +1 -0
  17. package/dist/cli/commands/doctor.js +349 -0
  18. package/dist/cli/commands/doctor.js.map +1 -0
  19. package/dist/cli/commands/events.d.ts +3 -0
  20. package/dist/cli/commands/events.d.ts.map +1 -0
  21. package/dist/cli/commands/events.js +51 -0
  22. package/dist/cli/commands/events.js.map +1 -0
  23. package/dist/cli/commands/host.d.ts +3 -0
  24. package/dist/cli/commands/host.d.ts.map +1 -0
  25. package/dist/cli/commands/host.js +252 -0
  26. package/dist/cli/commands/host.js.map +1 -0
  27. package/dist/cli/commands/login.d.ts +3 -0
  28. package/dist/cli/commands/login.d.ts.map +1 -0
  29. package/dist/cli/commands/login.js +51 -0
  30. package/dist/cli/commands/login.js.map +1 -0
  31. package/dist/cli/commands/logout.d.ts +3 -0
  32. package/dist/cli/commands/logout.d.ts.map +1 -0
  33. package/dist/cli/commands/logout.js +28 -0
  34. package/dist/cli/commands/logout.js.map +1 -0
  35. package/dist/cli/commands/logs.d.ts +3 -0
  36. package/dist/cli/commands/logs.d.ts.map +1 -0
  37. package/dist/cli/commands/logs.js +157 -0
  38. package/dist/cli/commands/logs.js.map +1 -0
  39. package/dist/cli/commands/models.d.ts +3 -0
  40. package/dist/cli/commands/models.d.ts.map +1 -0
  41. package/dist/cli/commands/models.js +227 -0
  42. package/dist/cli/commands/models.js.map +1 -0
  43. package/dist/cli/commands/register.d.ts +3 -0
  44. package/dist/cli/commands/register.d.ts.map +1 -0
  45. package/dist/cli/commands/register.js +48 -0
  46. package/dist/cli/commands/register.js.map +1 -0
  47. package/dist/cli/commands/restart.d.ts +3 -0
  48. package/dist/cli/commands/restart.d.ts.map +1 -0
  49. package/dist/cli/commands/restart.js +66 -0
  50. package/dist/cli/commands/restart.js.map +1 -0
  51. package/dist/cli/commands/service.d.ts +3 -0
  52. package/dist/cli/commands/service.d.ts.map +1 -0
  53. package/dist/cli/commands/service.js +194 -0
  54. package/dist/cli/commands/service.js.map +1 -0
  55. package/dist/cli/commands/setup.d.ts +3 -0
  56. package/dist/cli/commands/setup.d.ts.map +1 -0
  57. package/dist/cli/commands/setup.js +242 -0
  58. package/dist/cli/commands/setup.js.map +1 -0
  59. package/dist/cli/commands/start.d.ts +3 -0
  60. package/dist/cli/commands/start.d.ts.map +1 -0
  61. package/dist/cli/commands/start.js +125 -0
  62. package/dist/cli/commands/start.js.map +1 -0
  63. package/dist/cli/commands/status.d.ts +3 -0
  64. package/dist/cli/commands/status.d.ts.map +1 -0
  65. package/dist/cli/commands/status.js +76 -0
  66. package/dist/cli/commands/status.js.map +1 -0
  67. package/dist/cli/commands/stop.d.ts +3 -0
  68. package/dist/cli/commands/stop.d.ts.map +1 -0
  69. package/dist/cli/commands/stop.js +46 -0
  70. package/dist/cli/commands/stop.js.map +1 -0
  71. package/dist/cli/commands/subscription.d.ts +3 -0
  72. package/dist/cli/commands/subscription.d.ts.map +1 -0
  73. package/dist/cli/commands/subscription.js +342 -0
  74. package/dist/cli/commands/subscription.js.map +1 -0
  75. package/dist/cli/exit-codes.d.ts +12 -0
  76. package/dist/cli/exit-codes.d.ts.map +1 -0
  77. package/dist/cli/exit-codes.js +11 -0
  78. package/dist/cli/exit-codes.js.map +1 -0
  79. package/dist/cli/format.d.ts +8 -0
  80. package/dist/cli/format.d.ts.map +1 -0
  81. package/dist/cli/format.js +22 -0
  82. package/dist/cli/format.js.map +1 -0
  83. package/dist/cli/index.d.ts +3 -0
  84. package/dist/cli/index.d.ts.map +1 -0
  85. package/dist/cli/index.js +88 -0
  86. package/dist/cli/index.js.map +1 -0
  87. package/dist/cli/ipc-client.d.ts +20 -0
  88. package/dist/cli/ipc-client.d.ts.map +1 -0
  89. package/dist/cli/ipc-client.js +101 -0
  90. package/dist/cli/ipc-client.js.map +1 -0
  91. package/dist/cli/prompts.d.ts +5 -0
  92. package/dist/cli/prompts.d.ts.map +1 -0
  93. package/dist/cli/prompts.js +68 -0
  94. package/dist/cli/prompts.js.map +1 -0
  95. package/dist/cli/services.d.ts +18 -0
  96. package/dist/cli/services.d.ts.map +1 -0
  97. package/dist/cli/services.js +16 -0
  98. package/dist/cli/services.js.map +1 -0
  99. package/dist/core/auth.d.ts +24 -0
  100. package/dist/core/auth.d.ts.map +1 -0
  101. package/dist/core/auth.js +111 -0
  102. package/dist/core/auth.js.map +1 -0
  103. package/dist/core/backend-client.d.ts +33 -0
  104. package/dist/core/backend-client.d.ts.map +1 -0
  105. package/dist/core/backend-client.js +79 -0
  106. package/dist/core/backend-client.js.map +1 -0
  107. package/dist/core/config.d.ts +21 -0
  108. package/dist/core/config.d.ts.map +1 -0
  109. package/dist/core/config.js +98 -0
  110. package/dist/core/config.js.map +1 -0
  111. package/dist/core/events.d.ts +23 -0
  112. package/dist/core/events.d.ts.map +1 -0
  113. package/dist/core/events.js +15 -0
  114. package/dist/core/events.js.map +1 -0
  115. package/dist/core/fs-lock.d.ts +13 -0
  116. package/dist/core/fs-lock.d.ts.map +1 -0
  117. package/dist/core/fs-lock.js +52 -0
  118. package/dist/core/fs-lock.js.map +1 -0
  119. package/dist/core/jsonrpc.d.ts +55 -0
  120. package/dist/core/jsonrpc.d.ts.map +1 -0
  121. package/dist/core/jsonrpc.js +59 -0
  122. package/dist/core/jsonrpc.js.map +1 -0
  123. package/dist/core/logger.d.ts +28 -0
  124. package/dist/core/logger.d.ts.map +1 -0
  125. package/dist/core/logger.js +80 -0
  126. package/dist/core/logger.js.map +1 -0
  127. package/dist/core/model-info.d.ts +11 -0
  128. package/dist/core/model-info.d.ts.map +1 -0
  129. package/dist/core/model-info.js +137 -0
  130. package/dist/core/model-info.js.map +1 -0
  131. package/dist/core/models-fs.d.ts +6 -0
  132. package/dist/core/models-fs.d.ts.map +1 -0
  133. package/dist/core/models-fs.js +21 -0
  134. package/dist/core/models-fs.js.map +1 -0
  135. package/dist/core/orchestrator.d.ts +42 -0
  136. package/dist/core/orchestrator.d.ts.map +1 -0
  137. package/dist/core/orchestrator.js +304 -0
  138. package/dist/core/orchestrator.js.map +1 -0
  139. package/dist/core/paths.d.ts +17 -0
  140. package/dist/core/paths.d.ts.map +1 -0
  141. package/dist/core/paths.js +51 -0
  142. package/dist/core/paths.js.map +1 -0
  143. package/dist/core/redact.d.ts +3 -0
  144. package/dist/core/redact.d.ts.map +1 -0
  145. package/dist/core/redact.js +27 -0
  146. package/dist/core/redact.js.map +1 -0
  147. package/dist/core/secrets.d.ts +12 -0
  148. package/dist/core/secrets.d.ts.map +1 -0
  149. package/dist/core/secrets.js +66 -0
  150. package/dist/core/secrets.js.map +1 -0
  151. package/dist/core/shared-runner.d.ts +70 -0
  152. package/dist/core/shared-runner.d.ts.map +1 -0
  153. package/dist/core/shared-runner.js +450 -0
  154. package/dist/core/shared-runner.js.map +1 -0
  155. package/dist/core/subscription.d.ts +53 -0
  156. package/dist/core/subscription.d.ts.map +1 -0
  157. package/dist/core/subscription.js +117 -0
  158. package/dist/core/subscription.js.map +1 -0
  159. package/dist/daemon/index.d.ts +3 -0
  160. package/dist/daemon/index.d.ts.map +1 -0
  161. package/dist/daemon/index.js +22 -0
  162. package/dist/daemon/index.js.map +1 -0
  163. package/dist/daemon/ipc-server.d.ts +33 -0
  164. package/dist/daemon/ipc-server.d.ts.map +1 -0
  165. package/dist/daemon/ipc-server.js +202 -0
  166. package/dist/daemon/ipc-server.js.map +1 -0
  167. package/dist/daemon/methods.d.ts +17 -0
  168. package/dist/daemon/methods.d.ts.map +1 -0
  169. package/dist/daemon/methods.js +68 -0
  170. package/dist/daemon/methods.js.map +1 -0
  171. package/dist/daemon/pid-lock.d.ts +10 -0
  172. package/dist/daemon/pid-lock.d.ts.map +1 -0
  173. package/dist/daemon/pid-lock.js +45 -0
  174. package/dist/daemon/pid-lock.js.map +1 -0
  175. package/dist/daemon/run.d.ts +19 -0
  176. package/dist/daemon/run.d.ts.map +1 -0
  177. package/dist/daemon/run.js +182 -0
  178. package/dist/daemon/run.js.map +1 -0
  179. package/dist/shared/config-types.d.ts +27 -0
  180. package/dist/shared/config-types.d.ts.map +1 -0
  181. package/dist/shared/config-types.js +13 -0
  182. package/dist/shared/config-types.js.map +1 -0
  183. package/dist/shared/protocol.d.ts +43 -0
  184. package/dist/shared/protocol.d.ts.map +1 -0
  185. package/dist/shared/protocol.js +11 -0
  186. package/dist/shared/protocol.js.map +1 -0
  187. package/package.json +70 -0
  188. package/templates/launchd/com.peerllm.host.plist +25 -0
  189. package/templates/systemd/peerllm-host.service +17 -0
  190. package/templates/windows/install-service.ps1 +29 -0
@@ -0,0 +1,342 @@
1
+ import { setTimeout as delay } from "node:timers/promises";
2
+ import { Command } from "commander";
3
+ import { EXIT } from "../exit-codes.js";
4
+ import { printError } from "../format.js";
5
+ import { promptYesNo } from "../prompts.js";
6
+ import { buildClientServices } from "../services.js";
7
+ const POLL_INTERVAL_MS = 3_000;
8
+ const POLL_TIMEOUT_MS = 5 * 60 * 1_000;
9
+ async function ensureLogin(services, json) {
10
+ if (!(await services.auth.hasRefreshToken())) {
11
+ printError("not authenticated", {
12
+ json,
13
+ hint: "Log in first: peerllm-host login",
14
+ });
15
+ process.exit(EXIT.notAuthenticated);
16
+ }
17
+ }
18
+ async function pollForHostSubscribed(services, hostId, opts = {}) {
19
+ const intervalMs = opts.intervalMs ?? POLL_INTERVAL_MS;
20
+ const deadline = Date.now() + (opts.timeoutMs ?? POLL_TIMEOUT_MS);
21
+ if (!opts.json) {
22
+ process.stdout.write(" waiting for PayPal confirmation");
23
+ }
24
+ while (Date.now() < deadline) {
25
+ if (!opts.json)
26
+ process.stdout.write(".");
27
+ try {
28
+ const { subscribed } = await services.subscription.hostIsActive(hostId);
29
+ if (subscribed) {
30
+ if (!opts.json)
31
+ process.stdout.write("\n ✓ subscription confirmed\n");
32
+ return true;
33
+ }
34
+ }
35
+ catch (err) {
36
+ if (!opts.json) {
37
+ process.stdout.write(`\n (poll error: ${err.message})\n`);
38
+ }
39
+ }
40
+ await delay(intervalMs);
41
+ }
42
+ if (!opts.json)
43
+ process.stdout.write("\n");
44
+ return false;
45
+ }
46
+ function describeCapacity(c) {
47
+ process.stdout.write(`active subscription: ${c.hasActiveSubscription ? "yes" : "no"}\n`);
48
+ if (c.subscriptionStatus) {
49
+ process.stdout.write(`status: ${c.subscriptionStatus}\n`);
50
+ }
51
+ process.stdout.write(`subscribed hosts: ${c.subscribedHostCount}\n`);
52
+ if (c.pendingHostCount !== undefined) {
53
+ process.stdout.write(`pending hosts: ${c.pendingHostCount}\n`);
54
+ }
55
+ process.stdout.write(`available hosts: ${c.availableHostCount}\n`);
56
+ process.stdout.write(`price per host: $${c.pricePerHost.toFixed(2)}\n`);
57
+ if (c.subscribedHosts.length > 0) {
58
+ process.stdout.write(`\nsubscribed:\n`);
59
+ for (const h of c.subscribedHosts) {
60
+ process.stdout.write(` ${h.hostId}\n`);
61
+ }
62
+ }
63
+ if (c.pendingHosts?.length) {
64
+ process.stdout.write(`\npending:\n`);
65
+ for (const h of c.pendingHosts) {
66
+ process.stdout.write(` ${h.hostId}\n`);
67
+ }
68
+ }
69
+ }
70
+ function makeStatus() {
71
+ return new Command("status")
72
+ .description("Show subscription status")
73
+ .option("--config-dir <path>", "override config directory")
74
+ .option("--json", "machine-readable JSON output")
75
+ .action(async (opts) => {
76
+ const services = buildClientServices({ configDir: opts.configDir });
77
+ await ensureLogin(services, opts.json);
78
+ try {
79
+ const capacity = await services.subscription.capacity();
80
+ if (opts.json) {
81
+ process.stdout.write(JSON.stringify(capacity, null, 2) + "\n");
82
+ }
83
+ else {
84
+ describeCapacity(capacity);
85
+ }
86
+ process.exit(EXIT.ok);
87
+ }
88
+ catch (err) {
89
+ printError(err.message, { json: opts.json });
90
+ process.exit(EXIT.runtimeError);
91
+ }
92
+ });
93
+ }
94
+ function emitApprovalUrl(url, json) {
95
+ if (json)
96
+ return;
97
+ process.stdout.write("\nOpen this URL in any browser to approve the payment:\n");
98
+ process.stdout.write(`\n ${url}\n\n`);
99
+ process.stdout.write("(If you're on a headless server: copy + paste it into a browser on another machine.)\n\n");
100
+ }
101
+ function makeStart() {
102
+ return new Command("start")
103
+ .description("Start (or add this host to) a hosting subscription via PayPal")
104
+ .option("--host <hostId>", "host id to subscribe (default: linked host)")
105
+ .option("--no-wait", "print the PayPal URL and exit (do not poll)")
106
+ .option("--config-dir <path>", "override config directory")
107
+ .option("--json", "machine-readable JSON output")
108
+ .action(async (opts) => {
109
+ const services = buildClientServices({ configDir: opts.configDir });
110
+ await ensureLogin(services, opts.json);
111
+ const cfg = await services.config.load();
112
+ const hostId = opts.host ?? cfg.hostId;
113
+ if (!hostId) {
114
+ printError("no host id available", {
115
+ json: opts.json,
116
+ hint: "Register a host first: peerllm-host host create",
117
+ });
118
+ process.exit(EXIT.userError);
119
+ }
120
+ let capacity;
121
+ try {
122
+ capacity = await services.subscription.capacity();
123
+ }
124
+ catch (err) {
125
+ printError(err.message, { json: opts.json });
126
+ process.exit(EXIT.runtimeError);
127
+ }
128
+ if (capacity.subscribedHosts.some((h) => h.hostId === hostId)) {
129
+ if (opts.json) {
130
+ process.stdout.write(JSON.stringify({ subscribed: true, alreadyActive: true }) + "\n");
131
+ }
132
+ else {
133
+ process.stdout.write(` host ${hostId} is already subscribed\n`);
134
+ }
135
+ process.exit(EXIT.ok);
136
+ }
137
+ let result;
138
+ try {
139
+ result = capacity.hasActiveSubscription
140
+ ? await services.subscription.addHost(hostId)
141
+ : await services.subscription.create([hostId]);
142
+ }
143
+ catch (err) {
144
+ printError(err.message, { json: opts.json });
145
+ process.exit(EXIT.runtimeError);
146
+ }
147
+ const approvalUrl = result.approvalUrl;
148
+ const wait = opts.wait !== false;
149
+ if (!approvalUrl) {
150
+ // No PayPal step required (rare — usually means the host slipped into
151
+ // the subscription via an existing payment method).
152
+ if (opts.json) {
153
+ process.stdout.write(JSON.stringify({ subscribed: true, approvalRequired: false }) + "\n");
154
+ }
155
+ else {
156
+ process.stdout.write(` ✓ host added to subscription (no approval required)\n`);
157
+ }
158
+ process.exit(EXIT.ok);
159
+ }
160
+ if (opts.json) {
161
+ process.stdout.write(JSON.stringify({
162
+ subscriptionId: result.subscriptionId ?? result.id,
163
+ approvalUrl,
164
+ wait,
165
+ }) + "\n");
166
+ }
167
+ else {
168
+ emitApprovalUrl(approvalUrl, false);
169
+ }
170
+ if (!wait) {
171
+ process.exit(EXIT.ok);
172
+ }
173
+ const confirmed = await pollForHostSubscribed(services, hostId, {
174
+ json: opts.json,
175
+ });
176
+ if (!confirmed) {
177
+ printError("timed out waiting for PayPal approval", {
178
+ json: opts.json,
179
+ hint: "Check status later: peerllm-host subscription status",
180
+ });
181
+ process.exit(EXIT.runtimeError);
182
+ }
183
+ if (opts.json) {
184
+ process.stdout.write(JSON.stringify({ subscribed: true, hostId }) + "\n");
185
+ }
186
+ process.exit(EXIT.ok);
187
+ });
188
+ }
189
+ function makeAddHost() {
190
+ return new Command("add-host")
191
+ .description("Add a host to your existing subscription")
192
+ .argument("[hostId]", "host id to add (default: linked host)")
193
+ .option("--no-wait", "print the PayPal URL (if returned) and exit")
194
+ .option("--config-dir <path>", "override config directory")
195
+ .option("--json", "machine-readable JSON output")
196
+ .action(async (hostIdArg, opts) => {
197
+ const services = buildClientServices({ configDir: opts.configDir });
198
+ await ensureLogin(services, opts.json);
199
+ const cfg = await services.config.load();
200
+ const hostId = hostIdArg ?? cfg.hostId;
201
+ if (!hostId) {
202
+ printError("no host id available", { json: opts.json });
203
+ process.exit(EXIT.userError);
204
+ }
205
+ try {
206
+ const result = await services.subscription.addHost(hostId);
207
+ if (result.approvalUrl) {
208
+ if (opts.json) {
209
+ process.stdout.write(JSON.stringify({ approvalUrl: result.approvalUrl }) + "\n");
210
+ }
211
+ else {
212
+ emitApprovalUrl(result.approvalUrl, false);
213
+ }
214
+ if (opts.wait !== false) {
215
+ const confirmed = await pollForHostSubscribed(services, hostId, {
216
+ json: opts.json,
217
+ });
218
+ if (!confirmed) {
219
+ printError("timed out waiting for PayPal approval", { json: opts.json });
220
+ process.exit(EXIT.runtimeError);
221
+ }
222
+ }
223
+ }
224
+ else if (opts.json) {
225
+ process.stdout.write(JSON.stringify({ added: true }) + "\n");
226
+ }
227
+ else {
228
+ process.stdout.write(` ✓ host ${hostId} added\n`);
229
+ }
230
+ process.exit(EXIT.ok);
231
+ }
232
+ catch (err) {
233
+ printError(err.message, { json: opts.json });
234
+ process.exit(EXIT.runtimeError);
235
+ }
236
+ });
237
+ }
238
+ function makeRemoveHost() {
239
+ return new Command("remove-host")
240
+ .description("Remove a host from your subscription")
241
+ .argument("<hostId>", "host id to remove")
242
+ .option("--yes", "skip the confirmation prompt")
243
+ .option("--config-dir <path>", "override config directory")
244
+ .option("--json", "machine-readable JSON output")
245
+ .action(async (hostId, opts) => {
246
+ const services = buildClientServices({ configDir: opts.configDir });
247
+ await ensureLogin(services, opts.json);
248
+ if (!opts.yes) {
249
+ const confirmed = await promptYesNo(`Remove host ${hostId} from subscription? (billing for this host stops)`, false);
250
+ if (!confirmed) {
251
+ printError("aborted", { json: opts.json });
252
+ process.exit(EXIT.userError);
253
+ }
254
+ }
255
+ try {
256
+ await services.subscription.removeHost(hostId);
257
+ if (opts.json) {
258
+ process.stdout.write(JSON.stringify({ removed: true, hostId }) + "\n");
259
+ }
260
+ else {
261
+ process.stdout.write(` ✓ removed ${hostId}\n`);
262
+ }
263
+ process.exit(EXIT.ok);
264
+ }
265
+ catch (err) {
266
+ printError(err.message, { json: opts.json });
267
+ process.exit(EXIT.runtimeError);
268
+ }
269
+ });
270
+ }
271
+ function makeHosts() {
272
+ return new Command("hosts")
273
+ .description("List hosts in the subscription")
274
+ .option("--config-dir <path>", "override config directory")
275
+ .option("--json", "machine-readable JSON output")
276
+ .action(async (opts) => {
277
+ const services = buildClientServices({ configDir: opts.configDir });
278
+ await ensureLogin(services, opts.json);
279
+ try {
280
+ const hosts = await services.subscription.listHosts();
281
+ if (opts.json) {
282
+ process.stdout.write(JSON.stringify(hosts, null, 2) + "\n");
283
+ }
284
+ else if (hosts.length === 0) {
285
+ process.stdout.write("no hosts in subscription\n");
286
+ }
287
+ else {
288
+ for (const h of hosts) {
289
+ process.stdout.write(` ${h.hostId}${h.status ? ` (${h.status})` : ""}\n`);
290
+ }
291
+ }
292
+ process.exit(EXIT.ok);
293
+ }
294
+ catch (err) {
295
+ printError(err.message, { json: opts.json });
296
+ process.exit(EXIT.runtimeError);
297
+ }
298
+ });
299
+ }
300
+ function makeCancel() {
301
+ return new Command("cancel")
302
+ .description("Cancel the entire subscription (stops billing for all hosts)")
303
+ .option("--yes", "skip the confirmation prompt")
304
+ .option("--config-dir <path>", "override config directory")
305
+ .option("--json", "machine-readable JSON output")
306
+ .action(async (opts) => {
307
+ const services = buildClientServices({ configDir: opts.configDir });
308
+ await ensureLogin(services, opts.json);
309
+ if (!opts.yes) {
310
+ const confirmed = await promptYesNo("Cancel your hosting subscription? All hosts will stop billing.", false);
311
+ if (!confirmed) {
312
+ printError("aborted", { json: opts.json });
313
+ process.exit(EXIT.userError);
314
+ }
315
+ }
316
+ try {
317
+ await services.subscription.cancel();
318
+ if (opts.json) {
319
+ process.stdout.write(JSON.stringify({ cancelled: true }) + "\n");
320
+ }
321
+ else {
322
+ process.stdout.write(" ✓ subscription cancelled\n");
323
+ }
324
+ process.exit(EXIT.ok);
325
+ }
326
+ catch (err) {
327
+ printError(err.message, { json: opts.json });
328
+ process.exit(EXIT.runtimeError);
329
+ }
330
+ });
331
+ }
332
+ export function makeSubscriptionCommand() {
333
+ return new Command("subscription")
334
+ .description("Manage your PeerLLM hosting subscription (PayPal billing)")
335
+ .addCommand(makeStatus())
336
+ .addCommand(makeStart())
337
+ .addCommand(makeAddHost())
338
+ .addCommand(makeRemoveHost())
339
+ .addCommand(makeHosts())
340
+ .addCommand(makeCancel());
341
+ }
342
+ //# sourceMappingURL=subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../src/cli/commands/subscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const EXIT: {
2
+ readonly ok: 0;
3
+ readonly runtimeError: 1;
4
+ readonly userError: 2;
5
+ readonly daemonNotRunning: 3;
6
+ readonly notAuthenticated: 4;
7
+ readonly notAuthorized: 5;
8
+ readonly alreadyRunning: 6;
9
+ readonly conflict: 7;
10
+ };
11
+ export type ExitCode = (typeof EXIT)[keyof typeof EXIT];
12
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/cli/exit-codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI;;;;;;;;;CASP,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const EXIT = {
2
+ ok: 0,
3
+ runtimeError: 1,
4
+ userError: 2,
5
+ daemonNotRunning: 3,
6
+ notAuthenticated: 4,
7
+ notAuthorized: 5,
8
+ alreadyRunning: 6,
9
+ conflict: 7,
10
+ };
11
+ //# sourceMappingURL=exit-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/cli/exit-codes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,CAAC;IACL,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC;CACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface PrintErrorOptions {
2
+ hint?: string;
3
+ json?: boolean;
4
+ code?: string;
5
+ }
6
+ export declare function printError(message: string, opts?: PrintErrorOptions): void;
7
+ export declare function humanizeUptime(seconds: number): string;
8
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/cli/format.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,IAAI,CAa9E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtD"}
@@ -0,0 +1,22 @@
1
+ export function printError(message, opts = {}) {
2
+ if (opts.json) {
3
+ process.stderr.write(JSON.stringify({
4
+ error: { code: opts.code ?? "error", message, hint: opts.hint },
5
+ }) + "\n");
6
+ return;
7
+ }
8
+ process.stderr.write(`✗ ${message}\n`);
9
+ if (opts.hint) {
10
+ process.stderr.write(`\n ${opts.hint}\n`);
11
+ }
12
+ }
13
+ export function humanizeUptime(seconds) {
14
+ if (seconds < 60)
15
+ return `${seconds}s`;
16
+ const minutes = Math.floor(seconds / 60);
17
+ if (minutes < 60)
18
+ return `${minutes}m ${seconds % 60}s`;
19
+ const hours = Math.floor(minutes / 60);
20
+ return `${hours}h ${minutes % 60}m`;
21
+ }
22
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/cli/format.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,OAA0B,EAAE;IACtE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;SAChE,CAAC,GAAG,IAAI,CACV,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;AACtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ const cliVersion = "0.1.0";
4
+ async function main() {
5
+ const program = new Command();
6
+ program
7
+ .name("peerllm-host")
8
+ .description("PeerLLM host CLI — serve decentralized AI compute from this machine")
9
+ .version(cliVersion, "-v, --version");
10
+ program.addCommand(await (async () => {
11
+ const { makeStartCommand } = await import("./commands/start.js");
12
+ return makeStartCommand(cliVersion);
13
+ })());
14
+ program.addCommand(await (async () => {
15
+ const { makeStopCommand } = await import("./commands/stop.js");
16
+ return makeStopCommand();
17
+ })());
18
+ program.addCommand(await (async () => {
19
+ const { makeStatusCommand } = await import("./commands/status.js");
20
+ return makeStatusCommand();
21
+ })());
22
+ program.addCommand(await (async () => {
23
+ const { makeLoginCommand } = await import("./commands/login.js");
24
+ return makeLoginCommand();
25
+ })());
26
+ program.addCommand(await (async () => {
27
+ const { makeLogoutCommand } = await import("./commands/logout.js");
28
+ return makeLogoutCommand();
29
+ })());
30
+ program.addCommand(await (async () => {
31
+ const { makeRegisterCommand } = await import("./commands/register.js");
32
+ return makeRegisterCommand();
33
+ })());
34
+ program.addCommand(await (async () => {
35
+ const { makeAgreementCommand } = await import("./commands/agreement.js");
36
+ return makeAgreementCommand();
37
+ })());
38
+ program.addCommand(await (async () => {
39
+ const { makeHostCommand } = await import("./commands/host.js");
40
+ return makeHostCommand();
41
+ })());
42
+ program.addCommand(await (async () => {
43
+ const { makeRestartCommand } = await import("./commands/restart.js");
44
+ return makeRestartCommand(cliVersion);
45
+ })());
46
+ program.addCommand(await (async () => {
47
+ const { makeSetupCommand } = await import("./commands/setup.js");
48
+ return makeSetupCommand();
49
+ })());
50
+ program.addCommand(await (async () => {
51
+ const { makeConfigCommand } = await import("./commands/config.js");
52
+ return makeConfigCommand();
53
+ })());
54
+ program.addCommand(await (async () => {
55
+ const { makeLogsCommand } = await import("./commands/logs.js");
56
+ return makeLogsCommand();
57
+ })());
58
+ program.addCommand(await (async () => {
59
+ const { makeModelsCommand } = await import("./commands/models.js");
60
+ return makeModelsCommand();
61
+ })());
62
+ program.addCommand(await (async () => {
63
+ const { makeDoctorCommand } = await import("./commands/doctor.js");
64
+ return makeDoctorCommand();
65
+ })());
66
+ program.addCommand(await (async () => {
67
+ const { makeEventsCommand } = await import("./commands/events.js");
68
+ return makeEventsCommand();
69
+ })());
70
+ program.addCommand(await (async () => {
71
+ const { makeDiagnosticsCommand } = await import("./commands/diagnostics.js");
72
+ return makeDiagnosticsCommand();
73
+ })());
74
+ program.addCommand(await (async () => {
75
+ const { makeServiceCommand } = await import("./commands/service.js");
76
+ return makeServiceCommand();
77
+ })());
78
+ program.addCommand(await (async () => {
79
+ const { makeSubscriptionCommand } = await import("./commands/subscription.js");
80
+ return makeSubscriptionCommand();
81
+ })());
82
+ await program.parseAsync(process.argv);
83
+ }
84
+ void main().catch((err) => {
85
+ process.stderr.write(`peerllm-host: ${err.message}\n`);
86
+ process.exit(1);
87
+ });
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class DaemonUnreachableError extends Error {
2
+ constructor(endpoint: string, cause: unknown);
3
+ }
4
+ export type NotificationHandler = (method: string, params: unknown) => void;
5
+ export declare class IpcClient {
6
+ private readonly endpoint;
7
+ private socket;
8
+ private nextId;
9
+ private readonly pending;
10
+ private readonly framer;
11
+ private notificationHandler;
12
+ constructor(endpoint: string);
13
+ onNotification(handler: NotificationHandler): void;
14
+ connect(timeoutMs?: number): Promise<void>;
15
+ call<T>(method: string, params?: unknown): Promise<T>;
16
+ close(): void;
17
+ private onData;
18
+ private onClose;
19
+ }
20
+ //# sourceMappingURL=ipc-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-client.d.ts","sourceRoot":"","sources":["../../src/cli/ipc-client.ts"],"names":[],"mappings":"AAIA,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAG7C;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAE5E,qBAAa,SAAS;IAUR,OAAO,CAAC,QAAQ,CAAC,QAAQ;IATrC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGpB;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,mBAAmB,CAAkC;gBAEhC,QAAQ,EAAE,MAAM;IAE7C,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI5C,OAAO,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAe3D,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,MAAM;IAqCd,OAAO,CAAC,OAAO;CAMhB"}