arcane-os 0.57.0 → 0.58.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/CHANGELOG.md +21 -0
- package/README.md +6 -2
- package/browser-runtime/ai/core-onnx.mjs +96 -0
- package/browser-runtime/ai/onnx-tensors.mjs +85 -0
- package/browser-runtime/core/client.mjs +151 -16
- package/docs/architecture.md +5 -2
- package/docs/platform-targets.md +30 -13
- package/docs/reference/README.md +18 -3
- package/docs/reference/availability-and-normalization.md +9 -6
- package/docs/reference/cli.md +22 -10
- package/docs/reference/core-client.md +80 -0
- package/docs/reference/core-native-packaging.md +110 -2
- package/docs/reference/core-preferences.md +49 -0
- package/docs/reference/diarization.md +206 -0
- package/docs/reference/git-text-snapshot.md +104 -0
- package/docs/reference/inventory/package-api.json +203 -21
- package/docs/reference/local-ai.md +145 -11
- package/docs/reference/protocols.md +28 -19
- package/docs/reference/pwa.md +5 -2
- package/docs/reference/sdk-api.md +448 -39
- package/package.json +11 -3
- package/schemas/arcane-app.schema.json +3 -3
- package/schemas/arcane-package.schema.json +2 -2
- package/schemas/native-build-plan.schema.json +27 -1
- package/schemas/target-adapter.schema.json +2 -0
- package/src/app-descriptor.mjs +1 -1
- package/src/cli/main.mjs +14 -4
- package/src/constants.mjs +2 -0
- package/src/core/hosts/macos/ArcaneHost.h +86 -0
- package/src/core/hosts/macos/ArcaneHost.m +455 -0
- package/src/core/hosts/macos/ArcaneLauncher.m +432 -0
- package/src/core/services/local-ai.mjs +82 -4
- package/src/core/services/packaged-web.mjs +89 -0
- package/src/core/services/preferences.mjs +201 -0
- package/src/core-classic-source.mjs +2 -2
- package/src/dev-server.mjs +2 -5
- package/src/diarization/build.mjs +35 -0
- package/src/diarization/index.mjs +432 -0
- package/src/diarization/native/CMakeLists.txt +9 -0
- package/src/diarization/native/main.cpp +269 -0
- package/src/diarization/service.mjs +129 -0
- package/src/git-text-snapshot.mjs +265 -0
- package/src/import-map.mjs +1 -0
- package/src/index.mjs +1 -0
- package/src/local-ai/config.mjs +1 -1
- package/src/local-ai/install.mjs +134 -19
- package/src/local-ai/onnx-worker.mjs +85 -0
- package/src/local-ai/onnx.mjs +368 -0
- package/src/native/macos-provider.mjs +291 -0
- package/src/native/portable-layout.mjs +10 -2
- package/src/native/portable-provider.mjs +10 -5
- package/src/native-plan.mjs +9 -1
- package/src/native-provider-loader.mjs +3 -1
- package/src/process.mjs +123 -17
- package/src/scaffold.mjs +1 -1
- package/src/targets/index.mjs +11 -1
- package/src/templates/workspace-template.mjs +6 -5
- package/src/toolchain.mjs +1 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Complete Git text snapshots
|
|
2
|
+
|
|
3
|
+
`createGitTextSnapshot` from `arcane-os` reads application-selected UTF-8 text
|
|
4
|
+
from one fetched Git revision. It uses a dedicated **bare object cache**, not a
|
|
5
|
+
clone with a working checkout. It never reads uncommitted application files,
|
|
6
|
+
checks out files, modifies a user checkout/index, or creates another worktree.
|
|
7
|
+
Construction performs no I/O. The native host needs Git available on its PATH;
|
|
8
|
+
Git owns remote access, authentication and its actual failures.
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
import {createGitTextSnapshot} from 'arcane-os';
|
|
12
|
+
|
|
13
|
+
const snapshot = createGitTextSnapshot({
|
|
14
|
+
cacheDirectory: applicationCacheDirectory,
|
|
15
|
+
remote: applicationRepository,
|
|
16
|
+
ref: applicationRef,
|
|
17
|
+
selectPath: function selectMoonDispatches(filename) {
|
|
18
|
+
return filename.startsWith('dispatches/') && filename.endsWith('.md');
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const {revision, files} = await snapshot.refresh({signal});
|
|
23
|
+
// files: [{path: 'dispatches/cheese-emergency.md', content: completeText}]
|
|
24
|
+
await snapshot.close();
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The application owns its remote, ref, path policy, repository identity, refresh
|
|
28
|
+
schedule and Core service factory. The SDK does not select `main`, poll, parse
|
|
29
|
+
Markdown/YAML, label or rewrite documents, or choose a product RPC method.
|
|
30
|
+
`selectPath(path)` may return a boolean or a promise of one. It receives each
|
|
31
|
+
complete repository-relative leaf path in Git tree order. Keep the selector's
|
|
32
|
+
policy stable for the lifetime of its snapshot owner.
|
|
33
|
+
|
|
34
|
+
## API and lifecycle
|
|
35
|
+
|
|
36
|
+
`createGitTextSnapshot({cacheDirectory,remote,ref,selectPath,onEvent,run})`
|
|
37
|
+
returns `{refresh,close,drain,dispose}`. `run` defaults to the SDK's existing
|
|
38
|
+
`runProcess`; applications normally omit it. It is the same process adapter
|
|
39
|
+
contract, not a second process supervisor. `onEvent` is the ordinary SDK event
|
|
40
|
+
callback and follows its asynchronous completion/error contract.
|
|
41
|
+
|
|
42
|
+
- `refresh({signal}={})` fetches the selected ref and returns
|
|
43
|
+
`{revision,files:[{path,content}]}`. `revision` is Git's opaque selected commit
|
|
44
|
+
name, not an SDK integrity record. Every file comes from that exact revision,
|
|
45
|
+
even if the remote moves during retrieval. Order follows Git's tree listing.
|
|
46
|
+
- Concurrent calls share the active refresh. A later call fetches again; when
|
|
47
|
+
the selected revision is unchanged, it reuses the completed text retrieval.
|
|
48
|
+
Returned arrays and records are independent copies, so caller edits do not
|
|
49
|
+
alter retained results. Failed refreshes report errors, never stale success.
|
|
50
|
+
- A caller's abort cancels only that caller's wait. Accepted shared refresh
|
|
51
|
+
continues, including when every caller leaves. There is no incomplete result
|
|
52
|
+
presented as a complete snapshot. A pre-aborted call starts no work.
|
|
53
|
+
- `close()`, `drain()` and `dispose()` are the same idempotent operation. They
|
|
54
|
+
stop acceptance and await accepted refresh work and its process/event cleanup.
|
|
55
|
+
Calls after close reject with `CORE_CLOSING`. A failure during drain rejects
|
|
56
|
+
close. Connect this hook to the Core service's `drain`/`dispose` lifecycle;
|
|
57
|
+
do not terminate its process before accepted work settles.
|
|
58
|
+
|
|
59
|
+
One application service owns each cache directory. Sharing that mutable bare
|
|
60
|
+
cache across independent instances or processes requires coordination by its
|
|
61
|
+
application owner; this factory does not install a daemon or cross-process lock.
|
|
62
|
+
An empty cache is initialized once. An existing non-bare checkout is rejected
|
|
63
|
+
without repurposing it. The cache is retained when the owner closes.
|
|
64
|
+
|
|
65
|
+
## Complete text and observable failures
|
|
66
|
+
|
|
67
|
+
Content is the exact Git blob text, including whitespace, CRLF, newlines,
|
|
68
|
+
leading BOM and embedded NUL characters. No checkout filters, `textconv`,
|
|
69
|
+
normalization, trimming, truncation, freezing or application size gate applies.
|
|
70
|
+
Symlink blobs expose their stored target text; they are never followed.
|
|
71
|
+
Selected submodules are not text blobs and produce an explicit error rather
|
|
72
|
+
than being skipped or fetched as another repository. A selected path or blob
|
|
73
|
+
that cannot be decoded as UTF-8 fails with `ARCANE_GIT_SNAPSHOT_NOT_TEXT` instead
|
|
74
|
+
of silently substituting replacement characters. Git errors and complete
|
|
75
|
+
diagnostics remain available to the caller and the existing process event owner.
|
|
76
|
+
|
|
77
|
+
`git.snapshot.refreshing`, `git.snapshot.completed` and `git.snapshot.failed`
|
|
78
|
+
describe the shared operation. Completion data contains `{revision,reused}`;
|
|
79
|
+
failure data contains the actual error. These events supplement the complete
|
|
80
|
+
result, never replace it. An event callback must not await a new refresh of the
|
|
81
|
+
same owner from inside the operation it is currently observing.
|
|
82
|
+
|
|
83
|
+
Initial refresh performs bare initialization/role discovery, then fetch,
|
|
84
|
+
revision resolution, one tree listing and one batched blob process. Later
|
|
85
|
+
unchanged revisions need only fetch and revision resolution. A changed revision
|
|
86
|
+
uses one tree process and one blob process regardless of the selected file
|
|
87
|
+
count. An empty selection needs no blob process. Blob requests use the shared
|
|
88
|
+
async process-input owner; raw stdout is consumed by the Git parser with
|
|
89
|
+
backpressure. Git's encoded body extent and object names remain local to its
|
|
90
|
+
[batch protocol](https://git-scm.com/docs/git-cat-file#_batch_output); they do
|
|
91
|
+
not become product metadata, byte progress, admission or integrity policy.
|
|
92
|
+
|
|
93
|
+
## Core service composition
|
|
94
|
+
|
|
95
|
+
The application wraps this mechanism in its own service factory and supplies its
|
|
96
|
+
own public method and result fields. The handler can pass `context.signal` to
|
|
97
|
+
`refresh` for request cancellation, then map `revision` to its chosen remote-ref
|
|
98
|
+
field without changing any `content`. Return the snapshot owner's `drain` and
|
|
99
|
+
`dispose` hooks from that service. Native launch configuration selects the
|
|
100
|
+
cache location; browser code does not launch Git or reconstruct its protocol.
|
|
101
|
+
|
|
102
|
+
This contract is portable Node source for Windows, Linux and macOS. Android
|
|
103
|
+
requires a host that supplies the same Git/process capability; it is not a
|
|
104
|
+
claim that every Android host ships Git.
|
|
@@ -1,23 +1,121 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"sdkVersion": "0.
|
|
3
|
+
"sdkVersion": "0.57.0",
|
|
4
4
|
"environment": {
|
|
5
5
|
"runtime": "Node.js for Node entrypoints; browser for browser-only entrypoints",
|
|
6
6
|
"minimumVersion": "22.23.2 for Node entrypoints",
|
|
7
7
|
"moduleSystem": "ESM"
|
|
8
8
|
},
|
|
9
|
-
"memberCount":
|
|
9
|
+
"memberCount": 267,
|
|
10
10
|
"runtimeSubpathPatterns": {
|
|
11
11
|
"arcane-os/modules/*": "./runtime/arcane/modules/*",
|
|
12
12
|
"arcane-os/entities/*": "./runtime/arcane/entities/*"
|
|
13
13
|
},
|
|
14
14
|
"members": [
|
|
15
|
+
{
|
|
16
|
+
"id": "local-ai-onnx:createONNXRuntime",
|
|
17
|
+
"name": "createONNXRuntime",
|
|
18
|
+
"displayName": "createONNXRuntime()",
|
|
19
|
+
"kind": "function",
|
|
20
|
+
"signature": "createONNXRuntime({modulePath,signal,onEvent}={})",
|
|
21
|
+
"entrypoints": ["arcane-os/local-ai/onnx"],
|
|
22
|
+
"primaryImport": "arcane-os/local-ai/onnx",
|
|
23
|
+
"group": "Core local AI",
|
|
24
|
+
"summary": "Owns explicitly loaded ONNX graphs and complete named tensor inference in retained native workers.",
|
|
25
|
+
"availability": "Node on Windows/Linux/macOS x64/arm64 with prepared onnxruntime-node; Android needs host adaptation",
|
|
26
|
+
"protocol": "Per-session worker lifecycle with structured-clone tensors and replaying state",
|
|
27
|
+
"normalization": "Returns load/run/unload/current/subscribe/close; explicit model and session IDs; native calls may delay worker termination, and close observes actual exit"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "core-onnx:createCoreONNXRuntime",
|
|
31
|
+
"name": "createCoreONNXRuntime",
|
|
32
|
+
"displayName": "createCoreONNXRuntime()",
|
|
33
|
+
"kind": "function",
|
|
34
|
+
"signature": "createCoreONNXRuntime({client=getInstalledCoreClient()}={})",
|
|
35
|
+
"entrypoints": ["arcane-os/ai/core-onnx"],
|
|
36
|
+
"primaryImport": "arcane-os/ai/core-onnx",
|
|
37
|
+
"group": "Core local AI",
|
|
38
|
+
"summary": "Accesses local system ONNX through an existing Core client with complete tensor transport.",
|
|
39
|
+
"availability": "Browser with available Core ONNX service; construction installs no runtime or model",
|
|
40
|
+
"protocol": "arcane/1 onnx.status/load/run/unload and localai.state",
|
|
41
|
+
"normalization": "Returns load/run/unload/inspect/current/subscribe/close; preserves typed and string tensors; accessor close cancels its requests without closing shared Core or implicitly unloading shared models"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "root:createGitTextSnapshot",
|
|
45
|
+
"name": "createGitTextSnapshot",
|
|
46
|
+
"displayName": "createGitTextSnapshot()",
|
|
47
|
+
"kind": "function",
|
|
48
|
+
"signature": "createGitTextSnapshot({cacheDirectory,remote,ref,selectPath,onEvent,run=runProcess}={})",
|
|
49
|
+
"entrypoints": ["arcane-os"],
|
|
50
|
+
"primaryImport": "arcane-os",
|
|
51
|
+
"group": "Workspace, doctor, repository, and server",
|
|
52
|
+
"summary": "Reads complete selected text from one fetched revision using a dedicated bare Git object cache and batched retrieval.",
|
|
53
|
+
"availability": "Node with Git; Android requires a host supplying Git/process capability",
|
|
54
|
+
"protocol": "Git tree and batched blob transport through the shared process owner",
|
|
55
|
+
"normalization": "Returns {refresh,close,drain,dispose}; refresh yields {revision,files:[{path,content}]}, shares concurrent work, reuses unchanged revisions, preserves exact UTF-8 text, isolates caller cancellation and drains accepted work. See git-text-snapshot.md."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "diarization:createDiarization",
|
|
59
|
+
"name": "createDiarization",
|
|
60
|
+
"displayName": "createDiarization()",
|
|
61
|
+
"kind": "function",
|
|
62
|
+
"signature": "createDiarization({executable,modelPath,runtime,onEvent}={})",
|
|
63
|
+
"entrypoints": ["arcane-os/diarization"],
|
|
64
|
+
"primaryImport": "arcane-os/diarization",
|
|
65
|
+
"group": "Native speaker diarization",
|
|
66
|
+
"summary": "Retains one selected Nemotron 3 model helper and independently owned caller-fed audio streams.",
|
|
67
|
+
"availability": "Node with a host-built first-party helper, official NeMo-Speech.cpp CPU libraries and caller-selected model",
|
|
68
|
+
"protocol": "Owned native helper transport and replayable model lifecycle; mono Float32 audio streams",
|
|
69
|
+
"normalization": "Preserves complete audio, timed segments and requested probability frames; generic speaker labels are not person identity; finish/cancel/close retain native drain and complete failures"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "diarization-build:buildDiarizationHelper",
|
|
73
|
+
"name": "buildDiarizationHelper",
|
|
74
|
+
"displayName": "buildDiarizationHelper()",
|
|
75
|
+
"kind": "function",
|
|
76
|
+
"signature": "async buildDiarizationHelper({runtime,outputRoot,signal,onEvent}={})",
|
|
77
|
+
"entrypoints": ["arcane-os/diarization/build"],
|
|
78
|
+
"primaryImport": "arcane-os/diarization/build",
|
|
79
|
+
"group": "Native speaker diarization",
|
|
80
|
+
"summary": "Builds the first-party helper against the explicitly installed NeMoSpeech Diarization component.",
|
|
81
|
+
"availability": "Node, installed CMake/C++17 toolchain and matching official CPU runtime for the current host",
|
|
82
|
+
"protocol": "CMake configure, build and install using runtime.cmakeDirectory",
|
|
83
|
+
"normalization": "Returns actual platform, architecture, root, executable and complete diagnostics; no compiler or model download"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "core-diarization:createDiarizationService",
|
|
87
|
+
"name": "createDiarizationService",
|
|
88
|
+
"displayName": "createDiarizationService()",
|
|
89
|
+
"kind": "function",
|
|
90
|
+
"signature": "createDiarizationService(options={},launch={})",
|
|
91
|
+
"entrypoints": ["arcane-os/core/diarization"],
|
|
92
|
+
"primaryImport": "arcane-os/core/diarization",
|
|
93
|
+
"group": "Native speaker diarization",
|
|
94
|
+
"summary": "Composes lazy native diarization as an application-selected Core service.",
|
|
95
|
+
"availability": "Node Core runtime with explicitly selected helper, runtime and model",
|
|
96
|
+
"protocol": "arcane/1 diarization methods and state/update/probability events; f32le audio transport",
|
|
97
|
+
"normalization": "Resolves relative paths from selected workspaceRoot or appRoot; session audio uses service lifetime, recording cancellation is independent, and model loading never blocks Core startup"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "core-diarization:default",
|
|
101
|
+
"name": "default",
|
|
102
|
+
"displayName": "createDiarizationService default export",
|
|
103
|
+
"kind": "function",
|
|
104
|
+
"signature": "default as createDiarizationService",
|
|
105
|
+
"entrypoints": ["arcane-os/core/diarization"],
|
|
106
|
+
"primaryImport": "arcane-os/core/diarization",
|
|
107
|
+
"group": "Native speaker diarization",
|
|
108
|
+
"summary": "Default binding for the same native Core diarization service factory.",
|
|
109
|
+
"availability": "Node Core runtime",
|
|
110
|
+
"protocol": "arcane/1 service definition",
|
|
111
|
+
"normalization": "Binding identity equals the named createDiarizationService export"
|
|
112
|
+
},
|
|
15
113
|
{
|
|
16
114
|
"id": "core-local:createCoreLocalAIProvider",
|
|
17
115
|
"name": "createCoreLocalAIProvider",
|
|
18
116
|
"displayName": "createCoreLocalAIProvider()",
|
|
19
117
|
"kind": "function",
|
|
20
|
-
"signature": "createCoreLocalAIProvider({client,id='llama.cpp'}={})",
|
|
118
|
+
"signature": "createCoreLocalAIProvider({client=getInstalledCoreClient(),id='llama.cpp'}={})",
|
|
21
119
|
"entrypoints": ["arcane-os/ai/core-local"],
|
|
22
120
|
"primaryImport": "arcane-os/ai/core-local",
|
|
23
121
|
"group": "Core local AI",
|
|
@@ -35,9 +133,9 @@
|
|
|
35
133
|
"entrypoints": ["arcane-os/core/local-ai"],
|
|
36
134
|
"primaryImport": "arcane-os/core/local-ai",
|
|
37
135
|
"group": "Core local AI",
|
|
38
|
-
"summary": "Composes selected native llama.cpp and
|
|
136
|
+
"summary": "Composes selected native llama.cpp, Ollama and ONNX engines as a Core service with retained process/worker ownership and model lifecycle.",
|
|
39
137
|
"availability": "Node with selected upstream runtime distributions or available configured system services",
|
|
40
|
-
"protocol": "arcane/1 methods and events; llama.cpp OpenAI HTTP/SSE
|
|
138
|
+
"protocol": "arcane/1 methods and events; llama.cpp OpenAI HTTP/SSE, Ollama native HTTP/NDJSON and ONNX tensor transport",
|
|
41
139
|
"normalization": "Application-owned runtime and model requirements; independent startup, complete responses and exact owned-process cleanup"
|
|
42
140
|
},
|
|
43
141
|
{
|
|
@@ -59,13 +157,13 @@
|
|
|
59
157
|
"name": "ensureLocalAIRuntimes",
|
|
60
158
|
"displayName": "ensureLocalAIRuntimes()",
|
|
61
159
|
"kind": "function",
|
|
62
|
-
"signature": "ensureLocalAIRuntimes({runtimes=[],directory,platform,architecture,signal,onEvent}={})",
|
|
160
|
+
"signature": "async ensureLocalAIRuntimes({runtimes=[],directory,platform=process.platform,architecture=process.arch,signal,onEvent}={})",
|
|
63
161
|
"entrypoints": ["arcane-os/local-ai"],
|
|
64
162
|
"primaryImport": "arcane-os/local-ai",
|
|
65
163
|
"group": "Core local AI",
|
|
66
|
-
"summary": "Reuses selected managed native runtimes or installs complete official llama.cpp
|
|
164
|
+
"summary": "Reuses selected managed native runtimes or installs complete official llama.cpp/Ollama distributions, ONNX npm runtime trees or NeMo libraries.",
|
|
67
165
|
"availability": "Node; upstream platform and architecture assets determine runtime availability",
|
|
68
|
-
"protocol": "Official upstream release
|
|
166
|
+
"protocol": "Official upstream release archives or selected ONNX npm installation",
|
|
69
167
|
"normalization": "Returns absolute runtime records; shares matching concurrent installs, preserves libraries and reports failures without changing global PATH or services"
|
|
70
168
|
},
|
|
71
169
|
{
|
|
@@ -73,7 +171,7 @@
|
|
|
73
171
|
"name": "bundleLocalAIRuntimes",
|
|
74
172
|
"displayName": "bundleLocalAIRuntimes()",
|
|
75
173
|
"kind": "function",
|
|
76
|
-
"signature": "bundleLocalAIRuntimes({runtimes=[],directory,outputRoot,platform,architecture,signal,onEvent}={})",
|
|
174
|
+
"signature": "async bundleLocalAIRuntimes({runtimes=[],directory,outputRoot,platform=process.platform,architecture=process.arch,signal,onEvent}={})",
|
|
77
175
|
"entrypoints": ["arcane-os/local-ai"],
|
|
78
176
|
"primaryImport": "arcane-os/local-ai",
|
|
79
177
|
"group": "Core local AI",
|
|
@@ -1114,7 +1212,7 @@
|
|
|
1114
1212
|
],
|
|
1115
1213
|
"primaryImport": "arcane-os",
|
|
1116
1214
|
"group": "Targets, native plans, and providers",
|
|
1117
|
-
"summary": "Loads the
|
|
1215
|
+
"summary": "Loads the installed SDK provider for portable or windows-x64 when arcaneRoot is omitted, or retains the explicitly selected Arcane OS checkout provider route.",
|
|
1118
1216
|
"availability": "Node; selected browser/native target or provider as documented",
|
|
1119
1217
|
"protocol": "arcane-target-adapter/1, arcane-native-build-plan/1, or provider protocol",
|
|
1120
1218
|
"normalization": "Normalized complete plan and result; target-specific artifact detail preserved"
|
|
@@ -1860,16 +1958,16 @@
|
|
|
1860
1958
|
"name": "runProcess",
|
|
1861
1959
|
"displayName": "runProcess()",
|
|
1862
1960
|
"kind": "function",
|
|
1863
|
-
"signature": "async runProcess(command, args=[], { cwd, env, signal, onEvent, heartbeatMs=5000, terminationGraceMs=DEFAULT_TERMINATION_GRACE_MS, allowNonzero=false, input }={})",
|
|
1961
|
+
"signature": "async runProcess(command, args=[], { cwd, env, signal, onEvent, onOutput, captureOutput=true, emitOutputEvents=true, outputEncoding='utf8', heartbeatMs=5000, terminationGraceMs=DEFAULT_TERMINATION_GRACE_MS, allowNonzero=false, input, cancellationMode='terminate-tree' }={})",
|
|
1864
1962
|
"entrypoints": [
|
|
1865
1963
|
"arcane-os"
|
|
1866
1964
|
],
|
|
1867
1965
|
"primaryImport": "arcane-os",
|
|
1868
1966
|
"group": "Events, processes, and testing",
|
|
1869
|
-
"summary": "Runs one shell-free child command with complete
|
|
1967
|
+
"summary": "Runs one shell-free child command with complete output and ordered events; default tree termination or explicit close-input cancellation waits for the selected child lifecycle.",
|
|
1870
1968
|
"availability": "Node",
|
|
1871
1969
|
"protocol": "Node ESM / owned process or test lifecycle",
|
|
1872
|
-
"normalization": "
|
|
1970
|
+
"normalization": "Defaults to complete UTF-8 capture/events. AsyncIterable input and awaited onOutput retain backpressure. Explicit null outputEncoding delivers native Buffers only to a selected onOutput owner with capture and line events disabled for that stream; failures retain complete chunks and drained process diagnostics."
|
|
1873
1971
|
},
|
|
1874
1972
|
{
|
|
1875
1973
|
"id": "root:runRegisteredTests",
|
|
@@ -2012,7 +2110,7 @@
|
|
|
2012
2110
|
],
|
|
2013
2111
|
"primaryImport": "arcane-os",
|
|
2014
2112
|
"group": "Workspace, doctor, repository, and server",
|
|
2015
|
-
"summary": "Starts
|
|
2113
|
+
"summary": "Starts an owned source or packaged browser server with complete selected routes, HTTPS by default, explicit HTTP selection, listener readiness and shutdown.",
|
|
2016
2114
|
"availability": "Node control plane; browser data plane",
|
|
2017
2115
|
"protocol": "Node ESM",
|
|
2018
2116
|
"normalization": "SDK-normalized inputs, errors, events, and documented result"
|
|
@@ -3779,14 +3877,14 @@
|
|
|
3779
3877
|
"name": "createCoreClient",
|
|
3780
3878
|
"displayName": "createCoreClient()",
|
|
3781
3879
|
"kind": "function",
|
|
3782
|
-
"signature": "createCoreClient({global=globalThis,transport=null,eventOwner=arcaneEvents,eventOwnerReady,autoConnect=true,replayRuntimeState=false,onError}={})",
|
|
3880
|
+
"signature": "createCoreClient({global=globalThis,transport=null,eventOwner=arcaneEvents,eventOwnerReady,autoConnect=true,replayRuntimeState=false,webKitDocumentLifecycle=false,onError}={})",
|
|
3783
3881
|
"entrypoints": ["arcane-os/core/client"],
|
|
3784
3882
|
"primaryImport": "arcane-os/core/client",
|
|
3785
3883
|
"group": "Core browser client",
|
|
3786
3884
|
"summary": "Creates one correlated Arcane Core RPC client with explicit transport, readiness, events, cancellation and lifetime ownership.",
|
|
3787
3885
|
"availability": "Browser and native WebView JavaScript hosts; custom transports require a callable send(frame)",
|
|
3788
3886
|
"protocol": "arcane/1 over the selected host transport",
|
|
3789
|
-
"normalization": "Preserves complete request, result and event data; retains FIFO event-owner handoff; failTransport(error) settles pending RPCs and acknowledgements with the complete failure and releases the client lifetime; opt-in replayRuntimeState sends one observed nonblocking runtime.replay control after transport readiness"
|
|
3887
|
+
"normalization": "Preserves complete request, result and event data; retains FIFO event-owner handoff; failTransport(error) settles pending RPCs and acknowledgements with the complete failure and releases the client lifetime; opt-in replayRuntimeState sends one observed nonblocking runtime.replay control after transport readiness. Optional webKitDocumentLifecycle selects WithReply activate/frame/retire metadata outside unchanged Core JSON, synchronous acceptsNativeDelivery(activation), guarded receive/failure delivery, page-hide retirement and fresh restored activation with current-state replay. Requests cancelled while awaiting attachment are never submitted afterward. Subscriptions survive restoration; retired renderer promises abort while accepted service-lifetime work continues. Existing transport behavior is unchanged when omitted; see core-client.md for the native ownership and acknowledgement contract"
|
|
3790
3888
|
},
|
|
3791
3889
|
{
|
|
3792
3890
|
"id": "core-client:createCoreFacade",
|
|
@@ -3814,7 +3912,7 @@
|
|
|
3814
3912
|
"summary": "Installs one synchronous global Arcane facade, native receive callback and terminal transport-failure callback for the selected renderer lifetime.",
|
|
3815
3913
|
"availability": "Browser and native WebView JavaScript hosts",
|
|
3816
3914
|
"protocol": "arcane/1 renderer facade",
|
|
3817
|
-
"normalization": "Repeated installation returns the same client; close/failTransport release owned resources and restore prior globals only while still owned; __arcaneTransportFailed preserves the complete host failure without killing Core"
|
|
3915
|
+
"normalization": "Repeated installation returns the same client; close/failTransport release owned resources and restore prior globals only while still owned; __arcaneTransportFailed preserves the complete host failure without killing Core. Forwards optional webKitDocumentLifecycle:false by default; when selected, __arcaneWebKitDocumentCurrent(activation) probes the executing realm and __arcaneReceive(json,activation)/__arcaneTransportFailed(error,activation) reject delivery to retired or different activations before changing installation ownership"
|
|
3818
3916
|
},
|
|
3819
3917
|
{
|
|
3820
3918
|
"id": "core-client:getInstalledCoreClient",
|
|
@@ -3835,14 +3933,14 @@
|
|
|
3835
3933
|
"name": "createCoreClassicSource",
|
|
3836
3934
|
"displayName": "createCoreClassicSource()",
|
|
3837
3935
|
"kind": "function",
|
|
3838
|
-
"signature": "async createCoreClassicSource({eventOwnerModuleURL,replayRuntimeState=false}={})",
|
|
3936
|
+
"signature": "async createCoreClassicSource({eventOwnerModuleURL,replayRuntimeState=false,webKitDocumentLifecycle=false}={})",
|
|
3839
3937
|
"entrypoints": ["arcane-os/core/classic-source"],
|
|
3840
3938
|
"primaryImport": "arcane-os/core/classic-source",
|
|
3841
3939
|
"group": "Core classic client projection",
|
|
3842
3940
|
"summary": "Generates the native host's classic injection script from the installed canonical Core client and contracts.",
|
|
3843
3941
|
"availability": "Node; generated source runs in browser and native WebView renderers",
|
|
3844
3942
|
"protocol": "arcane/1 classic-script injection",
|
|
3845
|
-
"normalization": "Returns the complete canonical client projection; installs synchronous facade shapes while deferring only the event-owner module connection when document parsing is incomplete; forwards explicit
|
|
3943
|
+
"normalization": "Returns the complete canonical client projection; installs synchronous facade shapes while deferring only the event-owner module connection when document parsing is incomplete; forwards explicit replayRuntimeState and webKitDocumentLifecycle selections with false defaults. Optional WebKit lifetime requires a native WithReply lifecycle host and the existing runtime.replay control; restoration requests current state after fresh activation while rendering and independent Core startup continue"
|
|
3846
3944
|
},
|
|
3847
3945
|
{
|
|
3848
3946
|
"id": "core-runtime:createCoreRuntime",
|
|
@@ -3905,7 +4003,7 @@
|
|
|
3905
4003
|
"name": "createPortableNativeProvider",
|
|
3906
4004
|
"displayName": "createPortableNativeProvider()",
|
|
3907
4005
|
"kind": "function",
|
|
3908
|
-
"signature": "createPortableNativeProvider({services}={})",
|
|
4006
|
+
"signature": "createPortableNativeProvider({services,packagedWeb=false,webKitDocumentLifecycle=false}={})",
|
|
3909
4007
|
"entrypoints": ["arcane-os/native/portable-provider"],
|
|
3910
4008
|
"primaryImport": "arcane-os/native/portable-provider",
|
|
3911
4009
|
"group": "Portable native provider",
|
|
@@ -3984,12 +4082,96 @@
|
|
|
3984
4082
|
"protocol": "arcane-native-builder/1 windows-x64 provider",
|
|
3985
4083
|
"normalization": "Binding identity is exactly equal to the named arcaneNativeBuilderProvider export"
|
|
3986
4084
|
},
|
|
4085
|
+
{
|
|
4086
|
+
"id": "native-macos-provider:createMacOSNativeProvider",
|
|
4087
|
+
"name": "createMacOSNativeProvider",
|
|
4088
|
+
"displayName": "createMacOSNativeProvider()",
|
|
4089
|
+
"kind": "function",
|
|
4090
|
+
"signature": "createMacOSNativeProvider({services,hostDirectory}={})",
|
|
4091
|
+
"entrypoints": ["arcane-os/native/macos-provider"],
|
|
4092
|
+
"primaryImport": "arcane-os/native/macos-provider",
|
|
4093
|
+
"group": "macOS native provider",
|
|
4094
|
+
"summary": "Composes a complete selected portable payload with the architecture-selected SDK Mac host in an application bundle.",
|
|
4095
|
+
"availability": "Node assembly; matching Darwin architecture and selected host artifact for execution",
|
|
4096
|
+
"protocol": "arcane-native-builder/1 macos-arm64 and macos-x64 provider",
|
|
4097
|
+
"normalization": "Resources remains target.rootDir; bundleRoot names the app bundle; selected hostDirectory or exact-version host assets; run closes stdin and awaits graceful drain; source availability does not establish artifact publication or Mac execution"
|
|
4098
|
+
},
|
|
4099
|
+
{
|
|
4100
|
+
"id": "native-macos-provider:arcaneNativeBuilderProvider",
|
|
4101
|
+
"name": "arcaneNativeBuilderProvider",
|
|
4102
|
+
"displayName": "arcaneNativeBuilderProvider",
|
|
4103
|
+
"kind": "singleton",
|
|
4104
|
+
"signature": "const arcaneNativeBuilderProvider",
|
|
4105
|
+
"entrypoints": ["arcane-os/native/macos-provider"],
|
|
4106
|
+
"primaryImport": "arcane-os/native/macos-provider",
|
|
4107
|
+
"group": "macOS native provider",
|
|
4108
|
+
"summary": "SDK-owned Mac provider selected by macos-arm64 and macos-x64 CLI routes.",
|
|
4109
|
+
"availability": "Node assembly; matching Darwin architecture and selected host artifact for execution",
|
|
4110
|
+
"protocol": "arcane-native-builder/1",
|
|
4111
|
+
"normalization": "Uses descriptor services and selected exact-version host; identical to the default binding"
|
|
4112
|
+
},
|
|
4113
|
+
{
|
|
4114
|
+
"id": "native-macos-provider:default",
|
|
4115
|
+
"name": "default",
|
|
4116
|
+
"displayName": "arcaneNativeBuilderProvider default export",
|
|
4117
|
+
"kind": "singleton",
|
|
4118
|
+
"signature": "default as arcaneNativeBuilderProvider",
|
|
4119
|
+
"entrypoints": ["arcane-os/native/macos-provider"],
|
|
4120
|
+
"primaryImport": "arcane-os/native/macos-provider",
|
|
4121
|
+
"group": "macOS native provider",
|
|
4122
|
+
"summary": "Default binding for the same SDK Mac native provider.",
|
|
4123
|
+
"availability": "Node assembly; matching Darwin architecture and selected host artifact for execution",
|
|
4124
|
+
"protocol": "arcane-native-builder/1",
|
|
4125
|
+
"normalization": "Identical to named arcaneNativeBuilderProvider export"
|
|
4126
|
+
},
|
|
4127
|
+
{
|
|
4128
|
+
"id": "core-packaged-web:createPackagedWebService",
|
|
4129
|
+
"name": "createPackagedWebService",
|
|
4130
|
+
"displayName": "createPackagedWebService()",
|
|
4131
|
+
"kind": "function",
|
|
4132
|
+
"signature": "createPackagedWebService({artifactRoot},context={})",
|
|
4133
|
+
"entrypoints": ["arcane-os/core/packaged-web"],
|
|
4134
|
+
"primaryImport": "arcane-os/core/packaged-web",
|
|
4135
|
+
"group": "Native packaged web serving",
|
|
4136
|
+
"summary": "Owns one packaged HTTP listener, persisted loopback port, real readiness and draining shutdown inside Core.",
|
|
4137
|
+
"availability": "Node Core service lifetime",
|
|
4138
|
+
"protocol": "arcane/1 core.web.ready and core.web.failed events",
|
|
4139
|
+
"normalization": "Preserves full webRoot and start URL; stateRoot keeps the selected port across launches; no origin fallback on conflicts; unchanged launch record; explicit ready/failure events and complete listener lifecycle"
|
|
4140
|
+
},
|
|
4141
|
+
{
|
|
4142
|
+
"id": "core-preferences:createPreferencesService",
|
|
4143
|
+
"name": "createPreferencesService",
|
|
4144
|
+
"displayName": "createPreferencesService()",
|
|
4145
|
+
"kind": "function",
|
|
4146
|
+
"signature": "createPreferencesService({file}={})",
|
|
4147
|
+
"entrypoints": ["arcane-os/core/preferences"],
|
|
4148
|
+
"primaryImport": "arcane-os/core/preferences",
|
|
4149
|
+
"group": "Core preference persistence",
|
|
4150
|
+
"summary": "Supplies the five existing preference RPC methods with application-selected file storage.",
|
|
4151
|
+
"availability": "Node Core runtime",
|
|
4152
|
+
"protocol": "arcane/1 preferences methods and schemaVersion 1 entries file",
|
|
4153
|
+
"normalization": "Preserves exact keys, complete JSON values and existing metadata; writes use service lifetime and flush before acknowledgment; unreadable files remain untouched and drain waits for accepted work"
|
|
4154
|
+
},
|
|
4155
|
+
{
|
|
4156
|
+
"id": "core-preferences:default",
|
|
4157
|
+
"name": "default",
|
|
4158
|
+
"displayName": "createPreferencesService default export",
|
|
4159
|
+
"kind": "function",
|
|
4160
|
+
"signature": "default as createPreferencesService",
|
|
4161
|
+
"entrypoints": ["arcane-os/core/preferences"],
|
|
4162
|
+
"primaryImport": "arcane-os/core/preferences",
|
|
4163
|
+
"group": "Core preference persistence",
|
|
4164
|
+
"summary": "Default binding for the same Core preferences service factory.",
|
|
4165
|
+
"availability": "Node Core runtime",
|
|
4166
|
+
"protocol": "arcane/1 preferences methods and schemaVersion 1 entries file",
|
|
4167
|
+
"normalization": "Binding identity is exactly equal to the named createPreferencesService export"
|
|
4168
|
+
},
|
|
3987
4169
|
{
|
|
3988
4170
|
"id": "core-host:readCoreLaunchContext",
|
|
3989
4171
|
"name": "readCoreLaunchContext",
|
|
3990
4172
|
"displayName": "readCoreLaunchContext()",
|
|
3991
4173
|
"kind": "function",
|
|
3992
|
-
"signature": "readCoreLaunchContext({argv=process.argv.slice(2)}={})",
|
|
4174
|
+
"signature": "async readCoreLaunchContext({argv=process.argv.slice(2)}={})",
|
|
3993
4175
|
"entrypoints": ["arcane-os/core/host"],
|
|
3994
4176
|
"primaryImport": "arcane-os/core/host",
|
|
3995
4177
|
"group": "Native Core host composition",
|