pinokiod 3.41.0 → 3.43.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 (82) hide show
  1. package/kernel/api/browser/index.js +3 -1
  2. package/kernel/api/cloudflare/index.js +3 -3
  3. package/kernel/api/index.js +187 -51
  4. package/kernel/api/loading/index.js +15 -0
  5. package/kernel/api/process/index.js +7 -0
  6. package/kernel/api/shell/index.js +0 -2
  7. package/kernel/bin/browserless.js +22 -0
  8. package/kernel/bin/caddy.js +36 -4
  9. package/kernel/bin/index.js +4 -1
  10. package/kernel/bin/setup.js +38 -5
  11. package/kernel/connect/backend.js +110 -0
  12. package/kernel/connect/config.js +171 -0
  13. package/kernel/connect/index.js +18 -7
  14. package/kernel/connect/providers/huggingface/index.js +98 -0
  15. package/kernel/connect/providers/x/index.js +0 -1
  16. package/kernel/environment.js +91 -19
  17. package/kernel/git.js +46 -3
  18. package/kernel/index.js +119 -39
  19. package/kernel/peer.js +40 -5
  20. package/kernel/plugin.js +3 -2
  21. package/kernel/procs.js +27 -20
  22. package/kernel/prototype.js +30 -16
  23. package/kernel/router/common.js +1 -1
  24. package/kernel/router/connector.js +1 -3
  25. package/kernel/router/index.js +38 -4
  26. package/kernel/router/localhost_home_router.js +5 -1
  27. package/kernel/router/localhost_port_router.js +27 -1
  28. package/kernel/router/localhost_static_router.js +93 -0
  29. package/kernel/router/localhost_variable_router.js +14 -9
  30. package/kernel/router/peer_peer_router.js +3 -0
  31. package/kernel/router/peer_static_router.js +43 -0
  32. package/kernel/router/peer_variable_router.js +15 -14
  33. package/kernel/router/processor.js +26 -1
  34. package/kernel/router/rewriter.js +59 -0
  35. package/kernel/scripts/git/commit +11 -1
  36. package/kernel/shell.js +8 -3
  37. package/kernel/util.js +65 -6
  38. package/package.json +2 -1
  39. package/server/index.js +1037 -964
  40. package/server/public/common.js +382 -1
  41. package/server/public/fscreator.js +0 -1
  42. package/server/public/loading.js +17 -0
  43. package/server/public/notifyinput.js +0 -1
  44. package/server/public/opener.js +4 -2
  45. package/server/public/style.css +311 -11
  46. package/server/socket.js +7 -1
  47. package/server/views/app.ejs +1747 -351
  48. package/server/views/columns.ejs +338 -0
  49. package/server/views/connect/huggingface.ejs +353 -0
  50. package/server/views/connect/index.ejs +410 -0
  51. package/server/views/connect/x.ejs +43 -9
  52. package/server/views/connect.ejs +709 -49
  53. package/server/views/container.ejs +357 -0
  54. package/server/views/d.ejs +251 -62
  55. package/server/views/download.ejs +54 -10
  56. package/server/views/editor.ejs +11 -0
  57. package/server/views/explore.ejs +40 -15
  58. package/server/views/file_explorer.ejs +25 -246
  59. package/server/views/form.ejs +44 -1
  60. package/server/views/frame.ejs +39 -1
  61. package/server/views/github.ejs +48 -11
  62. package/server/views/help.ejs +48 -7
  63. package/server/views/index.ejs +119 -58
  64. package/server/views/index2.ejs +3 -4
  65. package/server/views/init/index.ejs +651 -197
  66. package/server/views/install.ejs +1 -1
  67. package/server/views/mini.ejs +47 -18
  68. package/server/views/net.ejs +199 -67
  69. package/server/views/network.ejs +220 -94
  70. package/server/views/network2.ejs +3 -4
  71. package/server/views/old_network.ejs +3 -3
  72. package/server/views/prototype/index.ejs +48 -11
  73. package/server/views/review.ejs +1005 -0
  74. package/server/views/rows.ejs +341 -0
  75. package/server/views/screenshots.ejs +1020 -0
  76. package/server/views/settings.ejs +160 -23
  77. package/server/views/setup.ejs +49 -7
  78. package/server/views/setup_home.ejs +43 -10
  79. package/server/views/shell.ejs +7 -1
  80. package/server/views/start.ejs +14 -9
  81. package/server/views/terminal.ejs +13 -2
  82. package/server/views/tools.ejs +1015 -0
package/kernel/util.js CHANGED
@@ -7,6 +7,8 @@ const os = require('os')
7
7
  const net = require('node:net')
8
8
  const path = require('path')
9
9
  const dotenv = require('dotenv')
10
+ const symlinkDir = require('symlink-dir')
11
+ const retry = require('async-retry');
10
12
  const child_process = require('node:child_process');
11
13
  const {auto: normalizeEOL} = require("eol");
12
14
  const {EOL} = require("os");
@@ -33,12 +35,20 @@ if( __dirname.includes(".asar") ) {
33
35
  }
34
36
  const { getFolderSize, getFolderSizeBin, getFolderSizeWasm, } = g
35
37
  const du = async (folderpath) => {
36
- // console.time("disk size calc")
37
38
  let totalSize = await getFolderSizeBin(folderpath)
38
- // console.timeEnd("disk size calc")
39
39
  return totalSize;
40
40
  }
41
41
 
