@ecmaos/types 0.2.4 → 0.4.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.
@@ -1,5 +1,5 @@
1
1
 
2
2
 
3
- > @ecmaos/types@0.2.4 build /home/archmag0s/code/ecmaos/ecmaos.turbo/core/types
3
+ > @ecmaos/types@0.4.0 build /home/archmag0s/code/ecmaos/core/types
4
4
  > tsc
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @ecmaos/types
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d104ad6: fix redirection; improve processes; ai and code app updates; process table; fd table; misc updates
8
+
9
+ ## 0.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - ae313df: updated zenfs; proper shell contexts; device updates; fixes
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [ae313df]
18
+ - @ecmaos/bios@0.2.0
19
+
20
+ ## 0.2.5
21
+
22
+ ### Patch Changes
23
+
24
+ - 9acd5b4: Basic experimental Node emulation
25
+
3
26
  ## 0.2.4
4
27
 
5
28
  ### Patch Changes
@@ -1,16 +1,12 @@
1
1
  /**
2
2
  * Filesystem types and interfaces
3
3
  */
4
- import type { Backend, Configuration, ConfigMounts, FileSystem, MountConfiguration } from '@zenfs/core';
4
+ import type { Configuration, ConfigMounts, fs } from '@zenfs/core';
5
5
  import type { TFunction } from 'i18next';
6
6
  /**
7
7
  * Type alias for filesystem mount configurations
8
8
  */
9
9
  export type FilesystemConfigMounts = ConfigMounts;
10
- /**
11
- * Type alias for filesystem mount configuration with generic backend
12
- */
13
- export type FilesystemMountConfiguration<T extends Backend<FileSystem>> = MountConfiguration<T>;
14
10
  /**
15
11
  * Options for configuring the filesystem
16
12
  */
