thinkncollab-shell 0.0.19 → 2.0.0-beta.1

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 (201) hide show
  1. package/LICENSE +82 -0
  2. package/Readme.md +246 -502
  3. package/dist/bin/thinknsh.js +8 -0
  4. package/dist/src/commands/auth/login.js +7 -0
  5. package/dist/src/commands/auth/logout.js +7 -0
  6. package/dist/src/commands/auth/register.js +7 -0
  7. package/dist/src/commands/auth/whoami.js +7 -0
  8. package/dist/src/commands/dock/bench.js +7 -0
  9. package/dist/src/commands/dock/ci.js +7 -0
  10. package/dist/src/commands/dock/cluster.js +7 -0
  11. package/dist/src/commands/dock/containers.js +7 -0
  12. package/dist/src/commands/dock/dock.js +7 -0
  13. package/dist/src/commands/github/commits.js +7 -0
  14. package/dist/src/commands/github/issue-create.js +7 -0
  15. package/dist/src/commands/github/issues.js +7 -0
  16. package/dist/src/commands/github/pulls.js +7 -0
  17. package/dist/src/commands/github/statusgh.js +7 -0
  18. package/dist/src/commands/index.js +7 -0
  19. package/dist/src/commands/message/say.js +7 -0
  20. package/dist/src/commands/room/join.js +7 -0
  21. package/dist/src/commands/room/leave.js +7 -0
  22. package/dist/src/commands/room/rooms.js +7 -0
  23. package/dist/src/commands/room/sync.js +7 -0
  24. package/dist/src/commands/sandbox/console.js +7 -0
  25. package/dist/src/commands/sandbox/dep.js +7 -0
  26. package/dist/src/commands/sandbox/deploy.js +7 -0
  27. package/dist/src/commands/sandbox/dev.js +7 -0
  28. package/dist/src/commands/sandbox/exec.js +7 -0
  29. package/dist/src/commands/sandbox/freeze.js +7 -0
  30. package/dist/src/commands/sandbox/push.js +7 -0
  31. package/dist/src/commands/sandbox/resume.js +7 -0
  32. package/dist/src/commands/sandbox/sandbox.js +7 -0
  33. package/dist/src/commands/sandbox/share.js +7 -0
  34. package/dist/src/commands/sandbox/snapshot.js +7 -0
  35. package/dist/src/commands/sandbox/sync-deps.js +7 -0
  36. package/dist/src/commands/shell/doctor.js +7 -0
  37. package/dist/src/commands/shell/notifications.js +7 -0
  38. package/dist/src/commands/shell/notify.js +7 -0
  39. package/dist/src/commands/shell/status.js +7 -0
  40. package/dist/src/commands/shell/version.js +7 -0
  41. package/dist/src/commands/tasks/build.js +7 -0
  42. package/dist/src/commands/tasks/complete.js +7 -0
  43. package/dist/src/commands/tasks/create-task.js +7 -0
  44. package/dist/src/commands/tasks/loadtest.js +7 -0
  45. package/dist/src/commands/tasks/task-status.js +7 -0
  46. package/dist/src/commands/tasks/task.js +7 -0
  47. package/dist/src/commands/tasks/tasks.js +7 -0
  48. package/dist/src/commands/team/invite.js +7 -0
  49. package/dist/src/commands/team/myteam.js +7 -0
  50. package/dist/src/commands/team/teammates.js +7 -0
  51. package/dist/src/commands/terminal/share.js +7 -0
  52. package/dist/src/core/api-client.js +7 -0
  53. package/dist/src/core/crypto/e2ee-vault.js +7 -0
  54. package/dist/src/core/dep-store.js +7 -0
  55. package/dist/src/core/dependency-tracker.js +7 -0
  56. package/dist/src/core/geekload.js +7 -0
  57. package/dist/src/core/local-runner.js +7 -0
  58. package/dist/src/core/multi-lang-scanner.js +7 -0
  59. package/dist/src/core/notification-window.js +8 -0
  60. package/dist/src/core/notify-auth.js +7 -0
  61. package/dist/src/core/project-config.js +7 -0
  62. package/dist/src/core/sandbox/arch-shim.js +7 -0
  63. package/dist/src/core/sandbox/capsule-builder.js +7 -0
  64. package/dist/src/core/sandbox/cgroups.js +7 -0
  65. package/dist/src/core/sandbox/container-monitor.js +7 -0
  66. package/dist/src/core/sandbox/crun-manager.js +7 -0
  67. package/dist/src/core/sandbox/engine.js +7 -0
  68. package/dist/src/core/sandbox/image-manager.js +7 -0
  69. package/dist/src/core/sandbox/image-store.js +7 -0
  70. package/dist/src/core/sandbox/index.js +7 -0
  71. package/dist/src/core/sandbox/macos-sandbox.js +7 -0
  72. package/dist/src/core/sandbox/microvm-manager.js +7 -0
  73. package/dist/src/core/sandbox/native-service-manager.js +7 -0
  74. package/dist/src/core/sandbox/network.js +7 -0
  75. package/dist/src/core/sandbox/oci-exporter.js +7 -0
  76. package/dist/src/core/sandbox/oci-puller.js +7 -0
  77. package/dist/src/core/sandbox/oci-runtime-spec.js +7 -0
  78. package/dist/src/core/sandbox/policy-engine.js +7 -0
  79. package/dist/src/core/sandbox/port-proxy-daemon.js +7 -0
  80. package/dist/src/core/sandbox/room-sync-manager.js +7 -0
  81. package/dist/src/core/sandbox/runtime-manager.js +7 -0
  82. package/dist/src/core/sandbox/snapshot-manager.js +7 -0
  83. package/dist/src/core/sandbox/storage.js +7 -0
  84. package/dist/src/core/sandbox/supervisor.js +7 -0
  85. package/dist/src/core/sandbox/tunnel-daemon.js +7 -0
  86. package/dist/src/core/sandbox/tunnel.js +7 -0
  87. package/dist/src/core/sandbox/window-launcher.js +7 -0
  88. package/dist/src/core/sandbox/windows-wsl2.js +7 -0
  89. package/dist/src/core/sandbox-window.js +8 -0
  90. package/dist/src/core/shell.js +7 -0
  91. package/dist/src/core/websocket.js +7 -0
  92. package/dist/src/dock/api/routes.js +7 -0
  93. package/dist/src/dock/api/server.js +7 -0
  94. package/dist/src/dock/api/wire.js +7 -0
  95. package/dist/src/dock/bench/memory.js +7 -0
  96. package/dist/src/dock/bench/runner.js +7 -0
  97. package/dist/src/dock/build/builder.js +7 -0
  98. package/dist/src/dock/build/buildfile.js +7 -0
  99. package/dist/src/dock/build/buildkit.js +7 -0
  100. package/dist/src/dock/build/changes.js +7 -0
  101. package/dist/src/dock/ci/actions.js +7 -0
  102. package/dist/src/dock/ci/runner.js +7 -0
  103. package/dist/src/dock/ci/workflow.js +7 -0
  104. package/dist/src/dock/cli/api.js +7 -0
  105. package/dist/src/dock/cli/args.js +7 -0
  106. package/dist/src/dock/cli/commands.js +7 -0
  107. package/dist/src/dock/cli/compose.js +7 -0
  108. package/dist/src/dock/cli/context.js +7 -0
  109. package/dist/src/dock/cli/files.js +7 -0
  110. package/dist/src/dock/cli/format.js +7 -0
  111. package/dist/src/dock/cli/manage.js +7 -0
  112. package/dist/src/dock/cli/moved.js +7 -0
  113. package/dist/src/dock/cli/services.js +7 -0
  114. package/dist/src/dock/cli/session.js +7 -0
  115. package/dist/src/dock/cli/workspace.js +7 -0
  116. package/dist/src/dock/client.js +7 -0
  117. package/dist/src/dock/compat/cases.js +7 -0
  118. package/dist/src/dock/compat/runner.js +7 -0
  119. package/dist/src/dock/config.js +7 -0
  120. package/dist/src/dock/daemon-main.js +7 -0
  121. package/dist/src/dock/daemon.js +7 -0
  122. package/dist/src/dock/deploy/compose.js +7 -0
  123. package/dist/src/dock/engine.js +7 -0
  124. package/dist/src/dock/image/archive.js +7 -0
  125. package/dist/src/dock/image/auth.js +7 -0
  126. package/dist/src/dock/image/reference.js +7 -0
  127. package/dist/src/dock/image/registry.js +7 -0
  128. package/dist/src/dock/image/tar.js +7 -0
  129. package/dist/src/dock/index.js +7 -0
  130. package/dist/src/dock/linux/host.js +7 -0
  131. package/dist/src/dock/paths.js +7 -0
  132. package/dist/src/dock/runtime/emulation.js +7 -0
  133. package/dist/src/dock/runtime/fsevents.js +7 -0
  134. package/dist/src/dock/runtime/fsops.js +7 -0
  135. package/dist/src/dock/runtime/hostfwd.js +7 -0
  136. package/dist/src/dock/runtime/logs.js +7 -0
  137. package/dist/src/dock/runtime/network.js +7 -0
  138. package/dist/src/dock/runtime/ports.js +7 -0
  139. package/dist/src/dock/runtime/rootfs.js +7 -0
  140. package/dist/src/dock/runtime/seccomp-profile.LICENSE +202 -0
  141. package/dist/src/dock/runtime/seccomp-profile.json +1227 -0
  142. package/dist/src/dock/runtime/seccomp.js +7 -0
  143. package/dist/src/dock/runtime/spec.js +7 -0
  144. package/dist/src/dock/runtime/stats.js +7 -0
  145. package/dist/src/dock/runtime/volumes.js +7 -0
  146. package/dist/src/dock/selftest.js +7 -0
  147. package/dist/src/dock/setup/app.js +7 -0
  148. package/dist/src/dock/setup/autostart.js +7 -0
  149. package/dist/src/dock/setup/index.js +7 -0
  150. package/dist/src/dock/setup/integrate.js +7 -0
  151. package/dist/src/dock/setup/migrate.js +7 -0
  152. package/dist/src/dock/state/store.js +7 -0
  153. package/dist/src/dock/ui/page.js +385 -0
  154. package/dist/src/dock/ui/server.js +7 -0
  155. package/dist/src/dock/version.js +7 -0
  156. package/dist/src/dock/workspace/apps.js +7 -0
  157. package/dist/src/dock/workspace/workspace.js +7 -0
  158. package/dist/src/events/notifications.js +7 -0
  159. package/dist/src/utils/logger.js +7 -0
  160. package/dist/src/utils/terminalCrypto.js +7 -0
  161. package/package.json +41 -16
  162. package/bin/thinknsh.js +0 -71
  163. package/src/commands/auth/login.js +0 -84
  164. package/src/commands/auth/logout.js +0 -32
  165. package/src/commands/auth/register.js +0 -52
  166. package/src/commands/auth/whoami.js +0 -52
  167. package/src/commands/github/commits.js +0 -58
  168. package/src/commands/github/issue-create.js +0 -59
  169. package/src/commands/github/issues.js +0 -57
  170. package/src/commands/github/pulls.js +0 -58
  171. package/src/commands/github/statusgh.js +0 -50
  172. package/src/commands/index.js +0 -136
  173. package/src/commands/message/say.js +0 -49
  174. package/src/commands/room/join.js +0 -142
  175. package/src/commands/room/leave.js +0 -24
  176. package/src/commands/room/rooms.js +0 -66
  177. package/src/commands/shell/notify.js +0 -88
  178. package/src/commands/shell/status.js +0 -73
  179. package/src/commands/shell/version.js +0 -18
  180. package/src/commands/tasks/build.js +0 -190
  181. package/src/commands/tasks/complete.js +0 -940
  182. package/src/commands/tasks/create-task.js +0 -101
  183. package/src/commands/tasks/loadtest.js +0 -101
  184. package/src/commands/tasks/suggestTask.js +0 -0
  185. package/src/commands/tasks/task-status.js +0 -72
  186. package/src/commands/tasks/task.js +0 -182
  187. package/src/commands/tasks/tasks.js +0 -184
  188. package/src/commands/team/invite.js +0 -46
  189. package/src/commands/team/myteam.js +0 -78
  190. package/src/commands/team/teammates.js +0 -52
  191. package/src/commands/terminal/share.js +0 -261
  192. package/src/core/api-client.js +0 -246
  193. package/src/core/geekload.js +0 -524
  194. package/src/core/local-runner.js +0 -861
  195. package/src/core/notification-window.js +0 -165
  196. package/src/core/project-config.js +0 -100
  197. package/src/core/shell.js +0 -734
  198. package/src/core/websocket.js +0 -482
  199. package/src/events/notifications.js +0 -184
  200. package/src/utils/logger.js +0 -159
  201. package/src/utils/terminalCrypto.js +0 -47
