pinokiod 3.81.0 → 3.84.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.
- package/kernel/bin/caddy.js +13 -3
- package/kernel/bin/huggingface.js +1 -1
- package/kernel/index.js +4 -0
- package/kernel/kv.js +0 -2
- package/kernel/peer.js +9 -6
- package/kernel/router/index.js +1 -1
- package/kernel/router/peer_static_router.js +0 -1
- package/kernel/shell.js +8 -1
- package/kernel/util.js +0 -7
- package/package.json +1 -1
- package/server/index.js +10 -10
package/kernel/bin/caddy.js
CHANGED
|
@@ -28,9 +28,19 @@ class Caddy {
|
|
|
28
28
|
console.log("Caddy running?", running)
|
|
29
29
|
// if (this.kernel.processes.caddy_pid) {
|
|
30
30
|
if (running) {
|
|
31
|
-
console.log("kill existing caddy")
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
console.log("kill existing caddy before restarting")
|
|
32
|
+
await new Promise((resolve, reject) => {
|
|
33
|
+
let interval = setInterval(() => {
|
|
34
|
+
if (this.kernel.processes.caddy_pid) {
|
|
35
|
+
console.log("kill caddy", this.kernel.processes.caddy_pid)
|
|
36
|
+
kill(this.kernel.processes.caddy_pid, "SIGKILL", true)
|
|
37
|
+
console.log("killed existing caddy")
|
|
38
|
+
resolve()
|
|
39
|
+
} else {
|
|
40
|
+
console.log("try killing existing caddy again in 1 sec")
|
|
41
|
+
}
|
|
42
|
+
}, 1000)
|
|
43
|
+
})
|
|
34
44
|
}
|
|
35
45
|
// let running = await this.running()
|
|
36
46
|
// console.log("Running", running)
|
package/kernel/index.js
CHANGED
package/kernel/kv.js
CHANGED
|
@@ -22,12 +22,10 @@ class KV {
|
|
|
22
22
|
async get(host, index) {
|
|
23
23
|
if (this.kernel.homedir) {
|
|
24
24
|
let filePath = this.kernel.path("key.json")
|
|
25
|
-
console.log({ host, index, filePath })
|
|
26
25
|
let json = await this.kernel.load(filePath)
|
|
27
26
|
if (!json) {
|
|
28
27
|
return null
|
|
29
28
|
}
|
|
30
|
-
console.log({ json })
|
|
31
29
|
if (json[host]) {
|
|
32
30
|
return json[host][index]
|
|
33
31
|
}
|
package/kernel/peer.js
CHANGED
|
@@ -23,10 +23,14 @@ class PeerDiscovery {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
async check_peers () {
|
|
26
|
-
|
|
26
|
+
console.log(">>>>>>>>>>>> check peers")
|
|
27
|
+
let peer_array = Array.from(this.peers)
|
|
28
|
+
for(let host of peer_array) {
|
|
27
29
|
if (this.host !== host) {
|
|
28
30
|
let result = await this._refresh(host)
|
|
31
|
+
console.log("check peeers", { host, result })
|
|
29
32
|
if (!result) {
|
|
33
|
+
console.log("delete host", host)
|
|
30
34
|
this.peers.delete(host)
|
|
31
35
|
delete this.info[host]
|
|
32
36
|
}
|
|
@@ -136,7 +140,6 @@ class PeerDiscovery {
|
|
|
136
140
|
return res.data
|
|
137
141
|
}
|
|
138
142
|
} catch (e) {
|
|
139
|
-
console.log("_refresh error", { host , e })
|
|
140
143
|
return null
|
|
141
144
|
}
|
|
142
145
|
}
|
|
@@ -144,16 +147,15 @@ class PeerDiscovery {
|
|
|
144
147
|
// notify all peers of the current host info
|
|
145
148
|
if (this.info) {
|
|
146
149
|
let info = this.info[this.host]
|
|
147
|
-
|
|
150
|
+
let peer_array = Array.from(this.peers)
|
|
151
|
+
for(let host of peer_array) {
|
|
148
152
|
if (this.host !== host) {
|
|
149
153
|
try {
|
|
150
154
|
let endpoint = `http://${host}:${this.default_port}/pinokio/peer/refresh`
|
|
151
155
|
let res = await axios.post(endpoint, info, {
|
|
152
156
|
timeout: 2000
|
|
153
157
|
})
|
|
154
|
-
return res.data
|
|
155
158
|
} catch (e) {
|
|
156
|
-
return null
|
|
157
159
|
}
|
|
158
160
|
}
|
|
159
161
|
}
|
|
@@ -172,7 +174,8 @@ class PeerDiscovery {
|
|
|
172
174
|
// notify peers to refresh my info
|
|
173
175
|
async notify_peers() {
|
|
174
176
|
if (this.active) {
|
|
175
|
-
let
|
|
177
|
+
let peer_array = Array.from(this.peers)
|
|
178
|
+
let res = await Promise.all(peer_array.map((host) => {
|
|
176
179
|
return this._broadcast(host)
|
|
177
180
|
}))
|
|
178
181
|
return res
|
package/kernel/router/index.js
CHANGED
|
@@ -30,7 +30,6 @@ class PeerStaticRouter extends Processor {
|
|
|
30
30
|
rewrite: /asset/api/test
|
|
31
31
|
match: test.x.localhost
|
|
32
32
|
*/
|
|
33
|
-
console.log("PEER STATIC ROUTER", rewrite_mapping)
|
|
34
33
|
let url = new URL("http://" + rewrite_mapping.external_ip)
|
|
35
34
|
let dial = url.host
|
|
36
35
|
let rewrite = url.pathname
|
package/kernel/shell.js
CHANGED
|
@@ -1259,7 +1259,14 @@ ${cleaned}
|
|
|
1259
1259
|
return
|
|
1260
1260
|
}
|
|
1261
1261
|
this.vt.write(msg, () => {
|
|
1262
|
-
let buf
|
|
1262
|
+
let buf
|
|
1263
|
+
try {
|
|
1264
|
+
buf = this.vts.serialize()
|
|
1265
|
+
} catch (e) {
|
|
1266
|
+
console.log("vts serialize error", e)
|
|
1267
|
+
callback()
|
|
1268
|
+
return
|
|
1269
|
+
}
|
|
1263
1270
|
let cleaned = this.stripAnsi(buf)
|
|
1264
1271
|
let response = {
|
|
1265
1272
|
id: this.id,
|
package/kernel/util.js
CHANGED
|
@@ -838,19 +838,14 @@ const rewrite_localhost= (kernel, obj, source) => {
|
|
|
838
838
|
console.log({ port, hostname, host })
|
|
839
839
|
if (protocol === "https") {
|
|
840
840
|
let proxyDomain
|
|
841
|
-
console.log("current_host", kernel.peer.host)
|
|
842
|
-
console.log("router_info", kernel.peer.info[kernel.peer.host].router_info)
|
|
843
841
|
for(let item of kernel.peer.info[kernel.peer.host].router_info) {
|
|
844
|
-
console.log({ internal_port: item.internal_port, port })
|
|
845
842
|
if (String(item.internal_port) === String(port)) {
|
|
846
843
|
if (item.external_router && item.external_router.length > 0) {
|
|
847
|
-
console.log("Found", { item, port })
|
|
848
844
|
proxyDomain = item.external_router[0]
|
|
849
845
|
}
|
|
850
846
|
break;
|
|
851
847
|
}
|
|
852
848
|
}
|
|
853
|
-
console.log({ proxyDomain })
|
|
854
849
|
if (proxyDomain) {
|
|
855
850
|
u.host = proxyDomain
|
|
856
851
|
u.port = ""
|
|
@@ -860,9 +855,7 @@ const rewrite_localhost= (kernel, obj, source) => {
|
|
|
860
855
|
let proxyPort = kernel.peer.info[kernel.peer.host].port_mapping["" + port]
|
|
861
856
|
u.hostname = sourceIp;
|
|
862
857
|
u.port = proxyPort;
|
|
863
|
-
console.log({ url, port, proxyPort, sourceIp, proxyPort })
|
|
864
858
|
}
|
|
865
|
-
console.log("Fixed", u.toString())
|
|
866
859
|
return u.toString();
|
|
867
860
|
}
|
|
868
861
|
} catch (e) {
|
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -2282,8 +2282,6 @@ class Server {
|
|
|
2282
2282
|
processes
|
|
2283
2283
|
})
|
|
2284
2284
|
} catch (e) {
|
|
2285
|
-
console.log(">>e", e)
|
|
2286
|
-
console.log({ host, info: this.kernel.peer.info })
|
|
2287
2285
|
}
|
|
2288
2286
|
}
|
|
2289
2287
|
// console.log("Loaded yet?", nodes.length, Object.keys(peers_info).length, nodes.length === Object.keys(peers_info).length)
|
|
@@ -2798,6 +2796,11 @@ class Server {
|
|
|
2798
2796
|
} else {
|
|
2799
2797
|
// For every update, this gets triggered exactly once.
|
|
2800
2798
|
// 1. first mkdir if it doesn't exist (this step is irrelevant since at this point the home dir will exist)
|
|
2799
|
+
|
|
2800
|
+
let exists = await this.kernel.exists(home)
|
|
2801
|
+
if (!exists) {
|
|
2802
|
+
await fs.promises.mkdir(home, { recursive: true })
|
|
2803
|
+
}
|
|
2801
2804
|
|
|
2802
2805
|
needInitHome = true
|
|
2803
2806
|
console.log("not up to date. update py.")
|
|
@@ -4201,8 +4204,6 @@ class Server {
|
|
|
4201
4204
|
}
|
|
4202
4205
|
} catch (e) {
|
|
4203
4206
|
}
|
|
4204
|
-
console.log("PEER INFO", JSON.stringify(this.kernel.peer.info[host], null, 2))
|
|
4205
|
-
|
|
4206
4207
|
let installed = this.kernel.peer.info[host].installed
|
|
4207
4208
|
let serverless_mapping = this.kernel.peer.info[host].rewrite_mapping
|
|
4208
4209
|
let serverless = Object.keys(serverless_mapping).map((name) => {
|
|
@@ -6252,22 +6253,21 @@ class Server {
|
|
|
6252
6253
|
this.app.get("/check_peer", ex((req, res) => {
|
|
6253
6254
|
if (this.kernel.peer.active) {
|
|
6254
6255
|
// if network is active, return success only if the router is up for all of its peers (including itself)
|
|
6255
|
-
console.log({ peer_info: this.kernel.peer.info })
|
|
6256
6256
|
let ready = true
|
|
6257
|
-
if (this.kernel.peer.info
|
|
6258
|
-
|
|
6259
|
-
|
|
6257
|
+
if (this.kernel.peer.info) {
|
|
6258
|
+
let info = this.kernel.peer.info[this.kernel.peer.host]
|
|
6259
|
+
if (info) {
|
|
6260
6260
|
if (info.router && Object.keys(info.router).length > 0) {
|
|
6261
6261
|
ready = true
|
|
6262
6262
|
} else {
|
|
6263
6263
|
ready = false
|
|
6264
|
-
break;
|
|
6265
6264
|
}
|
|
6265
|
+
} else {
|
|
6266
|
+
ready = false
|
|
6266
6267
|
}
|
|
6267
6268
|
} else {
|
|
6268
6269
|
ready = false;
|
|
6269
6270
|
}
|
|
6270
|
-
console.log({ info: this.kernel.peer.info, ready })
|
|
6271
6271
|
if (ready) {
|
|
6272
6272
|
res.json({ success: true })
|
|
6273
6273
|
} else {
|