@ai-ecoverse/slicc-kernel 1.143.5 → 1.144.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 +15 -7
- package/dist/driver-worker.js +5 -1
- package/dist/driver-worker.js.map +2 -2
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/kernel-worker.js +7830 -7524
- package/dist/kernel-worker.js.map +4 -4
- package/dist/meta.js +1 -1
- package/dist/meta.js.map +2 -2
- package/dist/node-driver-worker.js +5 -1
- package/dist/node-driver-worker.js.map +2 -2
- package/dist/node-process-worker.js +212 -35
- package/dist/node-process-worker.js.map +3 -3
- package/dist/node.js +24174 -23864
- package/dist/node.js.map +4 -4
- package/dist/process-worker.js +212 -35
- package/dist/process-worker.js.map +3 -3
- package/dist/types/client/attach.d.ts +3 -0
- package/dist/types/client/protocol.d.ts +3 -0
- package/dist/types/client/serve-client.d.ts +1 -1
- package/dist/types/cron/crontab.d.ts +13 -1
- package/dist/types/cron/service.d.ts +2 -0
- package/dist/types/fs/changes.d.ts +4 -0
- package/dist/types/fs/dac.d.ts +2 -0
- package/dist/types/fs/meta.d.ts +4 -0
- package/dist/types/fs/opfs.d.ts +10 -0
- package/dist/types/fs/remote.d.ts +4 -0
- package/dist/types/fs/types.d.ts +4 -0
- package/dist/types/kernel/clipboard.d.ts +3 -2
- package/dist/types/kernel/host.d.ts +5 -0
- package/dist/types/kernel/proc-info.d.ts +1 -0
- package/dist/types/kernel/process.d.ts +1 -1
- package/dist/types/kernel/rename-log.d.ts +14 -0
- package/dist/types/kernel/sealed.d.ts +8 -3
- package/dist/types/kernel/vfs-file.d.ts +1 -0
- package/dist/types/launcher.d.ts +12 -1
- package/dist/types/process/wasi/wasi-fds.d.ts +4 -1
- package/dist/types/process/wasi/wasi-files.d.ts +2 -0
- package/dist/types/realm/live-vfs-fs.d.ts +8 -0
- package/dist/types/realm/sync-fs-token-registry.d.ts +5 -0
- package/dist/types/realm/sync-fs-wire.d.ts +7 -2
- package/dist/types/sudo.d.ts +2 -1
- package/package.json +7 -7
|
@@ -27,6 +27,7 @@ export interface SpawnOptions {
|
|
|
27
27
|
stdin?: string | Uint8Array;
|
|
28
28
|
group?: 'new';
|
|
29
29
|
pgid?: number;
|
|
30
|
+
tag?: string;
|
|
30
31
|
onStdout?: (bytes: Uint8Array) => void;
|
|
31
32
|
onStderr?: (bytes: Uint8Array) => void;
|
|
32
33
|
}
|
|
@@ -46,6 +47,7 @@ export interface ClientRunOptions {
|
|
|
46
47
|
user?: string | number;
|
|
47
48
|
env?: Record<string, string>;
|
|
48
49
|
stdin?: string | Uint8Array;
|
|
50
|
+
tag?: string;
|
|
49
51
|
onStdout?: (text: string) => void;
|
|
50
52
|
onStderr?: (text: string) => void;
|
|
51
53
|
}
|
|
@@ -62,6 +64,7 @@ export interface ClientTerminalOptions {
|
|
|
62
64
|
env?: Record<string, string>;
|
|
63
65
|
cols?: number;
|
|
64
66
|
rows?: number;
|
|
67
|
+
tag?: string;
|
|
65
68
|
onData?: (bytes: Uint8Array) => void;
|
|
66
69
|
}
|
|
67
70
|
export interface ClientTerminal {
|
|
@@ -21,6 +21,7 @@ export interface SpawnRequestOptions {
|
|
|
21
21
|
env?: Record<string, string>;
|
|
22
22
|
stdin?: Uint8Array;
|
|
23
23
|
pgid?: number;
|
|
24
|
+
tag?: string;
|
|
24
25
|
}
|
|
25
26
|
export interface TerminalRequestOptions {
|
|
26
27
|
cwd?: string;
|
|
@@ -28,6 +29,7 @@ export interface TerminalRequestOptions {
|
|
|
28
29
|
env?: Record<string, string>;
|
|
29
30
|
cols?: number;
|
|
30
31
|
rows?: number;
|
|
32
|
+
tag?: string;
|
|
31
33
|
}
|
|
32
34
|
export type TerminalAction = {
|
|
33
35
|
action: 'write';
|
|
@@ -139,6 +141,7 @@ export interface ProcessEntry {
|
|
|
139
141
|
uid?: number;
|
|
140
142
|
gid?: number;
|
|
141
143
|
tag?: string;
|
|
144
|
+
tags?: string[];
|
|
142
145
|
}
|
|
143
146
|
export interface MessagePortLike {
|
|
144
147
|
postMessage(message: unknown, transfer?: Transferable[]): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RealmTransport } from '../kernel/net/transport.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type Launcher } from '../launcher.js';
|
|
3
3
|
import { type LockManagerLike, type MessagePortLike } from './protocol.js';
|
|
4
4
|
export interface ClientHost {
|
|
5
5
|
scope?: 'transport';
|
|
@@ -2,6 +2,17 @@ import type { KernelFs } from '../fs/types.js';
|
|
|
2
2
|
import type { Cred } from '../kernel/cred.js';
|
|
3
3
|
import type { Account } from '../users.js';
|
|
4
4
|
export declare const CRONTAB_MAX: number;
|
|
5
|
+
export declare const TAGS_PATH = "/var/spool/cron/tags";
|
|
6
|
+
export interface JobTags {
|
|
7
|
+
tags: string[];
|
|
8
|
+
base: number;
|
|
9
|
+
}
|
|
10
|
+
export interface CrontabCaller {
|
|
11
|
+
tags?: readonly string[] | undefined;
|
|
12
|
+
base?: number | undefined;
|
|
13
|
+
}
|
|
14
|
+
export type TableTags = Record<string, Record<string, JobTags>>;
|
|
15
|
+
export declare function readTags(fs: KernelFs): Promise<TableTags>;
|
|
5
16
|
export interface CrontabCall {
|
|
6
17
|
op: 'proc-crontab';
|
|
7
18
|
action: 'list' | 'remove' | 'install';
|
|
@@ -22,6 +33,7 @@ export declare function crontabCall(req: Partial<CrontabCall>): CrontabCall | un
|
|
|
22
33
|
export declare class Crontabs {
|
|
23
34
|
private readonly o;
|
|
24
35
|
constructor(options: CrontabsOptions);
|
|
25
|
-
request(cred: Readonly<Cred>, call: CrontabCall): Promise<CrontabResult>;
|
|
36
|
+
request(cred: Readonly<Cred>, call: CrontabCall, caller?: CrontabCaller): Promise<CrontabResult>;
|
|
37
|
+
private retag;
|
|
26
38
|
private install;
|
|
27
39
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const SHARED_TTL_MS = 100;
|
|
2
|
+
export declare const RENAME_WAIT_MS = 100;
|
|
2
3
|
export declare const CHANGES_BYTES: number;
|
|
3
4
|
export declare function changeHash(path: string): number;
|
|
4
5
|
export declare class FileChanges {
|
|
@@ -8,6 +9,7 @@ export declare class FileChanges {
|
|
|
8
9
|
dirtied(delta: number): void;
|
|
9
10
|
foreign(on: boolean): void;
|
|
10
11
|
flush(): void;
|
|
12
|
+
renamed(): number;
|
|
11
13
|
publish(...paths: string[]): void;
|
|
12
14
|
}
|
|
13
15
|
export declare class ChangeView {
|
|
@@ -16,6 +18,8 @@ export declare class ChangeView {
|
|
|
16
18
|
now(): number;
|
|
17
19
|
clean(): boolean;
|
|
18
20
|
foreign(): boolean;
|
|
21
|
+
renames(): number;
|
|
22
|
+
awaitRename(seen: number, ms: number): number;
|
|
19
23
|
changedSince(seen: number, path: string): {
|
|
20
24
|
now: number;
|
|
21
25
|
changed: boolean;
|
package/dist/types/fs/dac.d.ts
CHANGED
|
@@ -20,8 +20,10 @@ export declare class Dac {
|
|
|
20
20
|
private readonly seen;
|
|
21
21
|
private suppressed;
|
|
22
22
|
tagOf: (pid: number) => string | undefined;
|
|
23
|
+
fenced: (pid: number, path: string) => boolean;
|
|
23
24
|
constructor(mode: 'report' | 'enforce', hook?: DenialHook, log?: (line: string) => void);
|
|
24
25
|
get enforcing(): boolean;
|
|
26
|
+
fence(denial: Denial): never;
|
|
25
27
|
denied(given: Denial): void;
|
|
26
28
|
private note;
|
|
27
29
|
}
|
package/dist/types/fs/meta.d.ts
CHANGED
|
@@ -70,6 +70,10 @@ export declare class MemoryMeta implements MetaStore {
|
|
|
70
70
|
interface Invalidation {
|
|
71
71
|
paths?: readonly string[];
|
|
72
72
|
trees?: readonly string[];
|
|
73
|
+
moved?: {
|
|
74
|
+
from: string;
|
|
75
|
+
to: string;
|
|
76
|
+
};
|
|
73
77
|
}
|
|
74
78
|
export declare class IndexedDbMeta implements MetaStore {
|
|
75
79
|
private readonly db;
|
package/dist/types/fs/opfs.d.ts
CHANGED
|
@@ -138,7 +138,17 @@ export declare class OpfsFs implements KernelFs {
|
|
|
138
138
|
pwrite(path: string, offset: number, bytes: Uint8Array): Promise<void>;
|
|
139
139
|
private keptFor;
|
|
140
140
|
private writeAt;
|
|
141
|
+
private readonly fileWrites;
|
|
142
|
+
private readonly movingFiles;
|
|
143
|
+
private writesIdle;
|
|
144
|
+
private writeBlocked;
|
|
145
|
+
private renamesInFlight;
|
|
146
|
+
private writeWaits;
|
|
147
|
+
private writeEnded;
|
|
148
|
+
private writesDrained;
|
|
149
|
+
private movingFile;
|
|
141
150
|
truncate(path: string, size: number): Promise<void>;
|
|
151
|
+
private truncated;
|
|
142
152
|
writeSession(path: string, truncate: boolean): Promise<WriteSession>;
|
|
143
153
|
readFile(path: string): Promise<string>;
|
|
144
154
|
private writeTarget;
|
package/dist/types/fs/types.d.ts
CHANGED
|
@@ -94,6 +94,10 @@ export interface KernelFs {
|
|
|
94
94
|
remoteChanges?(listener: (change: {
|
|
95
95
|
paths: readonly string[];
|
|
96
96
|
trees?: readonly string[];
|
|
97
|
+
moved?: {
|
|
98
|
+
from: string;
|
|
99
|
+
to: string;
|
|
100
|
+
};
|
|
97
101
|
}) => void): () => void;
|
|
98
102
|
peers?(): Peers | undefined;
|
|
99
103
|
crossings?(mounted: (path: string) => boolean): void;
|
|
@@ -10,6 +10,7 @@ export interface ClipboardStamp {
|
|
|
10
10
|
gid: number;
|
|
11
11
|
users: UsersMode;
|
|
12
12
|
tag?: string;
|
|
13
|
+
tags?: string[];
|
|
13
14
|
}
|
|
14
15
|
export interface ClipboardHook {
|
|
15
16
|
read(stamp: ClipboardStamp): Promise<string>;
|
|
@@ -41,8 +42,8 @@ export declare class ClipboardBroker {
|
|
|
41
42
|
readonly hook: ClipboardHook | undefined;
|
|
42
43
|
readonly users: UsersMode;
|
|
43
44
|
readonly timeoutMs: number;
|
|
44
|
-
readonly tagOf: (pid: number) => string | undefined;
|
|
45
|
-
constructor(hook: ClipboardHook | undefined, users: UsersMode, timeoutMs?: number, tagOf?: (pid: number) => string | undefined);
|
|
45
|
+
readonly tagOf: (pid: number) => readonly string[] | undefined;
|
|
46
|
+
constructor(hook: ClipboardHook | undefined, users: UsersMode, timeoutMs?: number, tagOf?: (pid: number) => readonly string[] | undefined);
|
|
46
47
|
ask<T>(work: (hook: ClipboardHook) => Promise<T>): Promise<T>;
|
|
47
48
|
open(access: OpenAccess, stamp: ClipboardStamp): OpenFile;
|
|
48
49
|
}
|
|
@@ -89,6 +89,11 @@ export interface SpawnWasmOptions {
|
|
|
89
89
|
quota: number;
|
|
90
90
|
usage: number;
|
|
91
91
|
} | undefined>;
|
|
92
|
+
renames?: (since: number, held: readonly string[]) => {
|
|
93
|
+
now: number;
|
|
94
|
+
renames: Array<[string, string]>;
|
|
95
|
+
};
|
|
96
|
+
renameSeq?: (from: string, to: string) => number | undefined;
|
|
92
97
|
mounts?: () => MountLine[];
|
|
93
98
|
mount?: WasmProcessOptions['mount'];
|
|
94
99
|
umount?: WasmProcessOptions['umount'];
|
|
@@ -23,7 +23,7 @@ import type { MountLine, ProcessListing } from './proc-info.js';
|
|
|
23
23
|
import type { DlState, ForkState } from './protocol.js';
|
|
24
24
|
import { type PtySyscall, type PtyTable } from './pty.js';
|
|
25
25
|
import { type RunRequest } from './run-child.js';
|
|
26
|
-
import type
|
|
26
|
+
import { type SealedBroker, type SealedCaller } from './sealed.js';
|
|
27
27
|
import { type SemSyscall, type SemTable } from './sem.js';
|
|
28
28
|
import { type DefaultAction, type SigInfo } from './signals.js';
|
|
29
29
|
import { LoopbackNet } from './socket.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FileChanges } from '../fs/changes.js';
|
|
2
|
+
export declare const RENAME_LOG_SIZE = 4096;
|
|
3
|
+
export interface RenamesSince {
|
|
4
|
+
now: number;
|
|
5
|
+
renames: Array<[string, string]>;
|
|
6
|
+
}
|
|
7
|
+
export declare class RenameLog {
|
|
8
|
+
private readonly changes;
|
|
9
|
+
private readonly entries;
|
|
10
|
+
constructor(changes: FileChanges);
|
|
11
|
+
add(from: string, to: string): number;
|
|
12
|
+
seqOf(from: string, to: string): number | undefined;
|
|
13
|
+
since(seen: number, held: readonly string[]): RenamesSince;
|
|
14
|
+
}
|
|
@@ -18,7 +18,12 @@ export interface SealedCaller {
|
|
|
18
18
|
groups: number[];
|
|
19
19
|
users: UsersMode;
|
|
20
20
|
tag?: string;
|
|
21
|
+
tags?: string[];
|
|
21
22
|
}
|
|
23
|
+
export declare function tagFields(tags: readonly string[] | undefined): {
|
|
24
|
+
tag?: string;
|
|
25
|
+
tags?: string[];
|
|
26
|
+
};
|
|
22
27
|
export type SealedRequest = {
|
|
23
28
|
v: 1;
|
|
24
29
|
op: string;
|
|
@@ -63,15 +68,15 @@ export declare class SealedBroker {
|
|
|
63
68
|
readonly hook: SealedHook | undefined;
|
|
64
69
|
readonly users: UsersMode;
|
|
65
70
|
readonly timeoutMs: number;
|
|
66
|
-
readonly tagOf: (pid: number) => string | undefined;
|
|
71
|
+
readonly tagOf: (pid: number) => readonly string[] | undefined;
|
|
67
72
|
readonly tickets: TicketBook;
|
|
68
73
|
readonly sessions: SessionScrubs;
|
|
69
74
|
userOf: (uid: number) => Promise<string | undefined>;
|
|
70
|
-
constructor(hook: SealedHook | undefined, users: UsersMode, timeoutMs?: number, tagOf?: (pid: number) => string | undefined);
|
|
75
|
+
constructor(hook: SealedHook | undefined, users: UsersMode, timeoutMs?: number, tagOf?: (pid: number) => readonly string[] | undefined);
|
|
71
76
|
stamp(ids: {
|
|
72
77
|
pid: number;
|
|
73
78
|
ppid: number;
|
|
74
|
-
}, cred: Readonly<Cred>,
|
|
79
|
+
}, cred: Readonly<Cred>, tags: readonly string[] | undefined): Promise<SealedCaller>;
|
|
75
80
|
consume(fields: ConsumeFields): Promise<Swap | undefined>;
|
|
76
81
|
sessionMaterialize(fields: SessionFields, now?: number): Promise<Record<string, string> | undefined>;
|
|
77
82
|
sessionAnchors(fields: SessionAnchorFields): Promise<Anchors | undefined>;
|
|
@@ -101,6 +101,7 @@ export declare class VfsNodes implements UnlinkHolder {
|
|
|
101
101
|
private readonly byId;
|
|
102
102
|
keepsOnDisk: boolean;
|
|
103
103
|
changed: ((path: string) => void) | undefined;
|
|
104
|
+
movedAway: ((from: string, to: string) => void) | undefined;
|
|
104
105
|
dirtied: ((delta: number) => void) | undefined;
|
|
105
106
|
private readonly fs;
|
|
106
107
|
readonly entries: Map<string, Promise<unknown>>;
|
package/dist/types/launcher.d.ts
CHANGED
|
@@ -98,6 +98,8 @@ export interface RunOptions {
|
|
|
98
98
|
pgid?: number;
|
|
99
99
|
user?: string | number | Account;
|
|
100
100
|
tag?: string;
|
|
101
|
+
tags?: readonly string[];
|
|
102
|
+
tagBase?: number;
|
|
101
103
|
login?: boolean;
|
|
102
104
|
}
|
|
103
105
|
export interface TerminalOptions {
|
|
@@ -107,6 +109,8 @@ export interface TerminalOptions {
|
|
|
107
109
|
rows?: number;
|
|
108
110
|
user?: string | number | Account;
|
|
109
111
|
tag?: string;
|
|
112
|
+
tags?: readonly string[];
|
|
113
|
+
tagBase?: number;
|
|
110
114
|
onData: (bytes: Uint8Array) => void;
|
|
111
115
|
}
|
|
112
116
|
export interface TerminalSession {
|
|
@@ -140,6 +144,8 @@ interface Target {
|
|
|
140
144
|
copy?: string;
|
|
141
145
|
}
|
|
142
146
|
export declare function tagOption(tag: unknown): void;
|
|
147
|
+
export declare function withTag(tags: readonly string[] | undefined, tag: string | undefined): readonly string[] | undefined;
|
|
148
|
+
export declare function cronPath(path: string): boolean;
|
|
143
149
|
export declare function expandDefaults(defaults: Readonly<Record<string, string>> | undefined, env: Readonly<Record<string, string>>): Record<string, string>;
|
|
144
150
|
export declare class Launcher {
|
|
145
151
|
readonly fs: KernelFs;
|
|
@@ -179,6 +185,7 @@ export declare class Launcher {
|
|
|
179
185
|
private readonly described;
|
|
180
186
|
private readonly creds;
|
|
181
187
|
private readonly tags;
|
|
188
|
+
private readonly tagBases;
|
|
182
189
|
private readonly links;
|
|
183
190
|
private readonly freshModules;
|
|
184
191
|
private readonly granted;
|
|
@@ -202,6 +209,7 @@ export declare class Launcher {
|
|
|
202
209
|
readonly hostname: string;
|
|
203
210
|
readonly watchers: FsWatchers;
|
|
204
211
|
private readonly changes;
|
|
212
|
+
private readonly renameLog;
|
|
205
213
|
readonly cwds: CwdTable;
|
|
206
214
|
private readonly cwdSlots;
|
|
207
215
|
private readonly pnpmHome;
|
|
@@ -362,6 +370,8 @@ export declare class Launcher {
|
|
|
362
370
|
private imageOf;
|
|
363
371
|
credOf(pid: number): Cred;
|
|
364
372
|
tagOf(pid: number): string | undefined;
|
|
373
|
+
tagsOf(pid: number): readonly string[] | undefined;
|
|
374
|
+
private wireDac;
|
|
365
375
|
private released;
|
|
366
376
|
private signalMasksOf;
|
|
367
377
|
private controlsJobs;
|
|
@@ -403,7 +413,7 @@ export declare class Launcher {
|
|
|
403
413
|
private terminalAccount;
|
|
404
414
|
private identity;
|
|
405
415
|
fsFor(tag: string | undefined): KernelFs;
|
|
406
|
-
isWriter(
|
|
416
|
+
isWriter(tags: readonly string[] | undefined, base?: number): boolean;
|
|
407
417
|
private stackFor;
|
|
408
418
|
private flushingPeers;
|
|
409
419
|
private rewritten;
|
|
@@ -415,6 +425,7 @@ export declare class Launcher {
|
|
|
415
425
|
private readonly named;
|
|
416
426
|
private commandNames;
|
|
417
427
|
private entryTarget;
|
|
428
|
+
private moved;
|
|
418
429
|
private processChain;
|
|
419
430
|
private starting;
|
|
420
431
|
openTerminal(argv: string[], options: TerminalOptions): Promise<TerminalSession>;
|
|
@@ -37,7 +37,10 @@ export declare class WasiFds {
|
|
|
37
37
|
private readonly ids;
|
|
38
38
|
private readonly kernel;
|
|
39
39
|
private readonly fs;
|
|
40
|
+
private renamesSeen;
|
|
40
41
|
constructor(kernel: WasiKernel, fs: SyncFsPosixBridge);
|
|
42
|
+
ownRename(seq: number | undefined): void;
|
|
43
|
+
followRenames(missing?: boolean): boolean;
|
|
41
44
|
setup(cwd: string, inherited: ReadonlyArray<{
|
|
42
45
|
fd: number;
|
|
43
46
|
kind?: KernelFdKind;
|
|
@@ -117,7 +120,7 @@ export declare class WasiFds {
|
|
|
117
120
|
private inoOf;
|
|
118
121
|
private survives;
|
|
119
122
|
private detach;
|
|
120
|
-
renamed(from: string, to: string, replacedLinked?: SyncFsBridgeStat): void;
|
|
123
|
+
renamed(from: string, to: string, replacedLinked?: SyncFsBridgeStat, foreign?: boolean): void;
|
|
121
124
|
held: HeldCwd | undefined;
|
|
122
125
|
private cwdEntry;
|
|
123
126
|
goneCwd(dir: Extract<WasiEntry, {
|
|
@@ -23,8 +23,10 @@ export declare class FileBuffer {
|
|
|
23
23
|
private seen;
|
|
24
24
|
maxFile: number | undefined;
|
|
25
25
|
handle: number | undefined;
|
|
26
|
+
moved: ((missing: boolean) => boolean) | undefined;
|
|
26
27
|
constructor(fs: SyncFsFileIo, path: string, empty: boolean, maxFile?: number, size?: number, version?: string, watch?: RangedWatch);
|
|
27
28
|
get path(): string;
|
|
29
|
+
private retried;
|
|
28
30
|
set path(path: string);
|
|
29
31
|
get isRanged(): boolean;
|
|
30
32
|
get pin(): string | undefined;
|
|
@@ -113,7 +113,15 @@ export interface LiveFsApi {
|
|
|
113
113
|
sliccOpenFifo?(stream: LiveFsStream, path: string): void;
|
|
114
114
|
nameTable?: (LiveFsNode | null)[] | null;
|
|
115
115
|
hashRemoveNode?(node: LiveFsNode): void;
|
|
116
|
+
hashAddNode?(node: LiveFsNode): void;
|
|
117
|
+
hashName?(parentId: number, name: string): number;
|
|
116
118
|
lookupNode?(parent: LiveFsNode, name: string): LiveFsNode;
|
|
119
|
+
lookupPath?(path: string, opts?: {
|
|
120
|
+
follow?: boolean;
|
|
121
|
+
parent?: boolean;
|
|
122
|
+
}): {
|
|
123
|
+
node: object;
|
|
124
|
+
};
|
|
117
125
|
open?(...args: unknown[]): unknown;
|
|
118
126
|
}
|
|
119
127
|
export interface LiveVfsPlugin {
|
|
@@ -17,6 +17,11 @@ export interface SyncFsTokenEntry {
|
|
|
17
17
|
own?: <T>(path: string, op: () => Promise<T>) => Promise<T>;
|
|
18
18
|
revoked?: (path: string) => boolean;
|
|
19
19
|
renamed?: (from: string, to: string) => void;
|
|
20
|
+
renames?: (since: number, held: readonly string[]) => {
|
|
21
|
+
now: number;
|
|
22
|
+
renames: Array<[string, string]>;
|
|
23
|
+
};
|
|
24
|
+
renameSeq?: (from: string, to: string) => number | undefined;
|
|
20
25
|
cred?: () => Readonly<Cred>;
|
|
21
26
|
umask?: () => number;
|
|
22
27
|
dac?: Dac;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ChangeView } from '../fs/changes.js';
|
|
2
|
-
export declare const SYNC_FS_OPS: readonly ['read', 'write', 'exists', 'stat', 'lstat', 'readdir', 'readdir-stat', 'mkdir', 'rm', 'rename', 'link', 'copy', 'unlink', 'rmdir', 'symlink', 'readlink', 'chmod', 'utimes', 'lutimes', 'statfs', 'hold', 'create', 'mkfifo', 'kept', 'pread', 'pwrite', 'append', 'truncate', 'chown', 'lchown', 'access'];
|
|
2
|
+
export declare const SYNC_FS_OPS: readonly ['read', 'write', 'exists', 'stat', 'lstat', 'readdir', 'readdir-stat', 'mkdir', 'rm', 'rename', 'link', 'copy', 'unlink', 'rmdir', 'symlink', 'readlink', 'chmod', 'utimes', 'lutimes', 'statfs', 'hold', 'create', 'mkfifo', 'kept', 'pread', 'pwrite', 'append', 'truncate', 'chown', 'lchown', 'access', 'renames'];
|
|
3
3
|
export type AccessKind = 'open' | 'access' | 'eaccess' | 'follow';
|
|
4
4
|
export declare const HOLD_READ = 4;
|
|
5
5
|
export declare const HOLD_WRITE = 8;
|
|
@@ -99,7 +99,7 @@ export interface SyncFsPosixBridge {
|
|
|
99
99
|
exists(path: string): boolean;
|
|
100
100
|
mkdir(path: string, mode?: number): void;
|
|
101
101
|
rm(path: string): void;
|
|
102
|
-
rename(from: string, to: string): void;
|
|
102
|
+
rename(from: string, to: string): number | undefined | void;
|
|
103
103
|
link(from: string, to: string, follow?: boolean): void;
|
|
104
104
|
unlink(path: string): void;
|
|
105
105
|
rmdir(path: string): void;
|
|
@@ -128,6 +128,11 @@ export interface SyncFsPosixBridge {
|
|
|
128
128
|
identify?(): void;
|
|
129
129
|
identifyNext?(): void;
|
|
130
130
|
identified?(): SyncFsBridgeStat | null;
|
|
131
|
+
renames?(since: number, held: readonly string[]): SyncFsRenames;
|
|
132
|
+
}
|
|
133
|
+
export interface SyncFsRenames {
|
|
134
|
+
now: number;
|
|
135
|
+
renames: Array<[string, string]>;
|
|
131
136
|
}
|
|
132
137
|
export declare function syncError(code: string, label: string): Error & {
|
|
133
138
|
code: string;
|
package/dist/types/sudo.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface SudoRequest {
|
|
|
17
17
|
cwd: string;
|
|
18
18
|
pid: number;
|
|
19
19
|
tag?: string;
|
|
20
|
+
tags?: string[];
|
|
20
21
|
tty?: string;
|
|
21
22
|
createdAt: number;
|
|
22
23
|
expiresAt: number;
|
|
@@ -53,7 +54,7 @@ export type SudoResult = {
|
|
|
53
54
|
export interface SudoCaller {
|
|
54
55
|
cred: Cred;
|
|
55
56
|
pid: number;
|
|
56
|
-
|
|
57
|
+
tags?: readonly string[] | undefined;
|
|
57
58
|
tty?: string | null | undefined;
|
|
58
59
|
}
|
|
59
60
|
interface Rule {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-kernel",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.144.0",
|
|
4
4
|
"description": "SLICC's wasm-realm kernel: run Emscripten programs in the browser against OPFS, with fork, spawn, pipes and waitpid",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -66,23 +66,23 @@
|
|
|
66
66
|
"@ai-ecoverse/py-numpy": "2.5.4-4",
|
|
67
67
|
"@ai-ecoverse/slicc-node": "2.5.2",
|
|
68
68
|
"@ai-ecoverse/slicc-scrub": "1.0.0",
|
|
69
|
-
"@ai-ecoverse/slicc-shared-web": "1.
|
|
69
|
+
"@ai-ecoverse/slicc-shared-web": "1.30.2",
|
|
70
70
|
"@ai-ecoverse/wasi-cargo": "0.99.0-6",
|
|
71
71
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-20",
|
|
72
72
|
"@ai-ecoverse/wasi-ripgrep": "15.2.0-5",
|
|
73
73
|
"@ai-ecoverse/wasi-rustc": "1.98.1-10",
|
|
74
74
|
"@ai-ecoverse/wasi-zig": "0.16.0-20",
|
|
75
75
|
"@ai-ecoverse/wasix-python": "3.15.0-5",
|
|
76
|
-
"@ai-ecoverse/wasm-bash": "5.3.0-
|
|
76
|
+
"@ai-ecoverse/wasm-bash": "5.3.0-23",
|
|
77
77
|
"@ai-ecoverse/wasm-coreutils": "9.12.0-12",
|
|
78
|
-
"@ai-ecoverse/wasm-curl": "8.22.0-
|
|
78
|
+
"@ai-ecoverse/wasm-curl": "8.22.0-9",
|
|
79
79
|
"@ai-ecoverse/wasm-git": "2.55.0-18",
|
|
80
|
-
"@ai-ecoverse/wasm-gmake": "4.4.1-
|
|
80
|
+
"@ai-ecoverse/wasm-gmake": "4.4.1-9",
|
|
81
81
|
"@ai-ecoverse/wasm-procps": "4.0.7-4",
|
|
82
|
-
"@ai-ecoverse/wasm-sqlite3": "3.54.0-
|
|
82
|
+
"@ai-ecoverse/wasm-sqlite3": "3.54.0-7",
|
|
83
83
|
"@ai-ecoverse/wasm-tar": "1.35.0-8",
|
|
84
84
|
"@ai-ecoverse/wasm-tls-engine": "4.2.0-7",
|
|
85
|
-
"@ai-ecoverse/wasm-tree": "2.3.2-
|
|
85
|
+
"@ai-ecoverse/wasm-tree": "2.3.2-7",
|
|
86
86
|
"@ai-ecoverse/wasm-util-linux": "2.42.4-5",
|
|
87
87
|
"@biomejs/biome": "2.5.15",
|
|
88
88
|
"@types/node": "24.19.2",
|