@@ -1,159 +0,0 @@
1
- /* Logger for ThinkNCollab Shell
2
- */
3
-
4
- const fs = require('fs-extra');
5
- const path = require('path');
6
- const os = require('os');
7
-
8
- class Logger {
9
- constructor(options = {}) {
10
- this.options = {
11
- logDir: options.logDir || path.join(os.homedir(), '.thinkncollab', 'logs'),
12
- level: options.level || 'info',
13
- maxFiles: options.maxFiles || 5,
14
- maxSize: options.maxSize || 10 * 1024 * 1024, // 10MB
15
- ...options
16
- };
17
-
18
- // Ensure log directory exists
19
- fs.ensureDirSync(this.options.logDir);
20
-
21
- this.levels = {
22
- debug: 0,
23
- info: 1,
24
- warn: 2,
25
- error: 3
26
- };
27
-
28
- this.currentLogFile = this.getLogFileName();
29
- }
30
-
31
- /* Get log file name
32
- */
33
- getLogFileName() {
34
- const date = new Date().toISOString().split('T')[0];
35
- return path.join(this.options.logDir, `thinknsh-${date}.log`);
36
- }
37
-
38
- /* Write to log file
39
- */
40
- async write(level, message, data = null) {
41
- if (this.levels[level] < this.levels[this.options.level]) {
42
- return;
43
- }
44
-
45
- const logEntry = {
46
- timestamp: new Date().toISOString(),
47
- level,
48
- message,
49
- data,
50
- pid: process.pid
51
- };
52
-
53
- const logLine = JSON.stringify(logEntry) + '\n';
54
-
55
- try {
56
- await fs.appendFile(this.currentLogFile, logLine);
57
- await this.rotateIfNeeded();
58
- } catch (error) {
59
- console.error('Failed to write log:', error);
60
- }
61
- }
62
-
63
- /* Rotate log files if needed
64
- */
65
- async rotateIfNeeded() {
66
- try {
67
- const stat = await fs.stat(this.currentLogFile);
68
-
69
- if (stat.size > this.options.maxSize) {
70
- // Rename current file
71
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
72
- const rotatedFile = this.currentLogFile.replace('.log', `-${timestamp}.log`);
73
- await fs.rename(this.currentLogFile, rotatedFile);
74
-
75
- // Create new log file
76
- this.currentLogFile = this.getLogFileName();
77
-
78
- // Clean up old files
79
- await this.cleanOldLogs();
80
- }
81
- } catch (error) {
82
- // File might not exist yet
83
- }
84
- }
85
-
86
- /* Clean old log files
87
- */
88
- async cleanOldLogs() {
89
- try {
90
- const files = await fs.readdir(this.options.logDir);
91
- const logFiles = files
92
- .filter(f => f.startsWith('thinknsh-') && f.endsWith('.log'))
93
- .map(f => ({
94
- name: f,
95
- path: path.join(this.options.logDir, f),
96
- time: fs.statSync(path.join(this.options.logDir, f)).mtime.getTime()
97
- }))
98
- .sort((a, b) => b.time - a.time);
99
-
100
- // Keep only maxFiles most recent
101
- if (logFiles.length > this.options.maxFiles) {
102
- const toDelete = logFiles.slice(this.options.maxFiles);
103
- for (const file of toDelete) {
104
- await fs.remove(file.path);
105
- }
106
- }
107
- } catch (error) {
108
- console.error('Failed to clean old logs:', error);
109
- }
110
- }
111
-
112
- /* Debug log
113
- */
114
- debug(message, data = null) {
115
- return this.write('debug', message, data);
116
- }
117
-
118
- /* Info log
119
- */
120
- info(message, data = null) {
121
- return this.write('info', message, data);
122
- }
123
-
124
- /* Warn log
125
- */
126
- warn(message, data = null) {
127
- return this.write('warn', message, data);
128
- }
129
-
130
- /* Error log
131
- */
132
- error(message, data = null) {
133
- return this.write('error', message, data);
134
- }
135
-
136
- /* Get recent logs
137
- */
138
- async getRecentLogs(lines = 100) {
139
- try {
140
- if (!await fs.pathExists(this.currentLogFile)) {
141
- return [];
142
- }
143
-
144
- const content = await fs.readFile(this.currentLogFile, 'utf8');
145
- const logs = content
146
- .split('\n')
147
- .filter(line => line.trim())
148
- .map(line => JSON.parse(line))
149
- .slice(-lines);
150
-
151
- return logs;
152
- } catch (error) {
153
- console.error('Failed to read logs:', error);
154
- return [];
155
- }
156
- }
157
- }
158
-
159
- module.exports = Logger;
@@ -1,47 +0,0 @@
1
- /**
2
- * src/utils/terminalCrypto.js
3
- * CLI-side AES-256-GCM End-to-End Encryption (E2EE) module
4
- */
5
-
6
- const crypto = require('crypto');
7
-
8
- function deriveKey(secret, salt = 'thinkncollab-e2ee-salt') {
9
- return new Promise((resolve, reject) => {
10
- crypto.pbkdf2(secret, salt, 100000, 32, 'sha256', (err, derivedKey) => {
11
- if (err) return reject(err);
12
- resolve(derivedKey);
13
- });
14
- });
15
- }
16
-
17
- function encryptPayload(plaintext, key) {
18
- const iv = crypto.randomBytes(12);
19
- const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
20
-
21
- let encrypted = cipher.update(plaintext, 'utf8', 'hex');
22
- encrypted += cipher.final('hex');
23
- const authTag = cipher.getAuthTag().toString('hex');
24
-
25
- return {
26
- ciphertext: encrypted,
27
- iv: iv.toString('hex'),
28
- authTag: authTag
29
- };
30
- }
31
-
32
- function decryptPayload(ciphertext, ivHex, authTagHex, key) {
33
- const iv = Buffer.from(ivHex, 'hex');
34
- const authTag = Buffer.from(authTagHex, 'hex');
35
- const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
36
- decipher.setAuthTag(authTag);
37
-
38
- let decrypted = decipher.update(ciphertext, 'hex', 'utf8');
39
- decrypted += decipher.final('utf8');
40
- return decrypted;
41
- }
42
-
43
- module.exports = {
44
- deriveKey,
45
- encryptPayload,
46
- decryptPayload
47
- };