@ecmaos/types 0.7.2 → 0.7.4

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.7.2 build /home/archmag0s/code/ecmaos/core/types
3
+ > @ecmaos/types@0.7.4 build /home/archmag0s/code/ecmaos/core/types
4
4
  > tsc
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # @ecmaos/types
2
2
 
3
+ ## 0.7.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 9864d20: Major Features:
8
+ Git coreutil: New git command implementation (core/utils/src/commands/git.ts - 843 lines)
9
+ Export command: Environment variable management with HOSTNAME set in shell environment
10
+ WASM/WASI improvements: Enhanced WASI support with preview1 and preview2 implementations
11
+ Web Kernel → Web OS: Renamed across documentation and meta tags
12
+ Improvements:
13
+ BIOS improvements (WIP) and UI HTML sync
14
+ Terminal command refactoring and structure changes
15
+ Documentation updates (392 files changed, mostly doc regeneration)
16
+
17
+ ## 0.7.3
18
+
19
+ ### Patch Changes
20
+
21
+ - 472a7f1: feat: i18n filesystem loading, browser detection, and Spanish translations
22
+
23
+ - Load locales from filesystem at /usr/share/locales
24
+ - Auto-detect browser language and configure locale
25
+ - Add Spanish translations for all namespaces
26
+ - Add dd coreutil command
27
+ - Fix shell command not found errors
28
+ - Update dependencies (turbo 2.7.5)
29
+
3
30
  ## 0.7.2
4
31
 
5
32
  ### Patch Changes
package/dist/i18n.d.ts CHANGED
@@ -4,33 +4,72 @@
4
4
  import type { InitOptions, TFunction } from 'i18next';
5
5
  import type i18next from 'i18next';
6
6
  /**
7
- * Interface for internationalization functionality
7
+ * Utility describing the shape of a translation resources object.
8
+ * Example: { en: { common: { ... }, kernel: { ... } }, es: { ... } }
8
9
  */
