arcane-os 0.57.0 → 0.59.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.
Files changed (60) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +6 -2
  3. package/browser-runtime/ai/core-onnx.mjs +96 -0
  4. package/browser-runtime/ai/onnx-tensors.mjs +85 -0
  5. package/browser-runtime/core/client.mjs +152 -17
  6. package/docs/architecture.md +5 -2
  7. package/docs/platform-targets.md +30 -13
  8. package/docs/reference/README.md +22 -3
  9. package/docs/reference/availability-and-normalization.md +14 -7
  10. package/docs/reference/cli.md +22 -10
  11. package/docs/reference/core-client.md +87 -0
  12. package/docs/reference/core-native-packaging.md +129 -9
  13. package/docs/reference/core-preferences.md +49 -0
  14. package/docs/reference/diarization.md +206 -0
  15. package/docs/reference/git-text-snapshot.md +104 -0
  16. package/docs/reference/inventory/package-api.json +205 -23
  17. package/docs/reference/local-ai.md +145 -11
  18. package/docs/reference/protocols.md +28 -19
  19. package/docs/reference/pwa.md +74 -4
  20. package/docs/reference/sdk-api.md +589 -39
  21. package/package.json +11 -3
  22. package/schemas/arcane-app.schema.json +3 -3
  23. package/schemas/arcane-package.schema.json +2 -2
  24. package/schemas/native-build-plan.schema.json +27 -1
  25. package/schemas/target-adapter.schema.json +2 -0
  26. package/src/app-descriptor.mjs +1 -1
  27. package/src/cli/main.mjs +14 -4
  28. package/src/constants.mjs +2 -0
  29. package/src/core/host.mjs +14 -5
  30. package/src/core/hosts/macos/ArcaneHost.h +86 -0
  31. package/src/core/hosts/macos/ArcaneHost.m +455 -0
  32. package/src/core/hosts/macos/ArcaneLauncher.m +432 -0
  33. package/src/core/hosts/windows/ArcaneLauncher.cs +4 -1
  34. package/src/core/services/local-ai.mjs +82 -4
  35. package/src/core/services/packaged-web.mjs +89 -0
  36. package/src/core/services/preferences.mjs +201 -0
  37. package/src/core-classic-source.mjs +2 -2
  38. package/src/dev-server.mjs +2 -5
  39. package/src/diarization/build.mjs +35 -0
  40. package/src/diarization/index.mjs +432 -0
  41. package/src/diarization/native/CMakeLists.txt +9 -0
  42. package/src/diarization/native/main.cpp +269 -0
  43. package/src/diarization/service.mjs +129 -0
  44. package/src/git-text-snapshot.mjs +265 -0
  45. package/src/import-map.mjs +9 -4
  46. package/src/index.mjs +1 -0
  47. package/src/local-ai/config.mjs +1 -1
  48. package/src/local-ai/install.mjs +134 -19
  49. package/src/local-ai/onnx-worker.mjs +85 -0
  50. package/src/local-ai/onnx.mjs +368 -0
  51. package/src/native/macos-provider.mjs +291 -0
  52. package/src/native/portable-layout.mjs +10 -2
  53. package/src/native/portable-provider.mjs +10 -5
  54. package/src/native-plan.mjs +9 -1
  55. package/src/native-provider-loader.mjs +3 -1
  56. package/src/process.mjs +123 -17
  57. package/src/scaffold.mjs +1 -1
  58. package/src/targets/index.mjs +11 -1
  59. package/src/templates/workspace-template.mjs +6 -5
  60. package/src/toolchain.mjs +42 -13
@@ -47,12 +47,14 @@ These protocols normalize orchestration and results. They do not normalize a
47
47
  Windows EXE, Linux DEB, Android APK, and portable directory into the same
48
48
  artifact kind.
49
49
 
50
- Portable CLI operations load the installed SDK's
51
- `arcane-os/native/portable-provider` by default. Explicit `--arcane-root`
52
- selection retains the checkout provider route; executable targets still need
53
- their platform provider/toolchain. `arcane-os/core/host` composes the reusable
54
- native runtime with explicitly supplied app services. Neither export is a
55
- browser import, executable host or installer. The synchronous classic facade
50
+ Portable CLI operations load `arcane-os/native/portable-provider`; Windows x64
51
+ loads `arcane-os/native/windows-provider`, both from the installed SDK by
52
+ default. The Windows provider assembles the matching precompiled WebView2/SEA
53
+ host release asset. Explicit `--arcane-root` selection retains the checkout
54
+ route; Linux and Android still need their platform provider/toolchain.
55
+ `arcane-os/core/host` composes the reusable native runtime with explicitly
56
+ supplied app services. These Node entries remain separate from browser imports;
57
+ portable itself remains a non-executable payload. The synchronous classic facade
56
58
  and browser-safe client retain their separate public entries. Integrated
