arcane-os 0.54.0 → 0.55.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 +40 -0
- package/README.md +31 -26
- package/browser-runtime/ai/browser-decisions.mjs +2 -1
- package/browser-runtime/core/client.mjs +491 -0
- package/browser-runtime/core/contracts.mjs +84 -0
- package/docs/architecture.md +31 -23
- package/docs/compatibility.md +10 -1
- package/docs/platform-targets.md +20 -11
- package/docs/reference/README.md +8 -6
- package/docs/reference/ai/browser-decisions.md +1 -1
- package/docs/reference/availability-and-normalization.md +4 -2
- package/docs/reference/behavioral-testing.md +7 -6
- package/docs/reference/cli.md +12 -4
- package/docs/reference/core-client.md +120 -0
- package/docs/reference/core-native-packaging.md +149 -0
- package/docs/reference/core-runtime.md +175 -0
- package/docs/reference/inventory/package-api.json +257 -5
- package/docs/reference/protocols.md +16 -1
- package/docs/reference/sdk-api.md +772 -15
- package/package.json +10 -3
- package/schemas/native-build-plan.schema.json +8 -0
- package/src/cli/main.mjs +8 -6
- package/src/core/host.mjs +23 -0
- package/src/core/runtime.mjs +333 -0
- package/src/core/stdio.mjs +209 -0
- package/src/core-classic-source.mjs +43 -0
- package/src/import-map.mjs +62 -0
- package/src/native/portable-layout.mjs +184 -0
- package/src/native/portable-provider.mjs +211 -0
- package/src/native-plan.mjs +10 -4
- package/src/native-provider-loader.mjs +15 -4
- package/src/packager/core.mjs +47 -18
- package/src/targets/index.mjs +3 -1
- package/src/toolchain.mjs +20 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.55.0
|
|
4
|
+
|
|
5
|
+
- Add public Core client, protocol contracts and classic-script source generation
|
|
6
|
+
through `arcane-os/core/client`, `core/contracts` and `core/classic-source`.
|
|
7
|
+
Native facades install synchronously; the shared event owner retains ordered
|
|
8
|
+
early events and responses. Correlation, complete payloads and diagnostics,
|
|
9
|
+
cancellation and transport-versus-service readiness remain explicit.
|
|
10
|
+
- Add app-neutral native Core runtime and stdio transport through
|
|
11
|
+
`arcane-os/core/runtime` and `core/stdio`. Hosts register services, start them
|
|
12
|
+
independently and distinguish cancellable renderer requests from accepted
|
|
13
|
+
service-lifetime work. Graceful shutdown waits for accepted responses, service
|
|
14
|
+
drain/disposal and queued transport output without terminating the host.
|
|
15
|
+
- Add SDK-owned portable native payload assembly and explicit application-service
|
|
16
|
+
composition through `arcane-os/native/portable-provider` and `core/host`.
|
|
17
|
+
Portable provider loading no longer requires an Arcane OS checkout; explicit
|
|
18
|
+
checkout providers remain supported. Preserve complete selected releases,
|
|
19
|
+
dependency records and the application's actual SDK version separately from
|
|
20
|
+
the builder, including partial direct browser package projections. Portable
|
|
21
|
+
output declares the host's serving, client injection and stdio responsibilities;
|
|
22
|
+
it is not an executable platform host.
|
|
23
|
+
- Preserve Core client FIFO order during deferred event-owner handoff, report
|
|
24
|
+
asynchronous send failures after request settlement, retain original native
|
|
25
|
+
diagnostic fields and require callable transport sending before readiness.
|
|
26
|
+
- Correct disabled-PWA packaging so selected output documents lose active SDK
|
|
27
|
+
manifest and bootstrap references before native-module processing. Preserve
|
|
28
|
+
source PWA settings, unrelated authored links, inactive HTML and unselected
|
|
29
|
+
documents; enabled PWA generation keeps its existing behavior.
|
|
30
|
+
- Executable platform hosts and application host cutover remain separate work.
|
|
31
|
+
Applications retain service composition, model selection and saved settings.
|
|
32
|
+
No new dependency, automatic model loading or data migration is added.
|
|
33
|
+
|
|
34
|
+
## 0.54.1
|
|
35
|
+
|
|
36
|
+
- Select the self-contained Transformers.js 4.3.0 browser CDN bundle for
|
|
37
|
+
`createBrowserDecisionModel`. The prior `.web.js` entry expected a bundler
|
|
38
|
+
and left `onnxruntime-web/webgpu` unresolved in the native module Worker.
|
|
39
|
+
The runtime URL correction preserves exact Laya FP16/Julia FP32 selection,
|
|
40
|
+
full inputs/results, activation and cancellation; no new runtime version,
|
|
41
|
+
backend fallback, application default change or data migration is introduced.
|
|
42
|
+
|
|
3
43
|
## 0.54.0
|
|
4
44
|
|
|
5
45
|
- Add `WS` through `arcane-os/websocket-client` and the Node root export,
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ selected SDK projection or an explicit live SDK source mount. Both profiles
|
|
|
20
20
|
share the theme, packaging, event, cancellation,
|
|
21
21
|
and browser run contracts while retaining their selected application layout.
|
|
22
22
|
|
|
23
|
-
This checkout defines the `0.
|
|
23
|
+
This checkout defines the `0.55.0` SDK contract. Applications pin one exact npm
|
|
24
24
|
version and lockfile; registry state is deliberately not baked into application
|
|
25
25
|
artifacts.
|
|
26
26
|
|
|
@@ -594,10 +594,11 @@ Arcane root, shared, and native tests require the explicit shared focused-test
|
|
|
594
594
|
form above. External app repositories retain their root `test/` plus selected
|
|
595
595
|
app-test behavior.
|
|
596
596
|
|
|
597
|
-
Integrated native app builds
|
|
598
|
-
`--
|
|
599
|
-
|
|
600
|
-
|
|
597
|
+
Integrated native app builds select one `--app` and one declared native target,
|
|
598
|
+
and `--output-root` must resolve outside that checkout. An explicit
|
|
599
|
+
`--arcane-root` must resolve to the same Arcane checkout as `--workspace`;
|
|
600
|
+
the default portable provider instead comes from the installed SDK package.
|
|
601
|
+
The SDK then uses the same package, plan, provider, and
|
|
601
602
|
same-process run lifecycle as an external app repository. Verification remains
|
|
602
603
|
an explicit operation for a selected release output.
|
|
603
604
|
|
|
@@ -617,8 +618,8 @@ arcane package [--app <id>] [--dry-run]
|
|
|
617
618
|
arcane verify [--app <id>]
|
|
618
619
|
arcane bundle [--app <id>] [--artifact <file>.arcane-app.tar.gz] [--overwrite]
|
|
619
620
|
arcane verify-bundle <file.arcane-app.tar.gz>
|
|
620
|
-
arcane native-doctor --target <native-target> --arcane-root <directory>
|
|
621
|
-
arcane native-prepare --target <native-target> --arcane-root <directory>
|
|
621
|
+
arcane native-doctor --target <native-target> [--arcane-root <directory>]
|
|
622
|
+
arcane native-prepare --target <native-target> [--arcane-root <directory>]
|
|
622
623
|
arcane build --target <target> [--arcane-root <directory>] [--output-root <directory>] [--format <format>] [--signing <mode>]
|
|
623
624
|
arcane run [--target <target>] [--app <id>] [--arcane-root <directory>] [--output-root <directory>] [--format <format>] [--signing <mode>]
|
|
624
625
|
arcane targets
|
|
@@ -689,24 +690,25 @@ package installation, or assertions.
|
|
|
689
690
|
|
|
690
691
|
## Current target support
|
|
691
692
|
|
|
692
|
-
The SDK exposes one browser target and
|
|
693
|
-
|
|
694
|
-
Windows x64 unsigned-local-test EXE bundle, Linux x64 and Linux ARM64
|
|
693
|
+
The SDK exposes one browser target and an SDK-owned, non-runnable portable
|
|
694
|
+
payload directory. Four executable target entries require an explicit Arcane OS
|
|
695
|
+
provider: a Windows x64 unsigned-local-test EXE bundle, Linux x64 and Linux ARM64
|
|
695
696
|
unsigned-local-test DEBs, and an Android development-signed APK. The
|
|
696
697
|
`android-arm64` APK is architecture-neutral because it contains no native ABI;
|
|
697
698
|
the target name identifies its supported physical/native ARM64 run profile.
|
|
698
699
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
700
|
+
Portable uses the installed SDK provider without an Arcane OS checkout.
|
|
701
|
+
An explicit `--arcane-root` retains the checkout provider selection; executable
|
|
702
|
+
targets still require that root and their platform toolchains. Every native
|
|
703
|
+
build needs a canonical app descriptor declaring the exact selected target.
|
|
704
|
+
The SDK never searches for a mutable toolchain root. Scaffold a separate
|
|
703
705
|
repository with the matching `--target`, or add and validate that target in the
|
|
704
706
|
canonical descriptor before invoking its native command. From an external
|
|
705
707
|
application repository, run one selected target:
|
|
706
708
|
|
|
707
709
|
```bash
|
|
708
|
-
npm exec -- arcane native-doctor --target portable
|
|
709
|
-
npm exec -- arcane build --target portable
|
|
710
|
+
npm exec -- arcane native-doctor --target portable
|
|
711
|
+
npm exec -- arcane build --target portable
|
|
710
712
|
|
|
711
713
|
# Windows x64: build or build, verify, and launch in one process
|
|
712
714
|
npm exec -- arcane build --target windows-x64 --arcane-root "../Arcane OS"
|
|
@@ -737,15 +739,18 @@ browser package.
|
|
|
737
739
|
`native-prepare` is available as a standalone toolchain diagnostic. Do not run
|
|
738
740
|
it automatically: the build command prepares the selected toolchain itself.
|
|
739
741
|
|
|
740
|
-
The build
|
|
741
|
-
Core to
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
742
|
+
The build passes the complete selected app release, descriptor, dependencies and
|
|
743
|
+
minimum Core requirement to the provider. The SDK portable provider copies those
|
|
744
|
+
payloads and generates a Core entry and synchronous classic client. Explicit
|
|
745
|
+
application services use `createPortableNativeProvider({services:[{module,options}]})`
|
|
746
|
+
from `arcane-os/native/portable-provider`; the default imports no OS product or
|
|
747
|
+
application services. `arcane-os/core/host` owns reusable native service
|
|
748
|
+
composition and shutdown. See [Core native packaging](docs/reference/core-native-packaging.md).
|
|
749
|
+
Payload assembly is separate from composed-host compatibility and execution.
|
|
750
|
+
The portable payload under `build/portable/` is not executable and
|
|
751
|
+
`arcane run --target portable` is intentionally unavailable. No executable host,
|
|
752
|
+
installer, model assets or platform build toolchain is added by this SDK
|
|
753
|
+
provider. Through explicit Arcane OS providers, Windows emits
|
|
749
754
|
an app-scoped executable bundle under `build/windows-x64/`. Linux emits an
|
|
750
755
|
app-scoped amd64 DEB under `build/linux-x64/` or ARM64 DEB under
|
|
751
756
|
`build/linux-arm64/`. Android emits one development-signed, architecture-neutral
|
|
@@ -778,7 +783,7 @@ signing, store-publishing, release, or promotion evidence.
|
|
|
778
783
|
| Integrated Arcane checkout workflow | Yes |
|
|
779
784
|
| ArcaneOllama managed-service check | Yes on supported Windows hosts |
|
|
780
785
|
| SDK native plan/provider boundary | Yes |
|
|
781
|
-
| Portable app-scoped Core
|
|
786
|
+
| Portable app-scoped payload and reusable Core entry | SDK provider by default; explicit checkout override retained; not directly runnable |
|
|
782
787
|
| Windows x64 EXE bundle | Yes, unsigned local development with explicit `--arcane-root` |
|
|
783
788
|
| Linux x64 DEB | Yes, unsigned local development with explicit `--arcane-root` |
|
|
784
789
|
| Linux ARM64 DEB | Yes, unsigned local development on a compatible native ARM64 toolchain with explicit `--arcane-root`; native build, WebKit readiness, and cancellation evidence is recorded |
|
|
@@ -3,7 +3,8 @@ import {createArcaneEventSource} from '../event-manager.mjs';
|
|
|
3
3
|
|
|
4
4
|
const is = new Is(false);
|
|
5
5
|
const STATE_EVENT = 'ai.decisions.state';
|
|
6
|
-
|
|
6
|
+
// The CDN bundle includes ONNX Runtime; the .web build leaves bare imports for bundlers.
|
|
7
|
+
const DEFAULT_RUNTIME_MODULE = 'https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.3.0/dist/transformers.min.js';
|
|
7
8
|
|
|
8
9
|
function requiredText(value, name) {
|
|
9
10
|
if (!is.string(value) || value.length === 0) {
|