@psychout98/tadaima 1.0.2 → 1.0.3

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 (70) hide show
  1. package/dist/chunk-6O3GWKMO.js +16979 -0
  2. package/dist/chunk-7TPZ4T2V.js +37 -0
  3. package/dist/chunk-KDW3UEKL.js +105 -0
  4. package/dist/config-YQZEYLLR.js +7 -0
  5. package/dist/daemon-YZQZNLEX.js +14 -0
  6. package/dist/download-handler-H34V5RNF.js +438 -0
  7. package/dist/index.js +253 -257
  8. package/dist/logger-XTDECBFK.js +85 -0
  9. package/dist/service-GBG6YHQW.js +199 -0
  10. package/dist/setup-OLV7C7ON.js +100 -0
  11. package/dist/status-writer-RGH2PULB.js +31 -0
  12. package/dist/tui-ZE4672PT.js +77 -0
  13. package/dist/updater-HXBNBU36.js +163 -0
  14. package/dist/ws-client-TPWC6VZR.js +161 -0
  15. package/package.json +6 -5
  16. package/dist/config.d.ts +0 -23
  17. package/dist/config.d.ts.map +0 -1
  18. package/dist/config.js +0 -25
  19. package/dist/config.js.map +0 -1
  20. package/dist/daemon.d.ts +0 -8
  21. package/dist/daemon.d.ts.map +0 -1
  22. package/dist/daemon.js +0 -91
  23. package/dist/daemon.js.map +0 -1
  24. package/dist/download-handler.d.ts +0 -15
  25. package/dist/download-handler.d.ts.map +0 -1
  26. package/dist/download-handler.js +0 -203
  27. package/dist/download-handler.js.map +0 -1
  28. package/dist/downloader.d.ts +0 -11
  29. package/dist/downloader.d.ts.map +0 -1
  30. package/dist/downloader.js +0 -65
  31. package/dist/downloader.js.map +0 -1
  32. package/dist/index.d.ts +0 -2
  33. package/dist/index.d.ts.map +0 -1
  34. package/dist/index.js.map +0 -1
  35. package/dist/logger.d.ts +0 -2
  36. package/dist/logger.d.ts.map +0 -1
  37. package/dist/logger.js +0 -74
  38. package/dist/logger.js.map +0 -1
  39. package/dist/organizer.d.ts +0 -12
  40. package/dist/organizer.d.ts.map +0 -1
  41. package/dist/organizer.js +0 -42
  42. package/dist/organizer.js.map +0 -1
  43. package/dist/rd-client.d.ts +0 -25
  44. package/dist/rd-client.d.ts.map +0 -1
  45. package/dist/rd-client.js +0 -129
  46. package/dist/rd-client.js.map +0 -1
  47. package/dist/service.d.ts +0 -3
  48. package/dist/service.d.ts.map +0 -1
  49. package/dist/service.js +0 -187
  50. package/dist/service.js.map +0 -1
  51. package/dist/setup.d.ts +0 -2
  52. package/dist/setup.d.ts.map +0 -1
  53. package/dist/setup.js +0 -92
  54. package/dist/setup.js.map +0 -1
  55. package/dist/status-writer.d.ts +0 -20
  56. package/dist/status-writer.d.ts.map +0 -1
  57. package/dist/status-writer.js +0 -34
  58. package/dist/status-writer.js.map +0 -1
  59. package/dist/tui.d.ts +0 -14
  60. package/dist/tui.d.ts.map +0 -1
  61. package/dist/tui.js +0 -73
  62. package/dist/tui.js.map +0 -1
  63. package/dist/updater.d.ts +0 -27
  64. package/dist/updater.d.ts.map +0 -1
  65. package/dist/updater.js +0 -191
  66. package/dist/updater.js.map +0 -1
  67. package/dist/ws-client.d.ts +0 -26
  68. package/dist/ws-client.d.ts.map +0 -1
  69. package/dist/ws-client.js +0 -155
  70. package/dist/ws-client.js.map +0 -1
