@ecmaos/kernel 0.6.5 → 0.7.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/dist/kernel.d.ts CHANGED
@@ -25,7 +25,9 @@ import { ProcessManager } from '#processes.ts';
25
25
  import { Protocol } from '#protocol.ts';
26
26
  import { Service } from '#service.ts';
27
27
  import { Shell } from '#shell.ts';
28
+ import { Sockets } from '#sockets.ts';
28
29
  import { Storage as Storage_2 } from '#storage.ts';
30
+ import { Telemetry } from '#telemetry.ts';
29
31
  import { Terminal } from '@ecmaos/types';
30
32
  import { Users } from '#users.ts';
31
33
  import { Wasm } from '@ecmaos/types';
@@ -95,6 +97,8 @@ export declare class Kernel implements Kernel_2 {
95
97
  readonly processes: ProcessManager;
96
98
  /** Protocol handler service */
97
99
  readonly protocol: Protocol;
100
+ /** Socket connection management service */
101
+ readonly sockets: Sockets;
98
102
  /** Map of available screensavers */
99
103
  readonly screensavers: Map<string, {
100
104
  default: (options: {
@@ -108,6 +112,8 @@ export declare class Kernel implements Kernel_2 {
108
112
  readonly shell: Shell;
109
113
  /** Storage provider interface */
110
114
  readonly storage: Storage_2;
115
+ /** Telemetry service for OpenTelemetry tracing */
116
+ readonly telemetry: Telemetry;
111
117
  /** Terminal interface for user interaction */
112
118
  readonly terminal: Terminal;
113
119
  /** Toast notification service */
package/dist/kernel.js CHANGED
@@ -1,4 +1,4 @@
1
- import { K } from "./kernel-C_Xvcpox.js";
1
+ import { K } from "./kernel-Bpu9Ujml.js";
2
2
  export {
3
3
  K as Kernel
4
4
  };
@@ -1,6 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { g as getDefaultExportFromCjs } from "./kernel-C_Xvcpox.js";
3
+ import { g as getDefaultExportFromCjs } from "./kernel-Bpu9Ujml.js";
4
4
  var topbar_min$3 = { exports: {} };
5
5
  var topbar_min$2 = topbar_min$3.exports;
6
6
  var hasRequiredTopbar_min;
@@ -47,4 +47,4 @@ const topbar_min$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.define
47
47
  export {
48
48
  topbar_min$1 as t
49
49
  };
50
- //# sourceMappingURL=topbar.min-D7kPyIYf.js.map
50
+ //# sourceMappingURL=topbar.min-5c8PffLE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"topbar.min-D7kPyIYf.js","sources":["../node_modules/.pnpm/topbar@3.0.0/node_modules/topbar/topbar.min.js"],"sourcesContent":["/**\n * @license MIT\n * topbar 3.0.0\n * http://buunguyen.github.io/topbar\n * Copyright (c) 2024 Buu Nguyen\n */\n(function(window,document){\"use strict\";function repaint(){canvas.width=window.innerWidth,canvas.height=5*options.barThickness;var ctx=canvas.getContext(\"2d\");ctx.shadowBlur=options.shadowBlur,ctx.shadowColor=options.shadowColor;var stop,lineGradient=ctx.createLinearGradient(0,0,canvas.width,0);for(stop in options.barColors)lineGradient.addColorStop(stop,options.barColors[stop]);ctx.lineWidth=options.barThickness,ctx.beginPath(),ctx.moveTo(0,options.barThickness/2),ctx.lineTo(Math.ceil(currentProgress*canvas.width),options.barThickness/2),ctx.strokeStyle=lineGradient,ctx.stroke()}var canvas,currentProgress,showing,progressTimerId=null,fadeTimerId=null,delayTimerId=null,options={autoRun:!0,barThickness:3,barColors:{0:\"rgba(26, 188, 156, .9)\",\".25\":\"rgba(52, 152, 219, .9)\",\".50\":\"rgba(241, 196, 15, .9)\",\".75\":\"rgba(230, 126, 34, .9)\",\"1.0\":\"rgba(211, 84, 0, .9)\"},shadowBlur:10,shadowColor:\"rgba(0, 0, 0, .6)\",className:null},topbar={config:function(opts){for(var key in opts)options.hasOwnProperty(key)&&(options[key]=opts[key])},show:function(handler){var type,elem;showing||(handler?delayTimerId=delayTimerId||setTimeout(()=>topbar.show(),handler):(showing=!0,null!==fadeTimerId&&window.cancelAnimationFrame(fadeTimerId),canvas||((elem=(canvas=document.createElement(\"canvas\")).style).position=\"fixed\",elem.top=elem.left=elem.right=elem.margin=elem.padding=0,elem.zIndex=100001,elem.display=\"none\",options.className&&canvas.classList.add(options.className),type=\"resize\",handler=repaint,(elem=window).addEventListener?elem.addEventListener(type,handler,!1):elem.attachEvent?elem.attachEvent(\"on\"+type,handler):elem[\"on\"+type]=handler),canvas.parentElement||document.body.appendChild(canvas),canvas.style.opacity=1,canvas.style.display=\"block\",topbar.progress(0),options.autoRun&&function loop(){progressTimerId=window.requestAnimationFrame(loop),topbar.progress(\"+\"+.05*Math.pow(1-Math.sqrt(currentProgress),2))}()))},progress:function(to){return void 0===to||(\"string\"==typeof to&&(to=(0<=to.indexOf(\"+\")||0<=to.indexOf(\"-\")?currentProgress:0)+parseFloat(to)),currentProgress=1<to?1:to,repaint()),currentProgress},hide:function(){clearTimeout(delayTimerId),delayTimerId=null,showing&&(showing=!1,null!=progressTimerId&&(window.cancelAnimationFrame(progressTimerId),progressTimerId=null),function loop(){return 1<=topbar.progress(\"+.1\")&&(canvas.style.opacity-=.05,canvas.style.opacity<=.05)?(canvas.style.display=\"none\",void(fadeTimerId=null)):void(fadeTimerId=window.requestAnimationFrame(loop))}())}};\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=topbar:\"function\"==typeof define&&define.amd?define(function(){return topbar}):this.topbar=topbar}).call(this,window,document);"],"names":["window","document","this"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"topbar.min-5c8PffLE.js","sources":["../node_modules/.pnpm/topbar@3.0.0/node_modules/topbar/topbar.min.js"],"sourcesContent":["/**\n * @license MIT\n * topbar 3.0.0\n * http://buunguyen.github.io/topbar\n * Copyright (c) 2024 Buu Nguyen\n */\n(function(window,document){\"use strict\";function repaint(){canvas.width=window.innerWidth,canvas.height=5*options.barThickness;var ctx=canvas.getContext(\"2d\");ctx.shadowBlur=options.shadowBlur,ctx.shadowColor=options.shadowColor;var stop,lineGradient=ctx.createLinearGradient(0,0,canvas.width,0);for(stop in options.barColors)lineGradient.addColorStop(stop,options.barColors[stop]);ctx.lineWidth=options.barThickness,ctx.beginPath(),ctx.moveTo(0,options.barThickness/2),ctx.lineTo(Math.ceil(currentProgress*canvas.width),options.barThickness/2),ctx.strokeStyle=lineGradient,ctx.stroke()}var canvas,currentProgress,showing,progressTimerId=null,fadeTimerId=null,delayTimerId=null,options={autoRun:!0,barThickness:3,barColors:{0:\"rgba(26, 188, 156, .9)\",\".25\":\"rgba(52, 152, 219, .9)\",\".50\":\"rgba(241, 196, 15, .9)\",\".75\":\"rgba(230, 126, 34, .9)\",\"1.0\":\"rgba(211, 84, 0, .9)\"},shadowBlur:10,shadowColor:\"rgba(0, 0, 0, .6)\",className:null},topbar={config:function(opts){for(var key in opts)options.hasOwnProperty(key)&&(options[key]=opts[key])},show:function(handler){var type,elem;showing||(handler?delayTimerId=delayTimerId||setTimeout(()=>topbar.show(),handler):(showing=!0,null!==fadeTimerId&&window.cancelAnimationFrame(fadeTimerId),canvas||((elem=(canvas=document.createElement(\"canvas\")).style).position=\"fixed\",elem.top=elem.left=elem.right=elem.margin=elem.padding=0,elem.zIndex=100001,elem.display=\"none\",options.className&&canvas.classList.add(options.className),type=\"resize\",handler=repaint,(elem=window).addEventListener?elem.addEventListener(type,handler,!1):elem.attachEvent?elem.attachEvent(\"on\"+type,handler):elem[\"on\"+type]=handler),canvas.parentElement||document.body.appendChild(canvas),canvas.style.opacity=1,canvas.style.display=\"block\",topbar.progress(0),options.autoRun&&function loop(){progressTimerId=window.requestAnimationFrame(loop),topbar.progress(\"+\"+.05*Math.pow(1-Math.sqrt(currentProgress),2))}()))},progress:function(to){return void 0===to||(\"string\"==typeof to&&(to=(0<=to.indexOf(\"+\")||0<=to.indexOf(\"-\")?currentProgress:0)+parseFloat(to)),currentProgress=1<to?1:to,repaint()),currentProgress},hide:function(){clearTimeout(delayTimerId),delayTimerId=null,showing&&(showing=!1,null!=progressTimerId&&(window.cancelAnimationFrame(progressTimerId),progressTimerId=null),function loop(){return 1<=topbar.progress(\"+.1\")&&(canvas.style.opacity-=.05,canvas.style.opacity<=.05)?(canvas.style.display=\"none\",void(fadeTimerId=null)):void(fadeTimerId=window.requestAnimationFrame(loop))}())}};\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=topbar:\"function\"==typeof define&&define.amd?define(function(){return topbar}):this.topbar=topbar}).call(this,window,document);"],"names":["window","document","this"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/ui.js CHANGED
@@ -1,7 +1,9 @@
1
- import { K as Kernel } from "./kernel-C_Xvcpox.js";
1
+ import { K as Kernel } from "./kernel-Bpu9Ujml.js";
2
+ const username = "root";
3
+ const password = "root";
2
4
  const socket = "ws://localhost:30445/socket";
3
5
  const kernel = new Kernel({
4
- credentials: void 0,
6
+ credentials: { username, password },
5
7
  dom: { topbar: true },
6
8
  log: { name: `ecmaos:${"kernel"}` },
7
9
  socket: new WebSocket(socket)
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["import { Kernel } from '#kernel.ts'\nimport './ui.css'\n\nconst username = import.meta.env.VITE_AUTOLOGIN_USERNAME\nconst password = import.meta.env.VITE_AUTOLOGIN_PASSWORD\nconst socket = import.meta.env.VITE_METAL_SOCKET\n\nconst kernel = new Kernel({\n credentials: (username && password) ? { username, password } : undefined,\n dom: { topbar: import.meta.env.NODE_ENV !== 'test' },\n log: { name: `ecmaos:${import.meta.env.NODE_ENV || 'kernel'}` },\n socket: socket ? new WebSocket(socket) : undefined\n})\n\nglobalThis.kernels = globalThis.kernels || new Map()\nglobalThis.kernels.set(kernel.id, kernel)\n\nglobalThis.shells = globalThis.shells || new Map()\nglobalThis.shells.set(kernel.shell.id, kernel.shell)\n\nglobalThis.terminals = globalThis.terminals || new Map()\nglobalThis.terminals.set(kernel.terminal.id, kernel.terminal)\n\nconst primaryKernel = globalThis.kernels.values().next().value\nglobalThis.kernel = primaryKernel\n\nkernel.terminal.mount(document.getElementById('terminal') as HTMLElement)\nkernel.boot({ silent: import.meta.env.NODE_ENV === 'test', figletFontRandom: false })\n"],"names":[],"mappings":";AAKA,MAAM,SAAS;AAEf,MAAM,SAAS,IAAI,OAAO;AAAA,EACxB,aAA+D;AAAA,EAC/D,KAAK,EAAE,QAAQ,KAA6B;AAAA,EAC5C,KAAK,EAAE,MAAM,UAAsC,QAAQ,GAAA;AAAA,EAC3D,QAAiB,IAAI,UAAU,MAAM;AACvC,CAAC;AAED,WAAW,UAAU,WAAW,WAAW,oBAAI,IAAA;AAC/C,WAAW,QAAQ,IAAI,OAAO,IAAI,MAAM;AAExC,WAAW,SAAS,WAAW,UAAU,oBAAI,IAAA;AAC7C,WAAW,OAAO,IAAI,OAAO,MAAM,IAAI,OAAO,KAAK;AAEnD,WAAW,YAAY,WAAW,aAAa,oBAAI,IAAA;AACnD,WAAW,UAAU,IAAI,OAAO,SAAS,IAAI,OAAO,QAAQ;AAE5D,MAAM,gBAAgB,WAAW,QAAQ,OAAA,EAAS,OAAO;AACzD,WAAW,SAAS;AAEpB,OAAO,SAAS,MAAM,SAAS,eAAe,UAAU,CAAgB;AACxE,OAAO,KAAK,EAAE,QAAQ,OAAqC,kBAAkB,OAAO;"}
1
+ {"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["import { Kernel } from '#kernel.ts'\nimport './ui.css'\n\nconst username = import.meta.env.VITE_AUTOLOGIN_USERNAME\nconst password = import.meta.env.VITE_AUTOLOGIN_PASSWORD\nconst socket = import.meta.env.VITE_METAL_SOCKET\n\nconst kernel = new Kernel({\n credentials: (username && password) ? { username, password } : undefined,\n dom: { topbar: import.meta.env.NODE_ENV !== 'test' },\n log: { name: `ecmaos:${import.meta.env.NODE_ENV || 'kernel'}` },\n socket: socket ? new WebSocket(socket) : undefined\n})\n\nglobalThis.kernels = globalThis.kernels || new Map()\nglobalThis.kernels.set(kernel.id, kernel)\n\nglobalThis.shells = globalThis.shells || new Map()\nglobalThis.shells.set(kernel.shell.id, kernel.shell)\n\nglobalThis.terminals = globalThis.terminals || new Map()\nglobalThis.terminals.set(kernel.terminal.id, kernel.terminal)\n\nconst primaryKernel = globalThis.kernels.values().next().value\nglobalThis.kernel = primaryKernel\n\nkernel.terminal.mount(document.getElementById('terminal') as HTMLElement)\nkernel.boot({ silent: import.meta.env.NODE_ENV === 'test', figletFontRandom: false })\n"],"names":[],"mappings":";AAGA,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,SAAS;AAEf,MAAM,SAAS,IAAI,OAAO;AAAA,EACxB,aAAsC,EAAE,UAAU;EAClD,KAAK,EAAE,QAAQ,KAA6B;AAAA,EAC5C,KAAK,EAAE,MAAM,UAAsC,QAAQ,GAAA;AAAA,EAC3D,QAAiB,IAAI,UAAU,MAAM;AACvC,CAAC;AAED,WAAW,UAAU,WAAW,WAAW,oBAAI,IAAA;AAC/C,WAAW,QAAQ,IAAI,OAAO,IAAI,MAAM;AAExC,WAAW,SAAS,WAAW,UAAU,oBAAI,IAAA;AAC7C,WAAW,OAAO,IAAI,OAAO,MAAM,IAAI,OAAO,KAAK;AAEnD,WAAW,YAAY,WAAW,aAAa,oBAAI,IAAA;AACnD,WAAW,UAAU,IAAI,OAAO,SAAS,IAAI,OAAO,QAAQ;AAE5D,MAAM,gBAAgB,WAAW,QAAQ,OAAA,EAAS,OAAO;AACzD,WAAW,SAAS;AAEpB,OAAO,SAAS,MAAM,SAAS,eAAe,UAAU,CAAgB;AACxE,OAAO,KAAK,EAAE,QAAQ,OAAqC,kBAAkB,OAAO;"}
@@ -1,6 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { c as chalk, p as path } from "./kernel-C_Xvcpox.js";
3
+ import { c as chalk, p as path } from "./kernel-Bpu9Ujml.js";
4
4
  const uninstall = /* @__PURE__ */ __name(async ({ kernel, terminal, args }) => {
5
5
  const [packageArg] = args;
6
6
  if (!packageArg) {
@@ -94,4 +94,4 @@ const uninstall = /* @__PURE__ */ __name(async ({ kernel, terminal, args }) => {
94
94
  export {
95
95
  uninstall as default
96
96
  };
97
- //# sourceMappingURL=uninstall-CamF7_kP.js.map
97
+ //# sourceMappingURL=uninstall-CJIvqogq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall-CamF7_kP.js","sources":["../src/tree/lib/commands/uninstall.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\n\nimport { CommandArgs } from './'\n\nconst uninstall = async ({ kernel, terminal, args }: CommandArgs) => {\n const [packageArg] = args as [string]\n if (!packageArg) {\n terminal.writeln(chalk.red('Usage: uninstall <package-name>[@version]'))\n return 1\n }\n\n const spec = packageArg.match(/(@[^/]+\\/[^@]+|[^@]+)(?:@([^/]+))?/)\n if (!spec) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const packageName = spec[1]?.replace('vnpm:', '')\n const version = spec[2]\n\n if (!packageName) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const packageDir = path.join('/usr/lib', packageName)\n \n // Check if package is installed\n if (!await kernel.filesystem.fs.exists(packageDir)) {\n terminal.writeln(chalk.red(`Package ${packageName} is not installed`))\n return 1\n }\n\n try {\n // Get installed versions\n const versions = await kernel.filesystem.fs.readdir(packageDir)\n \n if (versions.length === 0) {\n terminal.writeln(chalk.red(`No versions found for ${packageName}`))\n return 1\n }\n\n // If version is specified, uninstall only that version\n // Otherwise, uninstall all versions\n const versionsToUninstall = version \n ? versions.filter(v => v === version)\n : versions\n\n if (version && versionsToUninstall.length === 0) {\n terminal.writeln(chalk.red(`Version ${version} of ${packageName} is not installed`))\n terminal.writeln(chalk.yellow(`Installed versions: ${versions.join(', ')}`))\n return 1\n }\n\n // Uninstall each version\n for (const versionToUninstall of versionsToUninstall) {\n const versionPath = path.join(packageDir, versionToUninstall)\n const packagePath = path.join(versionPath, 'package.json')\n\n if (!await kernel.filesystem.fs.exists(packagePath)) {\n terminal.writeln(chalk.yellow(`Warning: package.json not found for ${packageName}@${versionToUninstall}, skipping binary unlinking`))\n } else {\n try {\n // Read package.json to find binaries to unlink\n const packageData = await kernel.filesystem.fs.readFile(packagePath, 'utf-8')\n const packageJson = JSON.parse(packageData)\n\n // Unlink binaries\n if (packageJson.bin) {\n if (typeof packageJson.bin === 'string') {\n const binPath = path.join('/usr/bin', packageJson.name)\n try {\n await kernel.filesystem.fs.unlink(binPath)\n terminal.writeln(chalk.blue(`Unlinked ${packageJson.name} from ${binPath}`))\n } catch (error) {\n // Binary might not exist or might not be a symlink, continue anyway\n terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n } else if (typeof packageJson.bin === 'object') {\n for (const bin in packageJson.bin) {\n const binPath = path.join('/usr/bin', bin)\n try {\n await kernel.filesystem.fs.unlink(binPath)\n terminal.writeln(chalk.blue(`Unlinked ${bin} from ${binPath}`))\n } catch (error) {\n // Binary might not exist or might not be a symlink, continue anyway\n terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n }\n }\n }\n } catch (error) {\n terminal.writeln(chalk.yellow(`Warning: Failed to read package.json for ${packageName}@${versionToUninstall}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n }\n\n // Remove the package version directory\n try {\n await kernel.filesystem.fs.rm(versionPath, { recursive: true, force: true })\n terminal.writeln(chalk.green(`Uninstalled ${packageName}@${versionToUninstall}`))\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to remove ${versionPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n return 1\n }\n }\n\n // If all versions were uninstalled, remove the package directory\n const remainingVersions = await kernel.filesystem.fs.readdir(packageDir).catch(() => [])\n if (remainingVersions.length === 0) {\n try {\n await kernel.filesystem.fs.rmdir(packageDir)\n } catch {\n // Directory might not be empty or might have already been removed, that's okay\n terminal.writeln(chalk.yellow(`Warning: Could not remove package directory ${packageDir}`))\n }\n }\n\n return 0\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to uninstall ${packageName}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n return 1\n }\n}\n\nexport default uninstall\n\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall-CJIvqogq.js","sources":["../src/tree/lib/commands/uninstall.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\n\nimport { CommandArgs } from './'\n\nconst uninstall = async ({ kernel, terminal, args }: CommandArgs) => {\n const [packageArg] = args as [string]\n if (!packageArg) {\n terminal.writeln(chalk.red('Usage: uninstall <package-name>[@version]'))\n return 1\n }\n\n const spec = packageArg.match(/(@[^/]+\\/[^@]+|[^@]+)(?:@([^/]+))?/)\n if (!spec) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const packageName = spec[1]?.replace('vnpm:', '')\n const version = spec[2]\n\n if (!packageName) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const packageDir = path.join('/usr/lib', packageName)\n \n // Check if package is installed\n if (!await kernel.filesystem.fs.exists(packageDir)) {\n terminal.writeln(chalk.red(`Package ${packageName} is not installed`))\n return 1\n }\n\n try {\n // Get installed versions\n const versions = await kernel.filesystem.fs.readdir(packageDir)\n \n if (versions.length === 0) {\n terminal.writeln(chalk.red(`No versions found for ${packageName}`))\n return 1\n }\n\n // If version is specified, uninstall only that version\n // Otherwise, uninstall all versions\n const versionsToUninstall = version \n ? versions.filter(v => v === version)\n : versions\n\n if (version && versionsToUninstall.length === 0) {\n terminal.writeln(chalk.red(`Version ${version} of ${packageName} is not installed`))\n terminal.writeln(chalk.yellow(`Installed versions: ${versions.join(', ')}`))\n return 1\n }\n\n // Uninstall each version\n for (const versionToUninstall of versionsToUninstall) {\n const versionPath = path.join(packageDir, versionToUninstall)\n const packagePath = path.join(versionPath, 'package.json')\n\n if (!await kernel.filesystem.fs.exists(packagePath)) {\n terminal.writeln(chalk.yellow(`Warning: package.json not found for ${packageName}@${versionToUninstall}, skipping binary unlinking`))\n } else {\n try {\n // Read package.json to find binaries to unlink\n const packageData = await kernel.filesystem.fs.readFile(packagePath, 'utf-8')\n const packageJson = JSON.parse(packageData)\n\n // Unlink binaries\n if (packageJson.bin) {\n if (typeof packageJson.bin === 'string') {\n const binPath = path.join('/usr/bin', packageJson.name)\n try {\n await kernel.filesystem.fs.unlink(binPath)\n terminal.writeln(chalk.blue(`Unlinked ${packageJson.name} from ${binPath}`))\n } catch (error) {\n // Binary might not exist or might not be a symlink, continue anyway\n terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n } else if (typeof packageJson.bin === 'object') {\n for (const bin in packageJson.bin) {\n const binPath = path.join('/usr/bin', bin)\n try {\n await kernel.filesystem.fs.unlink(binPath)\n terminal.writeln(chalk.blue(`Unlinked ${bin} from ${binPath}`))\n } catch (error) {\n // Binary might not exist or might not be a symlink, continue anyway\n terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n }\n }\n }\n } catch (error) {\n terminal.writeln(chalk.yellow(`Warning: Failed to read package.json for ${packageName}@${versionToUninstall}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n }\n\n // Remove the package version directory\n try {\n await kernel.filesystem.fs.rm(versionPath, { recursive: true, force: true })\n terminal.writeln(chalk.green(`Uninstalled ${packageName}@${versionToUninstall}`))\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to remove ${versionPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n return 1\n }\n }\n\n // If all versions were uninstalled, remove the package directory\n const remainingVersions = await kernel.filesystem.fs.readdir(packageDir).catch(() => [])\n if (remainingVersions.length === 0) {\n try {\n await kernel.filesystem.fs.rmdir(packageDir)\n } catch {\n // Directory might not be empty or might have already been removed, that's okay\n terminal.writeln(chalk.yellow(`Warning: Could not remove package directory ${packageDir}`))\n }\n }\n\n return 0\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to uninstall ${packageName}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n return 1\n }\n}\n\nexport default uninstall\n\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ecmaos/kernel",
3
3
  "description": "ecmaOS: Micro-kernel and framework for web technologies",
4
- "version": "0.6.5",
4
+ "version": "0.7.0",
5
5
  "license": "MIT+Apache-2.0",
6
6
  "homepage": "https://ecmaos.sh",
7
7
  "repository": "https://github.com/ecmaos/ecmaos",
@@ -69,6 +69,7 @@
69
69
  "./service": "./src/tree/service.ts",
70
70
  "./shell": "./src/tree/shell.ts",
71
71
  "./storage": "./src/tree/storage.ts",
72
+ "./telemetry": "./src/tree/telemetry.ts",
72
73
  "./terminal": "./src/tree/terminal.ts",
73
74
  "./ui": "./dist/ui.js",
74
75
  "./ui.css": "./dist/kernel.css",
@@ -137,10 +138,15 @@
137
138
  "vitest": "^2.1.2",
138
139
  "vitest-canvas-mock": "^0.3.3",
139
140
  "@ecmaos/config-typescript": "^0.2.0",
140
- "@ecmaos/types": "^0.4.3"
141
+ "@ecmaos/types": "^0.5.0"
141
142
  },
142
143
  "dependencies": {
143
144
  "@gera2ld/tarjs": "^0.3.1",
145
+ "@opentelemetry/api": "^1.9.0",
146
+ "@opentelemetry/context-zone": "^2.2.0",
147
+ "@opentelemetry/exporter-trace-otlp-http": "^0.208.0",
148
+ "@opentelemetry/instrumentation-document-load": "^0.54.0",
149
+ "@opentelemetry/sdk-trace-web": "^2.2.0",
144
150
  "@thi.ng/emoji": "^0.2.3",
145
151
  "@thi.ng/text-canvas": "^3.0.41",
146
152
  "@thi.ng/text-format": "^2.2.14",
@@ -173,21 +179,21 @@
173
179
  "tslog": "^4.9.3",
174
180
  "wabt": "^1.0.36",
175
181
  "winbox": "^0.2.82",
176
- "@ecmaos/coreutils": "^0.1.4",
177
- "@ecmaos-devices/bluetooth": "^0.1.0",
178
182
  "@ecmaos-devices/audio": "^0.1.0",
179
- "@ecmaos-devices/gamepad": "^0.1.0",
180
183
  "@ecmaos-devices/battery": "^0.1.0",
184
+ "@ecmaos-devices/bluetooth": "^0.1.0",
181
185
  "@ecmaos-devices/geo": "^0.1.0",
186
+ "@ecmaos-devices/gamepad": "^0.1.0",
182
187
  "@ecmaos-devices/gpu": "^0.1.0",
183
188
  "@ecmaos-devices/hid": "^0.1.0",
184
189
  "@ecmaos-devices/midi": "^0.1.0",
185
- "@ecmaos-devices/presentation": "^0.1.0",
186
190
  "@ecmaos-devices/sensors": "^0.1.0",
187
191
  "@ecmaos-devices/serial": "^0.1.0",
188
- "@ecmaos-devices/usb": "^0.1.0",
192
+ "@ecmaos-devices/presentation": "^0.1.0",
189
193
  "@ecmaos-devices/webgl": "^0.1.0",
190
- "@ecmaos/bios": "^0.2.0"
194
+ "@ecmaos-devices/usb": "^0.1.0",
195
+ "@ecmaos/bios": "^0.2.0",
196
+ "@ecmaos/coreutils": "^0.2.0"
191
197
  },
192
198
  "resolutions": {
193
199
  "ws": ">=8.17.1"