57
59
  shared checks keep their existing Arcane OS development provider.
58
60
 
@@ -1047,10 +1049,15 @@ or a dependency is ready.
1047
1049
 
1048
1050
  ### Microsoft NT / WebView2
1049
1051
 
1050
- The renderer uses the WebView2 host messaging surface. The host binds one app
1051
- identity and native policy to the session before Core dispatch. Microsoft NT
1052
- can expose managed-service and privileged platform operations that do not exist
1053
- in an ordinary browser.
1052
+ The SDK Windows host mounts the selected app at a virtual HTTPS origin and
1053
+ injects the canonical classic facade before application scripts. Ordered
1054
+ `arcane/1` requests and complete responses cross its owned WebView2/Core bridge;
1055
+ each connected document requests authoritative runtime/service replay. Its
1056
+ selected service composition supplies the actual methods. Closing the window
1057
+ cancels renderer requests and drains accepted service work before Core exits.
1058
+ See [Windows executable packaging](core-native-packaging.md#windows-executable).
1059
+ Arcane OS can separately compose product policy and privileged services; the
1060
+ generic SDK host does not copy that product composition.
1054
1061
 
1055
1062
  ### Linux / WebKitGTK
1056
1063
 
@@ -1070,12 +1077,13 @@ reachable.
1070
1077
 
1071
1078
  ### macOS
1072
1079
 
1073
- No macOS executable target, native bridge, platform host, artifact, or run
1074
- contract is exposed by this SDK version. A browser may still run browser-only
1075
- application code. A separately composed macOS host may use the reusable Node
1076
- Core runtime, framed stdio transport, host composition, and portable payload,
1077
- but those SDK primitives do not create a native bridge or executable host and
1078
- do not by themselves satisfy a native capability.
1080
+ This version includes Foundation-only `ArcaneCoreProcess` source for an
1081
+ explicit executable, framed pipes and graceful child lifecycle. It supplies no
1082
+ macOS renderer bridge, executable target, artifact or run command. A separately
1083
+ composed macOS host may combine that source with the reusable Node runtime,
1084
+ stdio transport, host composition and portable payload. Source delivery does
1085
+ not establish compilation or execution on macOS. See
1086
+ [the macOS process-source contract](core-native-packaging.md#macos-process-source).
1079
1087
 
1080
1088
  ## Development and remote HTTP transport
1081
1089
 
@@ -1159,9 +1167,10 @@ The common contract ends where platform truth must remain different:
1159
1167
  not run an unrelated browser implementation as a substitute;
1160
1168
  - the portable target defaults to the installed SDK provider and assembles a
1161
1169
  non-executable payload without an Arcane OS checkout;
1162
- - executable native targets require their explicit checkout/provider, and the
1163
- composed host must supply the protocol, version, features, capabilities,
1164
- methods, and services that its application contract requires;
1170
+ - Windows x64 defaults to the installed SDK's matching precompiled host;
1171
+ Linux/Android retain explicit checkout/providers. Every composed host must
1172
+ supply the protocol, version, features, capabilities, methods and services
1173
+ that its application contract requires;
1165
1174
  - that current-build compatibility does not promise that a future SDK will accept
1166
1175
  this Core or that this SDK will accept a future Core.
1167
1176
 
@@ -94,14 +94,81 @@ packaging use that layout directly:
94
94
  packaged installation ID remains `./`, and an explicit `manifest.id` remains
95
95
  authoritative. An ID identifies the installation; it does not generate a
96
96
  directory or a redirect.
97
- - Authored resources follow their normal include/exclude selection. Generation
98
- does not delete existing files, stored application data, or worker caches.
97
+ - Authored resources follow their normal include/exclude selection. Ordinary
98
+ generation preserves existing files, stored application data, and worker caches.
99
+ Explicit retirement of confirmed generated source output is described below.
99
100
 
100
101
  Generated and offline app files are committed. GitHub Actions consume those
101
102
  committed files rather than generating them. Actual multi-app workspaces keep
102
103
  their explicit `appsRoot: "apps"` layout. This source/package contract does not
103
104
  establish any particular installed application's browser lifecycle.
104
105
 
106
+ ### Disable source PWA generation and retire generated output
107
+
108
+ Set `package.pwa.enabled:false` in `arcane-app.json` (or `pwa.enabled:false` in
109
+ an authored schema-1 `arcane-package.json`), then run the public import-map
110
+ operation. For standalone `appsRoot:"."` applications, disabled refresh removes
111
+ active `data-arcane-pwa` registration scripts and matching manifest relationships
112
+ marked `data-arcane-manifest` from the selected application documents. Root source
113
+ generation marks only manifest links it newly inserts; it does not claim an
114
+ existing unmarked link as its own. A wholly omitted `pwa` record does not select
115
+ source retirement.
116
+
117
+ By default, unmarked manifest references and all existing PWA files remain in
118
+ place. This preserves authored resources that happen to use the standard names.
119
+ Older SDK source generation emitted an unmarked manifest link. When the
120
+ application owner has established that this link and the four standard root
121
+ outputs are SDK-generated, use the same public toolchain with an explicit
122
+ ownership declaration:
123
+
124
+ ```js
125
+ import {createToolchain} from 'arcane-os';
126
+
127
+ const toolchain = createToolchain({workspaceRoot: process.cwd(), appId: 'my-app'});
128
+ await toolchain.importMap({retireGeneratedPwa: true});
129
+ ```
130
+
131
+ Before retirement, remove any explicit entries for these generated outputs from
132
+ the application's `package.include` selection. They are generated output, not
133
+ required source input; leaving a deleted file as a required input would make the
134
+ next inspection fail. Keep authored selection changes with the application
135
+ owner. Confirm that unselected documents or separately hosted pages do not still
136
+ need the retiring files; this operation does not rewrite those pages.
137
+
138
+ With PWA disabled, `retireGeneratedPwa:true` also removes selected-document
139
+ manifest relationships resolving to the root `arcane.webmanifest`, including
140
+ older unmarked generated links, and deletes exactly these confirmed generated
141
+ files at the application root:
142
+
143
+ - `arcane.webmanifest`
144
+ - `arcane-offline.json`
145
+ - `arcane-sw.js`
146
+ - `arcane-pwa.mjs`
147
+
148
+ The option is an application-owner declaration of generated ownership, not a
149
+ filename-based inference. Omit it when any listed file or matching manifest
150
+ reference is authored or its ownership is unknown. It is available through
151
+ `createToolchain().importMap()` and `executeOperation('import-map', options)`;
152
+ there is no new CLI flag. The ordinary CLI refresh performs marked-reference
153
+ retirement only. An enabled descriptor ignores this retirement option and
154
+ continues normal generation.
155
+
156
+ With the source selection updated, repeated retirement accepts already-absent
157
+ generated files. The
158
+ `import-map.root-files.completed` event reports the paths actually removed in
159
+ `retiredPwa`. Re-enabling PWA regenerates its normal root output and references.
160
+ The operation leaves other files (including a separate `manifest.json`), other
161
+ link relationships, inactive HTML, unselected documents, SDK mappings, and
162
+ application content unchanged. It never unregisters an already registered
163
+ service worker, clears caches, or changes browser saved data. Existing browser
164
+ registrations therefore keep their own lifecycle; source retirement is not a
165
+ claim that an installed browser PWA was removed. Package-output behavior below
166
+ is unchanged.
167
+
168
+ Reference updates finish before file removal begins. Cancellation or a file
169
+ error is reported without undoing earlier completed changes; a later call can
170
+ finish retirement. The operation does not claim an all-or-nothing transaction.
171
+
105
172
  ### Authored host root and app entry
106
173
 
107
174
  An authored `index.html` at the source host root keeps `/` separate from the
@@ -261,11 +328,14 @@ origin root and starts at the selected app entry: `/index.html` for a standalone
261
328
  root app with that entry, or `/apps/<id>/<entry>` for a nested app. Use one
262
329
  selected app per development origin. The SDK uses `node-http-server` for source
263
330
  and packaged-preview serving, including conditional resource responses.
264
- Arcane development servers default to HTTPS, including localhost, and packaged
265
- browser previews require HTTPS. Configure the workspace certificate pair before
331
+ Arcane development servers and packaged browser previews default to HTTPS,
332
+ including localhost. Configure the workspace certificate pair before
266
333
  starting the ordinary command; see [development HTTPS setup](cli.md#development-https-setup).
267
334
  Explicit source-only `arcane dev --http` serves the same generated PWA routes
268
335
  without loading certificates; see [explicit HTTP development](cli.md#explicit-http-development).
336
+ API callers may select `http:true` in packaged mode to serve the existing
337
+ packaged web root, without generating or changing its PWA files. Browser
338
+ secure-context and installation requirements remain browser-owned.
269
339
  `--public` selects the IPv4 wildcard bind address; it does not enable PWA
270
340
  configuration, change manifest metadata, or determine browser installability.
271
341