package/dist/ws-client.js DELETED
@@ -1,155 +0,0 @@
1
- import WebSocket from "ws";
2
- import { platform, freemem } from "node:os";
3
- import { createMessageId, createTimestamp } from "@tadaima/shared";
4
- import { config } from "./config.js";
5
- const HEARTBEAT_INTERVAL = 30_000;
6
- const MAX_BACKOFF = 30_000;
7
- export class AgentWebSocket {
8
- ws = null;
9
- backoff = 1000;
10
- heartbeatTimer = null;
11
- reconnectTimer = null;
12
- messageQueue = [];
13
- onMessage = null;
14
- stopped = false;
15
- startTime = Date.now();
16
- activeJobs = 0;
17
- connect() {
18
- this.stopped = false;
19
- const relayUrl = config.get("relay");
20
- const deviceToken = config.get("deviceToken");
21
- if (!relayUrl || !deviceToken) {
22
- console.error("Not configured. Run `tadaima-agent setup` first.");
23
- return;
24
- }
25
- const wsUrl = relayUrl
26
- .replace(/^http/, "ws")
27
- .replace(/\/$/, "");
28
- const url = `${wsUrl}/ws/agent?token=${deviceToken}`;
29
- this.ws = new WebSocket(url);
30
- this.ws.on("open", () => {
31
- console.log("Connected to relay");
32
- this.backoff = 1000;
33
- this.sendHello();
34
- this.startHeartbeat();
35
- this.drainQueue();
36
- });
37
- this.ws.on("message", (data) => {
38
- try {
39
- const msg = JSON.parse(data.toString());
40
- if (this.onMessage) {
41
- this.onMessage(msg);
42
- }
43
- }
44
- catch (err) {
45
- const raw = data.toString().slice(0, 200);
46
- console.error("Failed to parse WebSocket message:", err, "raw:", raw);
47
- }
48
- });
49
- this.ws.on("close", () => {
50
- console.log("Disconnected from relay");
51
- this.cleanup();
52
- this.scheduleReconnect();
53
- });
54
- this.ws.on("error", (err) => {
55
- console.error("WebSocket error:", err.message);
56
- this.cleanup();
57
- this.scheduleReconnect();
58
- });
59
- }
60
- stop() {
61
- this.stopped = true;
62
- this.cleanup();
63
- if (this.ws) {
64
- this.ws.close(1000, "Agent stopped");
65
- this.ws = null;
66
- }
67
- }
68
- setMessageHandler(handler) {
69
- this.onMessage = handler;
70
- }
71
- send(message) {
72
- const data = JSON.stringify(message);
73
- if (this.ws && this.ws.readyState === WebSocket.OPEN) {
74
- try {
75
- this.ws.send(data);
76
- }
77
- catch (err) {
78
- console.error("Send failed, re-queuing message:", err);
79
- this.messageQueue.push(data);
80
- this.cleanup();
81
- this.scheduleReconnect();
82
- }
83
- }
84
- else {
85
- this.messageQueue.push(data);
86
- }
87
- }
88
- setActiveJobs(count) {
89
- this.activeJobs = count;
90
- }
91
- sendHello() {
92
- this.send({
93
- id: createMessageId(),
94
- type: "agent:hello",
95
- timestamp: createTimestamp(),
96
- payload: {
97
- version: "0.0.0",
98
- platform: platform(),
99
- activeJobs: this.activeJobs,
100
- diskFreeBytes: freemem(),
101
- },
102
- });
103
- }
104
- sendHeartbeat() {
105
- this.send({
106
- id: createMessageId(),
107
- type: "agent:heartbeat",
108
- timestamp: createTimestamp(),
109
- payload: {
110
- activeJobs: this.activeJobs,
111
- diskFreeBytes: freemem(),
112
- uptimeSeconds: Math.floor((Date.now() - this.startTime) / 1000),
113
- },
114
- });
115
- }
116
- startHeartbeat() {
117
- this.stopHeartbeat();
118
- this.heartbeatTimer = setInterval(() => this.sendHeartbeat(), HEARTBEAT_INTERVAL);
119
- }
120
- stopHeartbeat() {
121
- if (this.heartbeatTimer) {
122
- clearInterval(this.heartbeatTimer);
123
- this.heartbeatTimer = null;
124
- }
125
- }
126
- drainQueue() {
127
- while (this.messageQueue.length > 0 && this.ws?.readyState === WebSocket.OPEN) {
128
- try {
129
- this.ws.send(this.messageQueue[0]);
130
- this.messageQueue.shift();
131
- }
132
- catch (err) {
133
- console.error("Drain failed, will retry on reconnect:", err);
134
- this.cleanup();
135
- this.scheduleReconnect();
136
- return;
137
- }
138
- }
139
- }
140
- cleanup() {
141
- this.stopHeartbeat();
142
- if (this.reconnectTimer) {
143
- clearTimeout(this.reconnectTimer);
144
- this.reconnectTimer = null;
145
- }
146
- }
147
- scheduleReconnect() {
148
- if (this.stopped)
149
- return;
150
- this.backoff = Math.min(this.backoff * 2, MAX_BACKOFF);
151
- console.log(`Reconnecting in ${this.backoff / 1000}s...`);
152
- this.reconnectTimer = setTimeout(() => this.connect(), this.backoff);
153
- }
154
- }
155
- //# sourceMappingURL=ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}