@@ -48,15 +44,12 @@ export interface Filesystem {
48
44
  /** Get filesystem constants */
49
45
  readonly constants: any;
50
46
  /** Get filesystem credentials */
51
- readonly credentials: any;
52
47
  /** Get the device filesystem */
53
- readonly devfs: any;
54
48
  /** Get the asynchronous filesystem instance */
55
- readonly fs: any;
49
+ readonly fs: typeof fs.promises;
56
50
  /** Get the synchronous filesystem instance */
57
- readonly fsSync: any;
51
+ readonly fsSync: typeof fs;
58
52
  /** Get mounted filesystems */
59
- readonly mounts: Map<string, any>;
60
53
  /**
61
54
  * Configure the filesystem
62
55
  * @param options - Configuration options
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,sBAAsB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;AAElF;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAA;AAEzB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAChD,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAA;IACvB,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAA;IACzB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAA;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAA;IACpB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEjC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3E;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvE;;;OAGG;IACH,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7E"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,sBAAsB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;AAElF;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAA;AAEzB;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAChD,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAA;IACvB,iCAAiC;IAEjC,gCAAgC;IAEhC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAA;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAA;IAC1B,8BAA8B;IAG9B;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3E;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtC;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvE;;;OAGG;IACH,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7E"}
package/dist/kernel.d.ts CHANGED
@@ -144,6 +144,7 @@ export interface KernelOptions {
144
144
  username: string;
145
145
  password: string;
146
146
  };
147
+ devices?: Record<string, KernelDevice>;
147
148
  dom?: DomOptions;
148
149
  filesystem?: FilesystemOptions<FilesystemConfigMounts>;
149
150
  i18n?: InitOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../kernel.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,58 @@ import type { Shell } from './shell.ts';
6
6
  import type { Terminal } from './terminal.ts';
7
7
  /** Process status type */
8
8
  export type ProcessStatus = 'running' | 'paused' | 'stopped' | 'exited';
9
+ /**
10
+ * ZenFS FileHandle interface
11
+ * @see https://zenfs.dev/core/classes/index.fs.promises.FileHandle.html
12
+ */
13
+ export interface FileHandle {
14
+ /** The numeric file descriptor */
15
+ readonly fd: number;
16
+ /** Close the file handle */
17
+ close(): Promise<void>;
18
+ /** Read file contents */
19
+ readFile(encoding?: BufferEncoding): Promise<string | Buffer>;
20
+ /** Write data to file */
21
+ writeFile(data: string | Uint8Array): Promise<void>;
22
+ /** Truncate file to specified length */
23
+ truncate(len?: number): Promise<void>;
24
+ /** Get a readable web stream */
25
+ readableWebStream?(options?: {
26
+ type?: 'bytes';
27
+ }): ReadableStream<Uint8Array>;
28
+ /** Get a writable web stream */
29
+ writableWebStream?(): WritableStream<Uint8Array>;
30
+ }
31
+ /**
32
+ * File Descriptor Table interface
33
+ * Manages stdin/stdout/stderr and tracks open file handles
34
+ */
35
+ export interface FDTable {
36
+ /** Standard input stream */
37
+ readonly stdin: ReadableStream<Uint8Array> | undefined;
38
+ /** Standard output stream */
39
+ readonly stdout: WritableStream<Uint8Array> | undefined;
40
+ /** Standard error stream */
41
+ readonly stderr: WritableStream<Uint8Array> | undefined;
42
+ /** Get all tracked file handles */
43
+ readonly fileHandles: FileHandle[];
44
+ /** Set stdin stream */
45
+ setStdin(stream: ReadableStream<Uint8Array>): void;
46
+ /** Set stdout stream */
47
+ setStdout(stream: WritableStream<Uint8Array>): void;
48
+ /** Set stderr stream */
49
+ setStderr(stream: WritableStream<Uint8Array>): void;
50
+ /** Redirect stderr to stdout (2>&1) */
51
+ redirectStderrToStdout(): void;
52
+ /** Track a file handle */
53
+ trackFileHandle(handle: FileHandle): void;
54
+ /** Untrack a file handle */
55
+ untrackFileHandle(handle: FileHandle): void;
56
+ /** Close all tracked file handles */
57
+ closeFileHandles(): Promise<void>;
58
+ /** Cleanup all resources */
59
+ cleanup(): Promise<void>;
60
+ }
9
61
  /** Map of process IDs to processes */
10
62
  export type ProcessesMap = Map<number, Process>;
11
63
  /**
@@ -119,6 +171,8 @@ export interface Process {
119
171
  readonly entry: (params: ProcessEntryParams) => Promise<number | undefined | void>;
120
172
  /** Get event emitter */
121
173
  readonly events: any;
174
+ /** Get file descriptor table */
175
+ readonly fd: FDTable;
122
176
  /** Get group ID */
123
177
  readonly gid: number;
124
178
  /** Get kernel instance */
@@ -143,8 +197,25 @@ export interface Process {
143
197
  parent?: number;
144
198
  /** Clean up process resources */
145
199
  cleanup(): Promise<void>;
200
+ /**
201
+ * Close a file handle and untrack from FDTable
202
+ * @param handle - The file handle to close
203
+ */
204
+ close(handle: FileHandle): Promise<void>;
146
205
  /** Exit process */
147
206
  exit(exitCode?: number): Promise<void>;
207
+ /**
208
+ * Marks the process to stay alive after the entry function returns.
209
+ * Useful for background/daemon processes that need to keep running.
210
+ */
211
+ keepAlive(): void;
212
+ /**
213
+ * Open a file and automatically track in FDTable
214
+ * @param path - Path to the file
215
+ * @param flags - Open flags (default: 'r')
216
+ * @returns The file handle
217
+ */
218
+ open(path: string, flags?: string): Promise<FileHandle>;
148
219
  /** Pause process */
149
220
  pause(): void;
150
221
  /** Resume process */
@@ -1 +1 @@
1
- {"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../processes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../processes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"processes.js","sourceRoot":"","sources":["../processes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgFH;;GAEG;AACH,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,8BAAa,CAAA;AACf,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB"}
1
+ {"version":3,"file":"processes.js","sourceRoot":"","sources":["../processes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqIH;;GAEG;AACH,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,8BAAa,CAAA;AACf,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB"}
package/dist/shell.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shell types and interfaces
3
3
  */
4
- import type { Credentials } from '@zenfs/core';
4
+ import type { BoundContext, Credentials } from '@zenfs/core';
5
5
  import type { Kernel } from './kernel.ts';
6
6
  import type { Terminal } from './terminal.ts';
7
7
  /**
@@ -35,6 +35,8 @@ export interface Shell {
35
35
  readonly id: string;
36
36
  /** Current user's credentials */
37
37
  credentials: Credentials;
38
+ /** Shell context */
39
+ context: BoundContext;
38
40
  /** Current username */
39
41
  readonly username: string;
40
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,cAAc;IACd,GAAG,EAAE,MAAM,CAAA;IACX,eAAe;IACf,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,eAAe;IACf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAA;IACxB,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEhC;;OAEG;IACH,yBAAyB,IAAI,IAAI,CAAA;IAEjC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEtC;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAC9C"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,cAAc;IACd,GAAG,EAAE,MAAM,CAAA;IACX,eAAe;IACf,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,eAAe;IACf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,WAAW,EAAE,WAAW,CAAA;IACxB,oBAAoB;IACpB,OAAO,EAAE,YAAY,CAAA;IACrB,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEhC;;OAEG;IACH,yBAAyB,IAAI,IAAI,CAAA;IAEjC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEtC;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAC9C"}
package/filesystem.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Filesystem types and interfaces
3
3
  */
4
4
 
5
- import type { Backend, Configuration, ConfigMounts, FileSystem, MountConfiguration } from '@zenfs/core'
5
+ import type { Configuration, ConfigMounts, fs } from '@zenfs/core'
6
6
  import type { TFunction } from 'i18next'
7
7
 
8
8
  /**
@@ -10,11 +10,6 @@ import type { TFunction } from 'i18next'
10
10
  */
11
11
  export type FilesystemConfigMounts = ConfigMounts
12
12
 
13
- /**
14
- * Type alias for filesystem mount configuration with generic backend
15
- */
16
- export type FilesystemMountConfiguration<T extends Backend<FileSystem>> = MountConfiguration<T>
17
-
18
13
  /**
19
14
  * Options for configuring the filesystem
20
15
  */
@@ -56,15 +51,15 @@ export interface Filesystem {
56
51
  /** Get filesystem constants */
57
52
  readonly constants: any
58
53
  /** Get filesystem credentials */
59
- readonly credentials: any
54
+ // readonly credentials: any
60
55
  /** Get the device filesystem */
61
- readonly devfs: any
56
+ // readonly devfs: any
62
57
  /** Get the asynchronous filesystem instance */
63
- readonly fs: any
58
+ readonly fs: typeof fs.promises
64
59
  /** Get the synchronous filesystem instance */
65
- readonly fsSync: any
60
+ readonly fsSync: typeof fs
66
61
  /** Get mounted filesystems */
67
- readonly mounts: Map<string, any>
62
+ // readonly mounts: Map<string, any>
68
63
 
69
64
  /**
70
65
  * Configure the filesystem
package/kernel.ts CHANGED
@@ -222,6 +222,7 @@ export interface KernelOptions {
222
222
  username: string
223
223
  password: string
224
224
  }
225
+ devices?: Record<string, KernelDevice>
225
226
  dom?: DomOptions
226
227
  filesystem?: FilesystemOptions<FilesystemConfigMounts>
227
228
  i18n?: InitOptions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecmaos/types",
3
- "version": "0.2.4",
3
+ "version": "0.4.0",
4
4
  "description": "Type definitions for ecmaOS",
5
5
  "author": "Jay Mathis",
6
6
  "license": "MIT+Apache-2.0",
@@ -10,12 +10,14 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@xterm/xterm": "^5.5.0",
13
- "@zenfs/core": "^1.6.6",
14
- "@zenfs/dom": "^1.0.7",
13
+ "@zenfs/archives": "^1.3.1",
14
+ "@zenfs/core": "^2.4.2",
15
+ "@zenfs/dom": "^1.2.5",
16
+ "@zenfs/emscripten": "^1.0.5",
15
17
  "chalk": "^5.3.0",
16
18
  "i18next": "^23.16.6",
17
19
  "notyf": "^3.10.0",
18
- "@ecmaos/bios": "^0.1.1"
20
+ "@ecmaos/bios": "^0.2.0"
19
21
  },
20
22
  "devDependencies": {
21
23
  "@schemastore/package": "^0.0.10",
@@ -25,8 +27,9 @@
25
27
  "command-line-args": "^6.0.0",
26
28
  "tslog": "^4.9.3",
27
29
  "typescript": "^5.6.3",
30
+ "vite-plugin-node-polyfills": "^0.22.0",
28
31
  "winbox": "^0.2.82",
29
- "@ecmaos/config-typescript": "^0.1.1"
32
+ "@ecmaos/config-typescript": "^0.2.0"
30
33
  },
31
34
  "publishConfig": {
32
35
  "access": "public"
package/processes.ts CHANGED
@@ -9,6 +9,59 @@ import type { Terminal } from './terminal.ts'
9
9
  /** Process status type */
10
10
  export type ProcessStatus = 'running' | 'paused' | 'stopped' | 'exited'
11
11
 
12
+ /**
13
+ * ZenFS FileHandle interface
14
+ * @see https://zenfs.dev/core/classes/index.fs.promises.FileHandle.html
15
+ */
16
+ export interface FileHandle {
17
+ /** The numeric file descriptor */
18
+ readonly fd: number
19
+ /** Close the file handle */
20
+ close(): Promise<void>
21
+ /** Read file contents */
22
+ readFile(encoding?: BufferEncoding): Promise<string | Buffer>
23
+ /** Write data to file */
24
+ writeFile(data: string | Uint8Array): Promise<void>
25
+ /** Truncate file to specified length */
26
+ truncate(len?: number): Promise<void>
27
+ /** Get a readable web stream */
28
+ readableWebStream?(options?: { type?: 'bytes' }): ReadableStream<Uint8Array>
29
+ /** Get a writable web stream */
30
+ writableWebStream?(): WritableStream<Uint8Array>
31
+ }
32
+
33
+ /**
34
+ * File Descriptor Table interface
35
+ * Manages stdin/stdout/stderr and tracks open file handles
36
+ */
37
+ export interface FDTable {
38
+ /** Standard input stream */
39
+ readonly stdin: ReadableStream<Uint8Array> | undefined
40
+ /** Standard output stream */
41
+ readonly stdout: WritableStream<Uint8Array> | undefined
42
+ /** Standard error stream */
43
+ readonly stderr: WritableStream<Uint8Array> | undefined
44
+ /** Get all tracked file handles */
45
+ readonly fileHandles: FileHandle[]
46
+
47
+ /** Set stdin stream */
48
+ setStdin(stream: ReadableStream<Uint8Array>): void
49
+ /** Set stdout stream */
50
+ setStdout(stream: WritableStream<Uint8Array>): void
51
+ /** Set stderr stream */
52
+ setStderr(stream: WritableStream<Uint8Array>): void
53
+ /** Redirect stderr to stdout (2>&1) */
54
+ redirectStderrToStdout(): void
55
+ /** Track a file handle */
56
+ trackFileHandle(handle: FileHandle): void
57
+ /** Untrack a file handle */
58
+ untrackFileHandle(handle: FileHandle): void
59
+ /** Close all tracked file handles */
60
+ closeFileHandles(): Promise<void>
61
+ /** Cleanup all resources */
62
+ cleanup(): Promise<void>
63
+ }
64
+
12
65
  /** Map of process IDs to processes */
13
66
  export type ProcessesMap = Map<number, Process>
14
67
 
@@ -131,6 +184,8 @@ export interface Process {
131
184
  readonly entry: (params: ProcessEntryParams) => Promise<number | undefined | void>
132
185
  /** Get event emitter */
133
186
  readonly events: any
187
+ /** Get file descriptor table */
188
+ readonly fd: FDTable
134
189
  /** Get group ID */
135
190
  readonly gid: number
136
191
  /** Get kernel instance */
@@ -157,8 +212,25 @@ export interface Process {
157
212
 
158
213
  /** Clean up process resources */
159
214
  cleanup(): Promise<void>
215
+ /**
216
+ * Close a file handle and untrack from FDTable
217
+ * @param handle - The file handle to close
218
+ */
219
+ close(handle: FileHandle): Promise<void>
160
220
  /** Exit process */
161
221
  exit(exitCode?: number): Promise<void>
222
+ /**
223
+ * Marks the process to stay alive after the entry function returns.
224
+ * Useful for background/daemon processes that need to keep running.
225
+ */
226
+ keepAlive(): void
227
+ /**
228
+ * Open a file and automatically track in FDTable
229
+ * @param path - Path to the file
230
+ * @param flags - Open flags (default: 'r')
231
+ * @returns The file handle
232
+ */
233
+ open(path: string, flags?: string): Promise<FileHandle>
162
234
  /** Pause process */
163
235
  pause(): void
164
236
  /** Resume process */
package/shell.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Shell types and interfaces
3
3
  */
4
4
 
5
- import type { Credentials } from '@zenfs/core'
5
+ import type { BoundContext, Credentials } from '@zenfs/core'
6
6
  import type { Kernel } from './kernel.ts'
7
7
  import type { Terminal } from './terminal.ts'
8
8
 
@@ -38,6 +38,8 @@ export interface Shell {
38
38
  readonly id: string
39
39
  /** Current user's credentials */
40
40
  credentials: Credentials
41
+ /** Shell context */
42
+ context: BoundContext
41
43
  /** Current username */
42
44
  readonly username: string
43
45