@unicity-astrid/sdk 0.1.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/README.md +120 -0
- package/dist/approval.d.ts +23 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +29 -0
- package/dist/approval.js.map +1 -0
- package/dist/capabilities.d.ts +14 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +19 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/capsule.d.ts +39 -0
- package/dist/capsule.d.ts.map +1 -0
- package/dist/capsule.js +67 -0
- package/dist/capsule.js.map +1 -0
- package/dist/contracts.d.ts +1104 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +4 -0
- package/dist/contracts.js.map +1 -0
- package/dist/elicit.d.ts +30 -0
- package/dist/elicit.d.ts.map +1 -0
- package/dist/elicit.js +103 -0
- package/dist/elicit.js.map +1 -0
- package/dist/env.d.ts +19 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +27 -0
- package/dist/env.js.map +1 -0
- package/dist/errors.d.ts +46 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +108 -0
- package/dist/errors.js.map +1 -0
- package/dist/fs.d.ts +135 -0
- package/dist/fs.d.ts.map +1 -0
- package/dist/fs.js +257 -0
- package/dist/fs.js.map +1 -0
- package/dist/http.d.ts +90 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +276 -0
- package/dist/http.js.map +1 -0
- package/dist/identity.d.ts +46 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +69 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors.d.ts +21 -0
- package/dist/interceptors.d.ts.map +1 -0
- package/dist/interceptors.js +22 -0
- package/dist/interceptors.js.map +1 -0
- package/dist/ipc.d.ts +143 -0
- package/dist/ipc.d.ts.map +1 -0
- package/dist/ipc.js +261 -0
- package/dist/ipc.js.map +1 -0
- package/dist/kv.d.ts +45 -0
- package/dist/kv.d.ts.map +1 -0
- package/dist/kv.js +91 -0
- package/dist/kv.js.map +1 -0
- package/dist/log.d.ts +17 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +40 -0
- package/dist/log.js.map +1 -0
- package/dist/net.d.ts +154 -0
- package/dist/net.d.ts.map +1 -0
- package/dist/net.js +421 -0
- package/dist/net.js.map +1 -0
- package/dist/process.d.ts +77 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +128 -0
- package/dist/process.js.map +1 -0
- package/dist/runtime/bridge.d.ts +34 -0
- package/dist/runtime/bridge.d.ts.map +1 -0
- package/dist/runtime/bridge.js +326 -0
- package/dist/runtime/bridge.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/registry.d.ts +58 -0
- package/dist/runtime/registry.d.ts.map +1 -0
- package/dist/runtime/registry.js +129 -0
- package/dist/runtime/registry.js.map +1 -0
- package/dist/runtime.d.ts +36 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +50 -0
- package/dist/runtime.js.map +1 -0
- package/dist/time.d.ts +29 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +43 -0
- package/dist/time.js.map +1 -0
- package/dist/tool.d.ts +48 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +86 -0
- package/dist/tool.js.map +1 -0
- package/dist/uplink.d.ts +27 -0
- package/dist/uplink.d.ts.map +1 -0
- package/dist/uplink.js +36 -0
- package/dist/uplink.js.map +1 -0
- package/package.json +38 -0
- package/src/approval.ts +38 -0
- package/src/capabilities.ts +22 -0
- package/src/capsule.ts +90 -0
- package/src/contracts.ts +1189 -0
- package/src/elicit.ts +136 -0
- package/src/env.ts +31 -0
- package/src/errors.ts +122 -0
- package/src/fs.ts +357 -0
- package/src/http.ts +345 -0
- package/src/identity.ts +101 -0
- package/src/index.ts +83 -0
- package/src/interceptors.ts +25 -0
- package/src/ipc.ts +354 -0
- package/src/kv.ts +123 -0
- package/src/log.ts +43 -0
- package/src/net.ts +545 -0
- package/src/process.ts +205 -0
- package/src/runtime/bridge.ts +374 -0
- package/src/runtime/index.ts +11 -0
- package/src/runtime/registry.ts +178 -0
- package/src/runtime.ts +70 -0
- package/src/time.ts +48 -0
- package/src/tool.ts +125 -0
- package/src/uplink.ts +49 -0
- package/src/wit-imports.d.ts +689 -0
- package/wit-contracts/astrid-contracts.wit +1266 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,qDAAqD"}
|
package/dist/elicit.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive user input during install/upgrade. Mirrors `astrid_sdk::elicit`.
|
|
3
|
+
*
|
|
4
|
+
* These functions are only callable from `@install` / `@upgrade` lifecycle
|
|
5
|
+
* methods; calling them from a tool or interceptor returns `not-in-lifecycle`.
|
|
6
|
+
* The host blocks the WASM thread until the frontend collects input or the
|
|
7
|
+
* request times out (120s).
|
|
8
|
+
*
|
|
9
|
+
* Post per-domain WIT split, the host returns a typed `elicit-response`
|
|
10
|
+
* variant directly. We unpack it into the language-natural shape: `text` /
|
|
11
|
+
* `textWithDefault` / `select` return strings; `array` returns string[];
|
|
12
|
+
* `secret` returns void (the value never leaves the SecretStore).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Store a secret via the kernel's SecretStore. The capsule NEVER receives
|
|
16
|
+
* the value back — verify via {@link hasSecret} and dereference at runtime
|
|
17
|
+
* by name.
|
|
18
|
+
*/
|
|
19
|
+
export declare function secret(key: string, description: string): void;
|
|
20
|
+
/** Check whether a secret with this key was previously stored. */
|
|
21
|
+
export declare function hasSecret(key: string): boolean;
|
|
22
|
+
/** Prompt the user for a text value. */
|
|
23
|
+
export declare function text(key: string, description: string): string;
|
|
24
|
+
/** Prompt with a pre-filled default. */
|
|
25
|
+
export declare function textWithDefault(key: string, description: string, defaultValue: string): string;
|
|
26
|
+
/** Prompt for a selection from a list. */
|
|
27
|
+
export declare function select(key: string, description: string, options: string[]): string;
|
|
28
|
+
/** Prompt for multiple text values. */
|
|
29
|
+
export declare function array(key: string, description: string): string[];
|
|
30
|
+
//# sourceMappingURL=elicit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elicit.d.ts","sourceRoot":"","sources":["../src/elicit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAgB7D;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAG9C;AAED,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED,0CAA0C;AAC1C,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBlF;AAED,uCAAuC;AACvC,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAehE"}
|
package/dist/elicit.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive user input during install/upgrade. Mirrors `astrid_sdk::elicit`.
|
|
3
|
+
*
|
|
4
|
+
* These functions are only callable from `@install` / `@upgrade` lifecycle
|
|
5
|
+
* methods; calling them from a tool or interceptor returns `not-in-lifecycle`.
|
|
6
|
+
* The host blocks the WASM thread until the frontend collects input or the
|
|
7
|
+
* request times out (120s).
|
|
8
|
+
*
|
|
9
|
+
* Post per-domain WIT split, the host returns a typed `elicit-response`
|
|
10
|
+
* variant directly. We unpack it into the language-natural shape: `text` /
|
|
11
|
+
* `textWithDefault` / `select` return strings; `array` returns string[];
|
|
12
|
+
* `secret` returns void (the value never leaves the SecretStore).
|
|
13
|
+
*/
|
|
14
|
+
import { elicit as hostElicit, hasSecret as hostHasSecret, } from "astrid:elicit/host@1.0.0";
|
|
15
|
+
import { SysError, callHost } from "./errors.js";
|
|
16
|
+
function validateKey(key) {
|
|
17
|
+
if (key.trim() === "") {
|
|
18
|
+
throw SysError.api("elicit key must not be empty");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Store a secret via the kernel's SecretStore. The capsule NEVER receives
|
|
23
|
+
* the value back — verify via {@link hasSecret} and dereference at runtime
|
|
24
|
+
* by name.
|
|
25
|
+
*/
|
|
26
|
+
export function secret(key, description) {
|
|
27
|
+
validateKey(key);
|
|
28
|
+
const resp = callHost(`elicit.secret(${JSON.stringify(key)})`, () => hostElicit({
|
|
29
|
+
kind: "secret",
|
|
30
|
+
key,
|
|
31
|
+
description,
|
|
32
|
+
options: undefined,
|
|
33
|
+
defaultValue: undefined,
|
|
34
|
+
}));
|
|
35
|
+
if (resp.tag !== "secret-stored") {
|
|
36
|
+
throw SysError.api(`elicit.secret: expected 'secret-stored' response, got '${resp.tag}'`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Check whether a secret with this key was previously stored. */
|
|
40
|
+
export function hasSecret(key) {
|
|
41
|
+
validateKey(key);
|
|
42
|
+
return callHost(`elicit.hasSecret(${JSON.stringify(key)})`, () => hostHasSecret(key));
|
|
43
|
+
}
|
|
44
|
+
/** Prompt the user for a text value. */
|
|
45
|
+
export function text(key, description) {
|
|
46
|
+
return elicitText(key, description, undefined);
|
|
47
|
+
}
|
|
48
|
+
/** Prompt with a pre-filled default. */
|
|
49
|
+
export function textWithDefault(key, description, defaultValue) {
|
|
50
|
+
return elicitText(key, description, defaultValue);
|
|
51
|
+
}
|
|
52
|
+
/** Prompt for a selection from a list. */
|
|
53
|
+
export function select(key, description, options) {
|
|
54
|
+
validateKey(key);
|
|
55
|
+
if (options.length === 0) {
|
|
56
|
+
throw SysError.api("elicit.select requires at least one option");
|
|
57
|
+
}
|
|
58
|
+
const resp = callHost(`elicit.select(${JSON.stringify(key)})`, () => hostElicit({
|
|
59
|
+
kind: "select",
|
|
60
|
+
key,
|
|
61
|
+
description,
|
|
62
|
+
options,
|
|
63
|
+
defaultValue: undefined,
|
|
64
|
+
}));
|
|
65
|
+
const value = expectValue("elicit.select", resp);
|
|
66
|
+
if (options.indexOf(value) < 0) {
|
|
67
|
+
throw SysError.api(`host returned value not in provided options: ${value.slice(0, 64)}`);
|
|
68
|
+
}
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
/** Prompt for multiple text values. */
|
|
72
|
+
export function array(key, description) {
|
|
73
|
+
validateKey(key);
|
|
74
|
+
const resp = callHost(`elicit.array(${JSON.stringify(key)})`, () => hostElicit({
|
|
75
|
+
kind: "array",
|
|
76
|
+
key,
|
|
77
|
+
description,
|
|
78
|
+
options: undefined,
|
|
79
|
+
defaultValue: undefined,
|
|
80
|
+
}));
|
|
81
|
+
if (resp.tag !== "values") {
|
|
82
|
+
throw SysError.api(`elicit.array: expected 'values' response, got '${resp.tag}'`);
|
|
83
|
+
}
|
|
84
|
+
return resp.val;
|
|
85
|
+
}
|
|
86
|
+
function elicitText(key, description, defaultValue) {
|
|
87
|
+
validateKey(key);
|
|
88
|
+
const resp = callHost(`elicit.text(${JSON.stringify(key)})`, () => hostElicit({
|
|
89
|
+
kind: "text",
|
|
90
|
+
key,
|
|
91
|
+
description,
|
|
92
|
+
options: undefined,
|
|
93
|
+
defaultValue,
|
|
94
|
+
}));
|
|
95
|
+
return expectValue("elicit.text", resp);
|
|
96
|
+
}
|
|
97
|
+
function expectValue(label, resp) {
|
|
98
|
+
if (resp.tag !== "value") {
|
|
99
|
+
throw SysError.api(`${label}: expected 'value' response, got '${resp.tag}'`);
|
|
100
|
+
}
|
|
101
|
+
return resp.val;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=elicit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elicit.js","sourceRoot":"","sources":["../src/elicit.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capsule configuration — Astrid's equivalent of environment variables.
|
|
3
|
+
* Mirrors `astrid_sdk::env`. Values are injected by the kernel at load time
|
|
4
|
+
* from `Capsule.toml [env]` entries.
|
|
5
|
+
*
|
|
6
|
+
* Per the per-domain WIT split, `get-config` now returns `option<string>` so
|
|
7
|
+
* the caller can distinguish "key not set" from "key explicitly set to empty
|
|
8
|
+
* string". The wrapper preserves that distinction via {@link tryGet}; {@link get}
|
|
9
|
+
* collapses `none` to `""` for the std::env::var-style ergonomic case.
|
|
10
|
+
*/
|
|
11
|
+
/** Well-known config key carrying the kernel's Unix domain socket path. */
|
|
12
|
+
export declare const CONFIG_SOCKET_PATH = "ASTRID_SOCKET_PATH";
|
|
13
|
+
/** Read a config value. Returns `""` if the key is not set. */
|
|
14
|
+
export declare function get(key: string): string;
|
|
15
|
+
/** Read a config value or `undefined` if not set. */
|
|
16
|
+
export declare function tryGet(key: string): string | undefined;
|
|
17
|
+
/** Read a config value as bytes. */
|
|
18
|
+
export declare function getBytes(key: string): Uint8Array;
|
|
19
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,+DAA+D;AAC/D,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,qDAAqD;AACrD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtD;AAED,oCAAoC;AACpC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEhD"}
|
package/dist/env.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capsule configuration — Astrid's equivalent of environment variables.
|
|
3
|
+
* Mirrors `astrid_sdk::env`. Values are injected by the kernel at load time
|
|
4
|
+
* from `Capsule.toml [env]` entries.
|
|
5
|
+
*
|
|
6
|
+
* Per the per-domain WIT split, `get-config` now returns `option<string>` so
|
|
7
|
+
* the caller can distinguish "key not set" from "key explicitly set to empty
|
|
8
|
+
* string". The wrapper preserves that distinction via {@link tryGet}; {@link get}
|
|
9
|
+
* collapses `none` to `""` for the std::env::var-style ergonomic case.
|
|
10
|
+
*/
|
|
11
|
+
import { getConfig } from "astrid:sys/host@1.0.0";
|
|
12
|
+
import { callHost } from "./errors.js";
|
|
13
|
+
/** Well-known config key carrying the kernel's Unix domain socket path. */
|
|
14
|
+
export const CONFIG_SOCKET_PATH = "ASTRID_SOCKET_PATH";
|
|
15
|
+
/** Read a config value. Returns `""` if the key is not set. */
|
|
16
|
+
export function get(key) {
|
|
17
|
+
return tryGet(key) ?? "";
|
|
18
|
+
}
|
|
19
|
+
/** Read a config value or `undefined` if not set. */
|
|
20
|
+
export function tryGet(key) {
|
|
21
|
+
return callHost(`env.get(${JSON.stringify(key)})`, () => getConfig(key));
|
|
22
|
+
}
|
|
23
|
+
/** Read a config value as bytes. */
|
|
24
|
+
export function getBytes(key) {
|
|
25
|
+
return new TextEncoder().encode(get(key));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,+DAA+D;AAC/D,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,QAAQ,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified error type for SDK operations. Mirrors `astrid_sdk::SysError` but
|
|
3
|
+
* uses idiomatic JS throw/catch instead of `Result<T, E>`.
|
|
4
|
+
*
|
|
5
|
+
* Post per-domain-WIT migration, every fallible host call returns a typed
|
|
6
|
+
* `result<T, error-code>` where `error-code` is a domain-specific variant
|
|
7
|
+
* (e.g. `astrid:fs/host.error-code`, `astrid:ipc/host.error-code`).
|
|
8
|
+
* ComponentizeJS rejects with `{ tag, val? }` objects on the error arm. We
|
|
9
|
+
* preserve the variant tag on `SysError.code` so downstream code can branch
|
|
10
|
+
* on `if (err.code === "quota") ...` without losing the typed kind. The
|
|
11
|
+
* raw payload (the unpacked variant value, if any) survives on `err.payload`
|
|
12
|
+
* for the few callers that need it.
|
|
13
|
+
*
|
|
14
|
+
* The three legacy origin tags — `HostError`, `JsonError`, `ApiError` —
|
|
15
|
+
* remain on `SysError.kind` for source compatibility. Code that previously
|
|
16
|
+
* checked `err.code` for "HostError" should migrate to `err.kind` because
|
|
17
|
+
* `err.code` now carries the WIT variant tag.
|
|
18
|
+
*/
|
|
19
|
+
export type SysErrorKind = "HostError" | "JsonError" | "ApiError";
|
|
20
|
+
export declare class SysError extends Error {
|
|
21
|
+
readonly name = "SysError";
|
|
22
|
+
/** Legacy classification: where the error originated. */
|
|
23
|
+
readonly kind: SysErrorKind;
|
|
24
|
+
/** Typed WIT variant tag (e.g. "quota", "capability-denied", "timeout").
|
|
25
|
+
* `undefined` for SDK-internal errors that didn't come from the host. */
|
|
26
|
+
readonly code: string | undefined;
|
|
27
|
+
/** Raw unpacked WIT variant payload, when present. */
|
|
28
|
+
readonly payload: unknown;
|
|
29
|
+
constructor(kind: SysErrorKind, message: string, options?: ErrorOptions & {
|
|
30
|
+
code?: string;
|
|
31
|
+
payload?: unknown;
|
|
32
|
+
});
|
|
33
|
+
static host(message: string, cause?: unknown, code?: string, payload?: unknown): SysError;
|
|
34
|
+
static json(message: string, cause?: unknown): SysError;
|
|
35
|
+
static api(message: string, cause?: unknown): SysError;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Wraps a synchronous host call, normalizing any thrown value into a
|
|
39
|
+
* `SysError`. After the per-domain WIT split, host imports throw
|
|
40
|
+
* `{ tag, val? }` objects representing the typed error-code variant.
|
|
41
|
+
* We unpack the tag onto `SysError.code` so capsule authors can branch
|
|
42
|
+
* on the WIT variant by name. The raw payload (the unpacked `val`, if any)
|
|
43
|
+
* survives on `SysError.payload` for callers that need it.
|
|
44
|
+
*/
|
|
45
|
+
export declare function callHost<T>(label: string, fn: () => T): T;
|
|
46
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAElE,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAkB,IAAI,cAAc;IACpC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B;8EAC0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAGxB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;IAQ/D,MAAM,CAAC,IAAI,CACT,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ;IAQX,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ;IAIvD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ;CAGvD;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAYzD"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified error type for SDK operations. Mirrors `astrid_sdk::SysError` but
|
|
3
|
+
* uses idiomatic JS throw/catch instead of `Result<T, E>`.
|
|
4
|
+
*
|
|
5
|
+
* Post per-domain-WIT migration, every fallible host call returns a typed
|
|
6
|
+
* `result<T, error-code>` where `error-code` is a domain-specific variant
|
|
7
|
+
* (e.g. `astrid:fs/host.error-code`, `astrid:ipc/host.error-code`).
|
|
8
|
+
* ComponentizeJS rejects with `{ tag, val? }` objects on the error arm. We
|
|
9
|
+
* preserve the variant tag on `SysError.code` so downstream code can branch
|
|
10
|
+
* on `if (err.code === "quota") ...` without losing the typed kind. The
|
|
11
|
+
* raw payload (the unpacked variant value, if any) survives on `err.payload`
|
|
12
|
+
* for the few callers that need it.
|
|
13
|
+
*
|
|
14
|
+
* The three legacy origin tags — `HostError`, `JsonError`, `ApiError` —
|
|
15
|
+
* remain on `SysError.kind` for source compatibility. Code that previously
|
|
16
|
+
* checked `err.code` for "HostError" should migrate to `err.kind` because
|
|
17
|
+
* `err.code` now carries the WIT variant tag.
|
|
18
|
+
*/
|
|
19
|
+
export class SysError extends Error {
|
|
20
|
+
name = "SysError";
|
|
21
|
+
/** Legacy classification: where the error originated. */
|
|
22
|
+
kind;
|
|
23
|
+
/** Typed WIT variant tag (e.g. "quota", "capability-denied", "timeout").
|
|
24
|
+
* `undefined` for SDK-internal errors that didn't come from the host. */
|
|
25
|
+
code;
|
|
26
|
+
/** Raw unpacked WIT variant payload, when present. */
|
|
27
|
+
payload;
|
|
28
|
+
constructor(kind, message, options) {
|
|
29
|
+
super(`[${kind}${options?.code ? `:${options.code}` : ""}] ${message}`, options);
|
|
30
|
+
this.kind = kind;
|
|
31
|
+
this.code = options?.code;
|
|
32
|
+
this.payload = options?.payload;
|
|
33
|
+
}
|
|
34
|
+
static host(message, cause, code, payload) {
|
|
35
|
+
const opts = {};
|
|
36
|
+
if (cause !== undefined)
|
|
37
|
+
opts.cause = cause;
|
|
38
|
+
if (code !== undefined)
|
|
39
|
+
opts.code = code;
|
|
40
|
+
if (payload !== undefined)
|
|
41
|
+
opts.payload = payload;
|
|
42
|
+
return new SysError("HostError", message, opts);
|
|
43
|
+
}
|
|
44
|
+
static json(message, cause) {
|
|
45
|
+
return new SysError("JsonError", message, cause === undefined ? undefined : { cause });
|
|
46
|
+
}
|
|
47
|
+
static api(message, cause) {
|
|
48
|
+
return new SysError("ApiError", message, cause === undefined ? undefined : { cause });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Wraps a synchronous host call, normalizing any thrown value into a
|
|
53
|
+
* `SysError`. After the per-domain WIT split, host imports throw
|
|
54
|
+
* `{ tag, val? }` objects representing the typed error-code variant.
|
|
55
|
+
* We unpack the tag onto `SysError.code` so capsule authors can branch
|
|
56
|
+
* on the WIT variant by name. The raw payload (the unpacked `val`, if any)
|
|
57
|
+
* survives on `SysError.payload` for callers that need it.
|
|
58
|
+
*/
|
|
59
|
+
export function callHost(label, fn) {
|
|
60
|
+
try {
|
|
61
|
+
return fn();
|
|
62
|
+
}
|
|
63
|
+
catch (raw) {
|
|
64
|
+
if (raw instanceof SysError)
|
|
65
|
+
throw raw;
|
|
66
|
+
const wit = extractWitError(raw);
|
|
67
|
+
if (wit !== undefined) {
|
|
68
|
+
throw SysError.host(`${label}: ${wit.message}`, raw, wit.code, wit.payload);
|
|
69
|
+
}
|
|
70
|
+
const message = typeof raw === "string" ? raw : raw?.message ?? String(raw);
|
|
71
|
+
throw SysError.host(`${label}: ${message}`, raw);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Componentize-js rejects fallible host calls with `{ tag, val? }` shapes
|
|
76
|
+
* (the unpacked variant of `result<T, error-code>`). Strings or numbers
|
|
77
|
+
* occasionally surface for trap-style failures. This helper produces a
|
|
78
|
+
* uniform view of the variant for `callHost` to convert into `SysError`.
|
|
79
|
+
*/
|
|
80
|
+
function extractWitError(raw) {
|
|
81
|
+
if (raw === null || typeof raw !== "object")
|
|
82
|
+
return undefined;
|
|
83
|
+
const r = raw;
|
|
84
|
+
if (typeof r["tag"] !== "string")
|
|
85
|
+
return undefined;
|
|
86
|
+
const code = r["tag"];
|
|
87
|
+
const val = r["val"];
|
|
88
|
+
let message;
|
|
89
|
+
if (typeof val === "string") {
|
|
90
|
+
message = `${code}: ${val}`;
|
|
91
|
+
}
|
|
92
|
+
else if (val === undefined) {
|
|
93
|
+
message = code;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
message = `${code}: ${safeStringify(val)}`;
|
|
97
|
+
}
|
|
98
|
+
return { code, message, payload: val };
|
|
99
|
+
}
|
|
100
|
+
function safeStringify(v) {
|
|
101
|
+
try {
|
|
102
|
+
return JSON.stringify(v);
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return String(v);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/fs.d.ts
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Virtual filesystem — shape-compatible with `node:fs/promises` where it
|
|
3
|
+
* makes sense, including a `Stats`-like object with `isFile()` /
|
|
4
|
+
* `isDirectory()` methods.
|
|
5
|
+
*
|
|
6
|
+
* Path schemes follow VFS conventions (`workspace://`, `home://`, `tmp://`).
|
|
7
|
+
* The kernel re-resolves and re-validates every path on every call;
|
|
8
|
+
* {@link canonicalize} is for display / equality only, NOT a security check
|
|
9
|
+
* that subsequent calls can rely on.
|
|
10
|
+
*
|
|
11
|
+
* The Rust SDK's surface is sync (`std::fs`); we expose async (`await`) to
|
|
12
|
+
* match Node idioms even though the underlying host calls are synchronous.
|
|
13
|
+
* StarlingMonkey syncifies awaits at the WASM boundary.
|
|
14
|
+
*/
|
|
15
|
+
import { type FileStat, type FileHandle as WitFileHandle, type OpenMode, type FileType } from "astrid:fs/host@1.0.0";
|
|
16
|
+
export type { OpenMode, FileType } from "astrid:fs/host@1.0.0";
|
|
17
|
+
/**
|
|
18
|
+
* Stat result. Shaped like Node's `fs.Stats` for the fields the Astrid VFS
|
|
19
|
+
* surfaces. `size` is `bigint` (WIT `u64`); use `Number(size)` if you need a
|
|
20
|
+
* regular number and you're sure it fits.
|
|
21
|
+
*/
|
|
22
|
+
export declare class Stats {
|
|
23
|
+
readonly size: bigint;
|
|
24
|
+
readonly mode: number;
|
|
25
|
+
readonly kind: FileType;
|
|
26
|
+
readonly mtimeMs: number | undefined;
|
|
27
|
+
readonly birthtimeMs: number | undefined;
|
|
28
|
+
readonly atimeMs: number | undefined;
|
|
29
|
+
constructor(stat: FileStat);
|
|
30
|
+
isFile(): boolean;
|
|
31
|
+
isDirectory(): boolean;
|
|
32
|
+
isSymbolicLink(): boolean;
|
|
33
|
+
isEmpty(): boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Directory entry returned by `readdir({ withFileTypes: true })`. */
|
|
36
|
+
export declare class Dirent {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly path: string;
|
|
39
|
+
readonly parentPath: string;
|
|
40
|
+
constructor(parentPath: string, name: string);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Open file handle. Returned from {@link open}. The host releases the
|
|
44
|
+
* underlying file descriptor automatically when the handle is dropped via
|
|
45
|
+
* `Symbol.dispose` or `.close()`. Per-capsule cap: 16 open file handles.
|
|
46
|
+
*
|
|
47
|
+
* ```ts
|
|
48
|
+
* using f = await fs.open("workspace://data.bin", "read-write");
|
|
49
|
+
* await f.writeAt(0n, new TextEncoder().encode("hello"));
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class FileHandle {
|
|
53
|
+
#private;
|
|
54
|
+
readonly path: string;
|
|
55
|
+
constructor(inner: WitFileHandle, path: string);
|
|
56
|
+
/** Read up to `maxBytes` from `offset`. Empty result signals EOF at that offset. */
|
|
57
|
+
readAt(offset: bigint, maxBytes: number): Promise<Uint8Array>;
|
|
58
|
+
/** Write `data` at `offset`. Returns bytes actually written. */
|
|
59
|
+
writeAt(offset: bigint, data: Uint8Array): Promise<number>;
|
|
60
|
+
/** Flush buffered data (only) to disk — `fdatasync(2)`. */
|
|
61
|
+
syncData(): Promise<void>;
|
|
62
|
+
/** Flush both data and metadata to disk — `fsync(2)`. */
|
|
63
|
+
syncAll(): Promise<void>;
|
|
64
|
+
/** Race-free counterpart to {@link stat} on the path. */
|
|
65
|
+
stat(): Promise<Stats>;
|
|
66
|
+
/** Truncate or extend the file to `size` bytes. Extending past end fills with zeros. */
|
|
67
|
+
setLen(size: bigint): Promise<void>;
|
|
68
|
+
close(): void;
|
|
69
|
+
[Symbol.dispose](): void;
|
|
70
|
+
}
|
|
71
|
+
export interface ReadFileOptions {
|
|
72
|
+
/** When set, decode bytes as a string with this encoding. */
|
|
73
|
+
encoding?: "utf8";
|
|
74
|
+
}
|
|
75
|
+
export interface ReaddirOptions {
|
|
76
|
+
/** When true, yields `Dirent` objects instead of bare name strings. */
|
|
77
|
+
withFileTypes?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/** Open a file by path. Required capability depends on `mode`. */
|
|
80
|
+
export declare function open(path: string, mode: OpenMode): Promise<FileHandle>;
|
|
81
|
+
export declare function exists(path: string): Promise<boolean>;
|
|
82
|
+
export declare function stat(path: string): Promise<Stats>;
|
|
83
|
+
/** Stat without following symlinks — `lstat(2)`. */
|
|
84
|
+
export declare function lstat(path: string): Promise<Stats>;
|
|
85
|
+
export declare function readFile(path: string, options?: ReadFileOptions): Promise<Uint8Array | string>;
|
|
86
|
+
/** Read a file as UTF-8 text. */
|
|
87
|
+
export declare function readTextFile(path: string): Promise<string>;
|
|
88
|
+
export declare function writeFile(path: string, data: string | Uint8Array): Promise<void>;
|
|
89
|
+
/** Append `data` to a file, creating it if absent. */
|
|
90
|
+
export declare function appendFile(path: string, data: string | Uint8Array): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Create a directory. Mirrors `std::fs::create_dir` / `mkdir(2)` — strict.
|
|
93
|
+
* Fails with `already-exists` if the path exists. Use {@link mkdirAll} for
|
|
94
|
+
* idempotent "ensure-exists" semantics.
|
|
95
|
+
*/
|
|
96
|
+
export declare function mkdir(path: string): Promise<void>;
|
|
97
|
+
/** Create a directory and all missing parents. Idempotent. */
|
|
98
|
+
export declare function mkdirAll(path: string): Promise<void>;
|
|
99
|
+
/** Remove a file. Mirrors `fs.unlink` / `fs.rm` (file-only). */
|
|
100
|
+
export declare function rm(path: string): Promise<void>;
|
|
101
|
+
/** Alias for {@link rm} matching Node's `fs.unlink`. */
|
|
102
|
+
export declare const unlink: typeof rm;
|
|
103
|
+
/**
|
|
104
|
+
* Remove a directory and all its contents recursively. Refuses to traverse
|
|
105
|
+
* symlinks to prevent sandbox escapes. Returns the count of removed entries.
|
|
106
|
+
*/
|
|
107
|
+
export declare function removeDirAll(path: string): Promise<bigint>;
|
|
108
|
+
/** Copy a file from `src` to `dst`. Overwrites `dst`. */
|
|
109
|
+
export declare function copy(src: string, dst: string): Promise<void>;
|
|
110
|
+
/** Rename (move) within the same VFS scheme. Cross-scheme returns `cross-vfs`. */
|
|
111
|
+
export declare function rename(src: string, dst: string): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Resolve a path to its canonical form, following symlinks. Returns a
|
|
114
|
+
* VFS-scheme path, never a host real-path. NOT a TOCTOU-safe security check.
|
|
115
|
+
*/
|
|
116
|
+
export declare function canonicalize(path: string): Promise<string>;
|
|
117
|
+
/** Read a symlink target without following it. */
|
|
118
|
+
export declare function readLink(path: string): Promise<string>;
|
|
119
|
+
/** Create a hard link. Both endpoints must be in the same VFS scheme. */
|
|
120
|
+
export declare function hardLink(src: string, linkPath: string): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Read directory entries. Returns string[] by default to match
|
|
123
|
+
* `fs.readdir(path)`; pass `{ withFileTypes: true }` for `Dirent[]`.
|
|
124
|
+
*/
|
|
125
|
+
export declare function readdir(path: string): Promise<string[]>;
|
|
126
|
+
export declare function readdir(path: string, options: {
|
|
127
|
+
withFileTypes: true;
|
|
128
|
+
}): Promise<Dirent[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Stream-style directory iteration. Mirrors `fs.opendir` / `Dir`. The VFS
|
|
131
|
+
* resolves all entries in one host call, so the async-iterator is fully
|
|
132
|
+
* populated up-front; the shape matches Node for compatibility.
|
|
133
|
+
*/
|
|
134
|
+
export declare function opendir(path: string): Promise<AsyncIterableIterator<Dirent>>;
|
|
135
|
+
//# sourceMappingURL=fs.d.ts.map
|
package/dist/fs.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
|