9
- export interface I18n {
10
- /** Get the i18next instance */
11
- readonly i18next: typeof i18next;
12
- /** Get the current language */
13
- readonly language: string;
14
- /** Get the translation function */
15
- readonly t: TFunction;
10
+ export type I18nResourceBundle = Record<string, Record<string, Record<string, string>>>;
11
+ export interface I18nFilesystemAdapter {
12
+ exists(path: string): Promise<boolean>;
13
+ readdir(path: string): Promise<string[]>;
14
+ readFile(path: string, encoding: 'utf-8'): Promise<string>;
15
+ stat(path: string): Promise<{
16
+ isDirectory(): boolean;
17
+ }>;
18
+ }
19
+ export interface I18nResourceLoadResult {
20
+ bundles: number;
21
+ files: number;
22
+ errors: string[];
16
23
  }
17
24
  /**
18
25
  * Options for configuring internationalization
19
26
  */
20
27
  export interface I18nOptions extends InitOptions {
21
- /** Resources for translations */
22
- resources?: Record<string, Record<string, Record<string, string>>>;
23
- /** Default language */
28
+ resources?: I18nResourceBundle;
24
29
  lng?: string;
25
- /** Fallback language */
26
30
  fallbackLng?: string;
27
- /** Namespaces */
28
31
  ns?: string[];
29
- /** Default namespace */
30
32
  defaultNS?: string;
31
- /** Interpolation options */
33
+ fsTranslationsPath?: string;
32
34
  interpolation?: {
33
35
  escapeValue?: boolean;
34
36
  };
35
37
  }
38
+ /**
39
+ * Namespaces helper for typed translation.
40
+ * This matches the ns object in I18n class.
41
+ */
42
+ export interface I18nNamespaces {
43
+ common: TFunction;
44
+ kernel: TFunction;
45
+ filesystem: TFunction;
46
+ coreutils: TFunction;
47
+ terminal: TFunction;
48
+ }
49
+ /**
50
+ * Interface for internationalization functionality.
51
+ *
52
+ * Mirrors i18n API and helpers from kernel/src/tree/i18n.ts.
53
+ */
54
+ export interface I18n {
55
+ /** Get the i18next instance */
56
+ readonly i18next: typeof i18next;
57
+ /** Get the current language */
58
+ readonly language: string;
59
+ /** Get the translation function */
60
+ readonly t: TFunction;
61
+ /** Get fixed translation functions for particular namespaces */
62
+ readonly ns: I18nNamespaces;
63
+ /**
64
+ * Converts a locale string to a language code
65
+ * Examples: 'en_US' -> 'en', 'es_ES' -> 'es', 'en' -> 'en'
66
+ */
67
+ localeToLanguage(locale: string): string;
68
+ /**
69
+ * Sets the language for i18next
70
+ * @param locale - Locale string (e.g., 'en_US', 'es_ES', 'en', 'es')
71
+ */
72
+ setLanguage(locale: string): void;
73
+ loadFilesystemResources(fs: I18nFilesystemAdapter, rootPath?: string): Promise<I18nResourceLoadResult>;
74
+ }
36
75
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../i18n.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAA;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,mCAAmC;IACnC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAClE,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;IACb,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,aAAa,CAAC,EAAE;QACd,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;CACF"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../i18n.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAEvF,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,IAAI,OAAO,CAAA;KAAE,CAAC,CAAA;CACxD;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE;QACd,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,SAAS,CAAA;IACrB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAA;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,mCAAmC;IACnC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAA;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACxC;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,CACrB,EAAE,EAAE,qBAAqB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CAAA;CACnC"}
package/dist/kernel.d.ts CHANGED
@@ -151,7 +151,9 @@ export interface KernelOptions {
151
151
  devices?: Record<string, KernelDevice>;
152
152
  dom?: DomOptions;
153
153
  filesystem?: FilesystemOptions<FilesystemConfigMounts>;
154
- i18n?: InitOptions;
154
+ i18n?: InitOptions & {
155
+ fsTranslationsPath?: string;
156
+ };
155
157
  log?: LogOptions;
156
158
  service?: ServiceOptions;
157
159
  socket?: WebSocket;
@@ -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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"}
@@ -197,6 +197,19 @@ export interface Terminal extends XTerm {
197
197
  * Get input stream
198
198
  */
199
199
  getInputStream(): ReadableStream<Uint8Array>;
200
+ /**
201
+ * Get a new input stream with a close function to signal EOF.
202
+ * Use this when you need to close the stream gracefully (e.g., for Ctrl+D).
203
+ */
204
+ getInputStreamWithClose(): {
205
+ stream: ReadableStream<Uint8Array>;
206
+ close: () => void;
207
+ };
208
+ /**
209
+ * Dispatch data to all stdin subscribers.
210
+ * Used to send keyboard input to processes reading from stdin.
211
+ */
212
+ dispatchStdin(key: string): void;
200
213
  /**
201
214
  * Write text to terminal
202
215
  * @param data - Text to write
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../terminal.ts"],"names":[],"mappings":"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"}
package/dist/wasm.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WebAssembly management types and interfaces
3
3
  */
4
- import type { Kernel } from './kernel.ts';
4
+ import type { Kernel, Shell } from './index.ts';
5
5
  /**
6
6
  * Options for configuring WebAssembly management
7
7
  */
@@ -9,6 +9,26 @@ export interface WasmOptions {
9
9
  /** Reference to kernel instance */
10
10
  kernel: Kernel;
11
11
  }
12
+ /**
13
+ * Stream options for WASI component loading
14
+ */
15
+ export interface WasiStreamOptions {
16
+ /** Standard input stream */
17
+ stdin: ReadableStream<Uint8Array>;
18
+ /** Standard output stream */
19
+ stdout: WritableStream<Uint8Array>;
20
+ /** Standard error stream */
21
+ stderr: WritableStream<Uint8Array>;
22
+ }
23
+ /**
24
+ * Result of loading a WASI component
25
+ */
26
+ export interface WasiComponentResult {
27
+ /** WebAssembly instance */
28
+ instance: WebAssembly.Instance;
29
+ /** Promise that resolves to the exit code */
30
+ exitCode: Promise<number>;
31
+ }
12
32
  /**
13
33
  * Interface for WebAssembly management functionality
14
34
  */
@@ -26,5 +46,21 @@ export interface Wasm {
26
46
  module: WebAssembly.Module;
27
47
  instance: WebAssembly.Instance;
28
48
  }>;
49
+ /**
50
+ * Detect if a WASM module requires WASI bindings
51
+ * @param wasmBytes - The WASM module bytes
52
+ * @returns True if WASI is required, false otherwise
53
+ */
54
+ detectWasiRequirements(wasmBytes: Uint8Array): Promise<boolean>;
55
+ /**
56
+ * Load a WASI component with stream integration
57
+ * @param path - Path to the WASM file
58
+ * @param streams - Stream options for stdin/stdout/stderr
59
+ * @param args - Command line arguments
60
+ * @param shell - Optional shell instance to use for environment variables
61
+ * @param pid - Optional process ID for the WASM execution context
62
+ * @returns The WASM instance and exit code promise
63
+ */
64
+ loadWasiComponent(path: string, streams: WasiStreamOptions, args?: string[], shell?: Shell, pid?: number): Promise<WasiComponentResult>;
29
65
  }
30
66
  //# sourceMappingURL=wasm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../wasm.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAA;KAAE,CAAC,CAAA;CAChG"}
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../wasm.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACjC,6BAA6B;IAC7B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IAClC,4BAA4B;IAC5B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAA;IAC9B,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAA;KAAE,CAAC,CAAA;IAE/F;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE/D;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACxI"}
package/i18n.ts CHANGED
@@ -6,33 +6,77 @@ import type { InitOptions, TFunction } from 'i18next'
6
6
  import type i18next from 'i18next'
7
7
 
8
8
  /**
9
- * Interface for internationalization functionality
9
+ * Utility describing the shape of a translation resources object.
10
+ * Example: { en: { common: { ... }, kernel: { ... } }, es: { ... } }
10
11
  */
11
- export interface I18n {
12
- /** Get the i18next instance */
13
- readonly i18next: typeof i18next
14
- /** Get the current language */
15
- readonly language: string
16
- /** Get the translation function */
17
- readonly t: TFunction
12
+ export type I18nResourceBundle = Record<string, Record<string, Record<string, string>>>
13
+
14
+ export interface I18nFilesystemAdapter {
15
+ exists(path: string): Promise<boolean>
16
+ readdir(path: string): Promise<string[]>
17
+ readFile(path: string, encoding: 'utf-8'): Promise<string>
18
+ stat(path: string): Promise<{ isDirectory(): boolean }>
19
+ }
20
+
21
+ export interface I18nResourceLoadResult {
22
+ bundles: number
23
+ files: number
24
+ errors: string[]
18
25
  }
19
26
 
20
27
  /**
21
28
  * Options for configuring internationalization
22
29
  */
23
30
  export interface I18nOptions extends InitOptions {
24
- /** Resources for translations */
25
- resources?: Record<string, Record<string, Record<string, string>>>
26
- /** Default language */
31
+ resources?: I18nResourceBundle
27
32
  lng?: string
28
- /** Fallback language */
29
33
  fallbackLng?: string
30
- /** Namespaces */
31
34
  ns?: string[]
32
- /** Default namespace */
33
35
  defaultNS?: string
34
- /** Interpolation options */
36
+ fsTranslationsPath?: string
35
37
  interpolation?: {
36
38
  escapeValue?: boolean
37
39
  }
38
- }
40
+ }
41
+
42
+ /**
43
+ * Namespaces helper for typed translation.
44
+ * This matches the ns object in I18n class.
45
+ */
46
+ export interface I18nNamespaces {
47
+ common: TFunction
48
+ kernel: TFunction
49
+ filesystem: TFunction
50
+ coreutils: TFunction
51
+ terminal: TFunction
52
+ }
53
+
54
+ /**
55
+ * Interface for internationalization functionality.
56
+ *
57
+ * Mirrors i18n API and helpers from kernel/src/tree/i18n.ts.
58
+ */
59
+ export interface I18n {
60
+ /** Get the i18next instance */
61
+ readonly i18next: typeof i18next
62
+ /** Get the current language */
63
+ readonly language: string
64
+ /** Get the translation function */
65
+ readonly t: TFunction
66
+ /** Get fixed translation functions for particular namespaces */
67
+ readonly ns: I18nNamespaces
68
+ /**
69
+ * Converts a locale string to a language code
70
+ * Examples: 'en_US' -> 'en', 'es_ES' -> 'es', 'en' -> 'en'
71
+ */
72
+ localeToLanguage(locale: string): string
73
+ /**
74
+ * Sets the language for i18next
75
+ * @param locale - Locale string (e.g., 'en_US', 'es_ES', 'en', 'es')
76
+ */
77
+ setLanguage(locale: string): void
78
+ loadFilesystemResources(
79
+ fs: I18nFilesystemAdapter,
80
+ rootPath?: string
81
+ ): Promise<I18nResourceLoadResult>
82
+ }
package/kernel.ts CHANGED
@@ -233,7 +233,9 @@ export interface KernelOptions {
233
233
  devices?: Record<string, KernelDevice>
234
234
  dom?: DomOptions
235
235
  filesystem?: FilesystemOptions<FilesystemConfigMounts>
236
- i18n?: InitOptions
236
+ i18n?: InitOptions & {
237
+ fsTranslationsPath?: string
238
+ }
237
239
  log?: LogOptions
238
240
  service?: ServiceOptions
239
241
  socket?: WebSocket
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecmaos/types",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "Type definitions for ecmaOS",
5
5
  "author": "Jay Mathis",
6
6
  "license": "MIT+Apache-2.0",
package/terminal.ts CHANGED
@@ -231,6 +231,18 @@ export interface Terminal extends XTerm {
231
231
  */
232
232
  getInputStream(): ReadableStream<Uint8Array>
233
233
 
234
+ /**
235
+ * Get a new input stream with a close function to signal EOF.
236
+ * Use this when you need to close the stream gracefully (e.g., for Ctrl+D).
237
+ */
238
+ getInputStreamWithClose(): { stream: ReadableStream<Uint8Array>, close: () => void }
239
+
240
+ /**
241
+ * Dispatch data to all stdin subscribers.
242
+ * Used to send keyboard input to processes reading from stdin.
243
+ */
244
+ dispatchStdin(key: string): void
245
+
234
246
  /**
235
247
  * Write text to terminal
236
248
  * @param data - Text to write
package/wasm.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * WebAssembly management types and interfaces
3
3
  */
4
4
 
5
- import type { Kernel } from './kernel.ts'
5
+ import type { Kernel, Shell } from './index.ts'
6
6
 
7
7
  /**
8
8
  * Options for configuring WebAssembly management
@@ -12,6 +12,28 @@ export interface WasmOptions {
12
12
  kernel: Kernel
13
13
  }
14
14
 
15
+ /**
16
+ * Stream options for WASI component loading
17
+ */
18
+ export interface WasiStreamOptions {
19
+ /** Standard input stream */
20
+ stdin: ReadableStream<Uint8Array>
21
+ /** Standard output stream */
22
+ stdout: WritableStream<Uint8Array>
23
+ /** Standard error stream */
24
+ stderr: WritableStream<Uint8Array>
25
+ }
26
+
27
+ /**
28
+ * Result of loading a WASI component
29
+ */
30
+ export interface WasiComponentResult {
31
+ /** WebAssembly instance */
32
+ instance: WebAssembly.Instance
33
+ /** Promise that resolves to the exit code */
34
+ exitCode: Promise<number>
35
+ }
36
+
15
37
  /**
16
38
  * Interface for WebAssembly management functionality
17
39
  */
@@ -27,4 +49,22 @@ export interface Wasm {
27
49
  * @param path - Path to the WebAssembly module
28
50
  */
29
51
  loadWasm(path: string): Promise<{ module: WebAssembly.Module; instance: WebAssembly.Instance }>
52
+
53
+ /**
54
+ * Detect if a WASM module requires WASI bindings
55
+ * @param wasmBytes - The WASM module bytes
56
+ * @returns True if WASI is required, false otherwise
57
+ */
58
+ detectWasiRequirements(wasmBytes: Uint8Array): Promise<boolean>
59
+
60
+ /**
61
+ * Load a WASI component with stream integration
62
+ * @param path - Path to the WASM file
63
+ * @param streams - Stream options for stdin/stdout/stderr
64
+ * @param args - Command line arguments
65
+ * @param shell - Optional shell instance to use for environment variables
66
+ * @param pid - Optional process ID for the WASM execution context
67
+ * @returns The WASM instance and exit code promise
68
+ */
69
+ loadWasiComponent(path: string, streams: WasiStreamOptions, args?: string[], shell?: Shell, pid?: number): Promise<WasiComponentResult>
30
70
  }