42
+ const symlink = async(req, ondata, kernel) => {
43
+ /*
44
+ req := {
45
+ from: <the link path to create>,
46
+ to: <the path the link points to>
47
+ }
48
+ */
49
+ const result = await symlinkDir(req.to, req.from)
50
+
51
+ }
42
52
  const clipboard = async (req, ondata, kernel) => {
43
53
  /*
44
54
  req := {
@@ -106,6 +116,39 @@ const filepicker = async(req, ondata, kernel) => {
106
116
  return { paths: response }
107
117
  }
108
118
 
119
+ let file_type = async (cwd, file) => {
120
+ if (file.isDirectory()) {
121
+ return {
122
+ directory: true,
123
+ }
124
+ } else if (file.isFile()) {
125
+ return {
126
+ file: true
127
+ }
128
+ } else if (file.isSymbolicLink()) {
129
+ try {
130
+ const fullPath = path.join(cwd, file.name);
131
+ const targetStats = await fs.promises.stat(fullPath);
132
+ if (targetStats.isDirectory()) {
133
+ return {
134
+ directory: true,
135
+ link: true,
136
+ }
137
+ } else if (targetStats.isFile()) {
138
+ return {
139
+ file: true,
140
+ link: true,
141
+ }
142
+ }
143
+ } catch (err) {
144
+ console.error(`${file.name} → broken symlink (${err.message})`);
145
+ return {
146
+ link: true
147
+ }
148
+ }
149
+ }
150
+ }
151
+
109
152
  const is_port_available = async (port) => {
110
153
  return new Promise((resolve) => {
111
154
  const server = http.createServer();
@@ -364,6 +407,12 @@ const log_path = (fullpath, kernel) => {
364
407
  let current_log_path = path.resolve(log_root, "shell/cleaned/api", rel_path)
365
408
  return current_log_path
366
409
  }
410
+ const api_name = (fullpath, kernel) => {
411
+ let api_path = `${kernel.homedir}${path.sep}api`
412
+ let rel_path = path.relative(api_path, fullpath)
413
+ let api_name = rel_path.split(path.sep)[0]
414
+ return api_name
415
+ }
367
416
  const api_path = (fullpath, kernel) => {
368
417
  let api_path = `${kernel.homedir}${path.sep}api`
369
418
  let rel_path = path.relative(api_path, fullpath)
@@ -669,11 +718,11 @@ const mergeLines = async (existingFilepath, filepath2) => {
669
718
 
670
719
  let current = await fs.promises.readFile(existingFilepath, "utf8")
671
720
  if (current.trim() !== merged.trim()) {
672
- console.log("merged has changed")
721
+ //console.log("merged has changed")
673
722
  // changed
674
723
  await fs.promises.writeFile(existingFilepath, merged)
675
724
  } else {
676
- console.log(" no changes needed")
725
+ //console.log(" no changes needed")
677
726
  }
678
727
  } else {
679
728
  // does not exist, just copy
@@ -758,6 +807,8 @@ const rewrite_localhost= (kernel, obj, source) => {
758
807
  let protocol = source.protocol
759
808
  let sourceHost = source.host
760
809
 
810
+ console.log("rewrite_localhost", { protocol, sourceHost, })
811
+
761
812
  let sourceIp
762
813
  let sourcePort
763
814
  if (protocol === "http") {
@@ -769,6 +820,7 @@ const rewrite_localhost= (kernel, obj, source) => {
769
820
  // find the
770
821
 
771
822
  const fix = (url) => {
823
+ console.log("Fix url", url)
772
824
  /*
773
825
  url:
774
826
  http://localhost:8188
@@ -783,9 +835,13 @@ const rewrite_localhost= (kernel, obj, source) => {
783
835
  let port = u.port
784
836
  let hostname = u.hostname
785
837
  let host = u.host
838
+ console.log({ port, hostname, host })
786
839
  if (protocol === "https") {
787
840
  let proxyDomain
841
+ console.log("current_host", kernel.peer.host)
842
+ console.log("router_info", kernel.peer.info[kernel.peer.host].router_info)
788
843
  for(let item of kernel.peer.info[kernel.peer.host].router_info) {
844
+ console.log({ internal_port: item.internal_port, port })
789
845
  if (String(item.internal_port) === String(port)) {
790
846
  if (item.external_router && item.external_router.length > 0) {
791
847
  console.log("Found", { item, port })
@@ -809,7 +865,10 @@ const rewrite_localhost= (kernel, obj, source) => {
809
865
  console.log("Fixed", u.toString())
810
866
  return u.toString();
811
867
  }
812
- } catch { /* ignore invalid URLs */ }
868
+ } catch (e) {
869
+ console.log("ERROR", e)
870
+
871
+ }
813
872
  return url;
814
873
  };
815
874
 
@@ -835,5 +894,5 @@ const rewrite_localhost= (kernel, obj, source) => {
835
894
 
836
895
 
837
896
  module.exports = {
838
- parse_env, log_path, api_path, update_env, parse_env_detail, openfs, port_running, du, is_port_available, find_python, find_venv, fill_object, run, openURL, u2p, p2u, log, diffLinesWithContext, classifyChange, push, filepicker, exists, clipboard, mergeLines, ignore_subrepos, rewrite_localhost
897
+ parse_env, log_path, api_path, api_name, update_env, parse_env_detail, openfs, port_running, du, is_port_available, find_python, find_venv, fill_object, run, openURL, u2p, p2u, log, diffLinesWithContext, classifyChange, push, filepicker, exists, clipboard, mergeLines, ignore_subrepos, rewrite_localhost, symlink, file_type
839
898
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinokiod",
3
- "version": "3.41.0",
3
+ "version": "3.43.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -67,6 +67,7 @@
67
67
  "rimraf": "^5.0.0",
68
68
  "sanitize-filename": "^1.6.3",
69
69
  "semver": "^7.5.4",
70
+ "serve-index": "^1.9.1",
70
71
  "shell-path": "^2.0.0",
71
72
  "sudo-prompt-programfiles-x86": "^9.2.10",
72
73
  "symlink-dir": "^5.2.1",