arcane-os 0.88.1 → 0.90.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 +34 -0
- package/browser-runtime/ai/browser-decisions.mjs +31 -4
- package/browser-runtime/ai/core-local.mjs +105 -25
- package/browser-runtime/ai/decision-runtime.mjs +7 -0
- package/browser-runtime/ai/decision-worker.mjs +9 -1
- package/browser-runtime/core/client.mjs +6 -0
- package/browser-runtime/core/contracts.mjs +10 -0
- package/docs/reference/ai/browser-decisions.md +89 -7
- package/docs/reference/core-client.md +59 -0
- package/docs/reference/core-native-packaging.md +62 -10
- package/docs/reference/core-repositories.md +104 -8
- package/docs/reference/git-text-snapshot.md +16 -1
- package/docs/reference/inventory/package-api.json +25 -25
- package/docs/reference/inventory/runtime-components.json +1 -1
- package/docs/reference/inventory/runtime-modules.json +4 -4
- package/docs/reference/local-ai.md +108 -9
- package/docs/reference/mcp-stdio.md +76 -1
- package/docs/reference/native-app-control.md +17 -5
- package/docs/reference/protocols.md +14 -0
- package/docs/reference/runtime-modules.md +9 -3
- package/docs/reference/sdk-api.md +202 -35
- package/package.json +2 -2
- package/runtime/arcane/modules/RiskSignalAnalyzer.js +1 -5
- package/schemas/arcane-app.schema.json +13 -3
- package/schemas/arcane-package.schema.json +10 -1
- package/src/app-descriptor.mjs +6 -2
- package/src/cli/app-control.mjs +1 -1
- package/src/core/hosts/windows/ArcaneHost.cs +273 -5
- package/src/core/hosts/windows/ArcaneLauncher.cs +9 -0
- package/src/core/hosts/windows/ArcaneWindowControl.cs +7 -7
- package/src/core/repositories.mjs +17 -6
- package/src/core/services/local-ai.mjs +183 -22
- package/src/git-text-snapshot.mjs +4 -2
- package/src/installed-sdk-runtime.mjs +2 -0
- package/src/local-ai/config.mjs +16 -0
- package/src/local-ai/dev.mjs +2 -2
- package/src/local-ai/discover.mjs +3 -0
- package/src/local-ai/install.mjs +130 -20
- package/src/local-ai/llama-execution-windows.ps1 +158 -0
- package/src/local-ai/llama-execution.mjs +169 -0
- package/src/local-ai/server.mjs +38 -8
- package/src/native/portable-layout.mjs +13 -3
- package/src/repository.mjs +33 -8
- package/src/workspace-runtime.mjs +97 -1
|
@@ -161,6 +161,65 @@ pre-aborted signal sends no transcription request; an in-flight abort sends
|
|
|
161
161
|
service owns interruption and release of its actual engine operation.
|
|
162
162
|
Its optional request observer uses the same pre-dispatch correlation contract.
|
|
163
163
|
|
|
164
|
+
## Current-window state
|
|
165
|
+
|
|
166
|
+
`Arcane.window.state({signal}?)` reads the native window hosting the calling
|
|
167
|
+
document. `Arcane.window.setState({state}, {signal}?)` selects `normal`,
|
|
168
|
+
`maximized`, or `fullscreen` for that same window. Both use the existing
|
|
169
|
+
request lifetime and return `{platform:'windows', supported:true, state}`.
|
|
170
|
+
The observed `state` can also be `minimized`; minimize remains a native window
|
|
171
|
+
control rather than a selectable state in this operation.
|
|
172
|
+
|
|
173
|
+
```js
|
|
174
|
+
async function selectObservatoryWindow(state) {
|
|
175
|
+
const result=await Arcane.window.setState({state});
|
|
176
|
+
console.log('Observatory window state:',result.state);
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Call this operation when the application's own setting or user action selects
|
|
181
|
+
a state. Initial state belongs to the descriptor's optional
|
|
182
|
+
[`native.window.state`](core-native-packaging.md#initial-native-window-size)
|
|
183
|
+
field. Saved Settings, their loading and the choice to persist a state remain
|
|
184
|
+
application-owned; the SDK adds no saved-state store or page-startup barrier.
|
|
185
|
+
|
|
186
|
+
The Windows host uses ordinary native normal/maximized states. Fullscreen
|
|
187
|
+
removes the window frame and occupies the selected monitor's full bounds,
|
|
188
|
+
including its taskbar area. It retains the preceding normal bounds and frame
|
|
189
|
+
controls for restoration. Selecting normal restores them; selecting maximized
|
|
190
|
+
restores them before maximizing. This is native window fullscreen, separate
|
|
191
|
+
from the browser Fullscreen API. It does not select TopMost, request foreground
|
|
192
|
+
activation, change the profile/origin or restart Core. A minimized fullscreen
|
|
193
|
+
window reports `minimized` until restored or another state is selected.
|
|
194
|
+
|
|
195
|
+
Visible transitions use a temporary native callback confined to this window's
|
|
196
|
+
UI thread and synchronous operation. It prevents activation of this window and
|
|
197
|
+
focus assignment to it or its descendants, then releases the callback. Other
|
|
198
|
+
windows and ordinary input remain untouched. Hidden initial configuration and
|
|
199
|
+
already-selected states allocate no callback; the application's ordinary first
|
|
200
|
+
show keeps its existing startup behavior. State reads observe the native
|
|
201
|
+
minimized/maximized state, rather than merely echoing the requested selection.
|
|
202
|
+
|
|
203
|
+
Malformed selections reject with `INVALID_ARGUMENT`; native operation failures
|
|
204
|
+
reject with `ARCANE_WINDOW_STATE_FAILED`. Complete native error/cause fields
|
|
205
|
+
remain available, with `details.requested`, `details.previous` and
|
|
206
|
+
`details.actual` describing the attempted selection and observed state. A
|
|
207
|
+
partial native change is observable rather than rolled back. Cancellation
|
|
208
|
+
suppresses late responses and does not undo a change the host already applied.
|
|
209
|
+
If native callback cleanup fails, it stops preventing activation immediately,
|
|
210
|
+
its handle remains owned, and the failure is returned. Simultaneous mutation and
|
|
211
|
+
cleanup failures retain both original errors. The owning window makes another
|
|
212
|
+
cleanup attempt during its normal close and reports any remaining failure.
|
|
213
|
+
State changes survive document navigation, while each response remains
|
|
214
|
+
correlated to its originating document. There is no state-change event in this
|
|
215
|
+
contract; `state()` reads the current native state when requested.
|
|
216
|
+
|
|
217
|
+
These methods require the matching Windows host executable. The current macOS,
|
|
218
|
+
Linux and Android hosts have no implementation of these operations; their
|
|
219
|
+
actual unavailable-method errors remain observable. Ordinary browsers have no
|
|
220
|
+
native window transport. The facade supplies no browser or other-host fallback,
|
|
221
|
+
and importing it does not add support to an older native executable.
|
|
222
|
+
|
|
164
223
|
## Current-window theme
|
|
165
224
|
|
|
166
225
|
`Arcane.window.setTheme(presentation, {signal}?)` changes only the window
|
|
@@ -149,6 +149,37 @@ same owner with an origin-root URL, including on nested pages. It does not creat
|
|
|
149
149
|
a second event implementation. A plain file-URL launch without this host mapping
|
|
150
150
|
is not the native serving contract. No host is launched during packaging.
|
|
151
151
|
|
|
152
|
+
## App-owned runtime entry
|
|
153
|
+
|
|
154
|
+
The generated `runtime/arcane-core.mjs` also accepts
|
|
155
|
+
`--arcane-app-entry <app-relative-module>`. This explicit mode imports the
|
|
156
|
+
selected file from the artifact's `app/` directory before ordinary launch-context
|
|
157
|
+
or service initialization. It preserves the complete original `process.argv`
|
|
158
|
+
and converts the native path to a file URL without treating filename characters
|
|
159
|
+
as URL query or fragment syntax. Missing/empty selections and actual import
|
|
160
|
+
failures propagate; there is no fallback to ordinary Core.
|
|
161
|
+
|
|
162
|
+
Use the existing Windows `runtime/ArcaneCore.exe` with that flag and module path
|
|
163
|
+
directly. On macOS, use bundled `runtime/node` with `runtime/arcane-core.mjs`
|
|
164
|
+
followed by the flag and module path. Portable payloads use the host's supported
|
|
165
|
+
Node executable with that same generated entry. The macOS artifact root is its
|
|
166
|
+
`.app/Contents/Resources` directory. This mode needs no new executable, SEA
|
|
167
|
+
loader, GUI launcher, or copied runtime.
|
|
168
|
+
|
|
169
|
+
The app includes the module and its complete source closure through
|
|
170
|
+
[`package.nativeResources`](#native-only-application-resources). The imported
|
|
171
|
+
entry starts its own top-level work, not an `import.meta.main`-guarded entry or
|
|
172
|
+
an automatically invoked export. It owns any explicit launch-context read,
|
|
173
|
+
application services, MCP tools, signals and shutdown. No ordinary Core host,
|
|
174
|
+
shared-host bridge, manifest services, model startup or Core pipe framing is
|
|
175
|
+
started by this branch. Static SDK definition imports remain available; the
|
|
176
|
+
ordinary parallel service imports and host lifetime stay unchanged when the
|
|
177
|
+
flag is absent.
|
|
178
|
+
|
|
179
|
+
For complete client command arrays, optional `--arcane-launch-config` handling,
|
|
180
|
+
and MCP STDIO lifetime ownership, see
|
|
181
|
+
[launch from a native package](mcp-stdio.md#launch-from-a-native-package).
|
|
182
|
+
|
|
152
183
|
## Explicit application services
|
|
153
184
|
|
|
154
185
|
For the ordinary SDK build command, select native service modules in the
|
|
@@ -370,6 +401,11 @@ or service. Availability of a particular engine belongs to the selected
|
|
|
370
401
|
local-AI installer and service; a generic ONNX runtime is not a speech model.
|
|
371
402
|
|
|
372
403
|
Selected `onnx` bundles its complete managed `onnxruntime-node` dependency tree.
|
|
404
|
+
For the SDK-selected Windows x64 ONNX `1.30.0` distribution, that tree includes
|
|
405
|
+
the corrected native libraries and its runtime record retains
|
|
406
|
+
`nativeDistributionRevision: '1.30.0-directml-reshape-1'`. See
|
|
407
|
+
[ONNX runtime preparation](local-ai.md#development) for selection,
|
|
408
|
+
release-asset acquisition and existing-installation behavior.
|
|
373
409
|
Its `modulePath` resolves against the artifact root just as a server runtime's
|
|
374
410
|
`executable` does. Library/module records need no executable. The generated Core
|
|
375
411
|
service exposes retained worker sessions through `onnx.load/run/unload/status`;
|
|
@@ -489,7 +525,7 @@ forced process termination.
|
|
|
489
525
|
|
|
490
526
|
### Initial native window size
|
|
491
527
|
|
|
492
|
-
An application can select its initial client area
|
|
528
|
+
An application can select its initial client area, resizing behavior and state in
|
|
493
529
|
`arcane-app.json`, independently of its page layout:
|
|
494
530
|
|
|
495
531
|
```json
|
|
@@ -499,15 +535,17 @@ An application can select its initial client area and resizing behavior in
|
|
|
499
535
|
"icon": "img/icon.png",
|
|
500
536
|
"order": 100,
|
|
501
537
|
"bundledApps": [],
|
|
502
|
-
"window": {"width": 1280, "height": 800, "resizable": true}
|
|
538
|
+
"window": {"width": 1280, "height": 800, "resizable": true, "state": "normal"}
|
|
503
539
|
}
|
|
504
540
|
}
|
|
505
541
|
```
|
|
506
542
|
|
|
507
543
|
This is the `native` portion of the existing app descriptor. Each `window`
|
|
508
544
|
member is optional. `width` and `height` are positive integral client dimensions
|
|
509
|
-
in logical pixels at 96 DPI; `resizable` is a boolean.
|
|
510
|
-
|
|
545
|
+
in logical pixels at 96 DPI; `resizable` is a boolean. Optional `state` is
|
|
546
|
+
`normal`, `maximized`, or `fullscreen`. These example dimensions are an explicit
|
|
547
|
+
application choice, not SDK-wide defaults. Omitting a member retains the host's
|
|
548
|
+
existing choice, and omitting `window` preserves existing startup.
|
|
511
549
|
The native registry projection preserves the record; the browser package
|
|
512
550
|
projection gains no window controls. Portable and Windows assembly copy the
|
|
513
551
|
record to `arcane-native.json` as `window`, without changing page or service
|
|
@@ -517,16 +555,30 @@ The matching Windows host applies the dimensions once on initial load, using
|
|
|
517
555
|
the display DPI and fitting the outer window within the selected monitor's
|
|
518
556
|
usable work area. This fit does not impose a persistent maximum size. Explicit
|
|
519
557
|
`resizable:false` uses a fixed frame and disables the maximize control; `true`
|
|
520
|
-
permits ordinary resizing and maximizing.
|
|
521
|
-
|
|
522
|
-
|
|
558
|
+
permits ordinary resizing and maximizing. The selected initial state is applied
|
|
559
|
+
after this normal-window sizing, so those normal bounds remain available when
|
|
560
|
+
returning from maximized or fullscreen. Fullscreen uses a borderless window at
|
|
561
|
+
the selected monitor's full bounds, including the taskbar area, without setting
|
|
562
|
+
TopMost or requesting activation. Returning to normal restores the retained
|
|
563
|
+
normal bounds and original frame, minimize/maximize and control-box settings.
|
|
564
|
+
Selecting maximized from fullscreen restores them before maximizing.
|
|
565
|
+
|
|
566
|
+
Later app/user resizing remains untouched. A composing launcher's `Load` handler
|
|
567
|
+
runs after the initial sizing and optional state selection. Applications can
|
|
568
|
+
read or change their own window through
|
|
569
|
+
[`Arcane.window.state()` and `setState({state})`](core-client.md#current-window-state).
|
|
570
|
+
The application's saved Settings and their application remain application-owned;
|
|
571
|
+
the SDK adds no saved-state or saved-bounds store and does not delay rendering
|
|
572
|
+
for those settings. The window's profile, origin and Core lifetime are unchanged.
|
|
523
573
|
|
|
524
574
|
Direct Windows host composition uses nullable `ArcaneHostOptions` members
|
|
525
|
-
`InitialClientWidth`, `InitialClientHeight`,
|
|
526
|
-
semantics. Older precompiled Windows hosts
|
|
575
|
+
`InitialClientWidth`, `InitialClientHeight`, `Resizable`, and optional string
|
|
576
|
+
`InitialWindowState` with the same semantics. Older precompiled Windows hosts
|
|
577
|
+
do not read these options; use the
|
|
527
578
|
matching SDK host archive when rebuilding an application. The portable record
|
|
528
579
|
is available to platform adapters; this addition implements its Windows host
|
|
529
|
-
behavior and leaves window sizing on other platforms unchanged.
|
|
580
|
+
behavior and leaves window sizing/state on other platforms unchanged. The current
|
|
581
|
+
other-platform hosts do not implement this state selection.
|
|
530
582
|
|
|
531
583
|
### Application icon and window colors
|
|
532
584
|
|
|
@@ -47,7 +47,7 @@ const status = await repository.status({signal});
|
|
|
47
47
|
await repository.close();
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
`createRepositoryWorkspace({name,directory,dataRoot,remote,branch,longPaths,gitIdentity,onEvent,run}={})`
|
|
50
|
+
`createRepositoryWorkspace({name,directory,dataRoot,remote,remoteBase,branch,longPaths,cloneIdentity,gitIdentity,onEvent,run}={})`
|
|
51
51
|
returns `{directory,open,status,configuration,pull,push,write,close,drain,dispose}`. The `directory`
|
|
52
52
|
property is the absolute selected working path.
|
|
53
53
|
|
|
@@ -63,11 +63,19 @@ property is the absolute selected working path.
|
|
|
63
63
|
`branch`, when supplied, is passed unchanged to Git's `clone --branch` option;
|
|
64
64
|
otherwise Git selects the remote's default branch. Existing checkouts keep
|
|
65
65
|
their own branch, remote, tracked files, untracked files and local changes.
|
|
66
|
+
- Supplying `remoteBase` explicitly declares this initial-clone `remote` to be
|
|
67
|
+
a local filesystem locator. Its native absolute command argument is captured
|
|
68
|
+
during construction. Omission leaves Git's original string interpretation
|
|
69
|
+
unchanged. See [relative local repository locators](#relative-local-repository-locators).
|
|
66
70
|
- Optional `longPaths` is a boolean for newly cloned Windows checkouts. Explicit
|
|
67
71
|
`true` or `false` supplies `clone --config core.longpaths=<value>`, so Git
|
|
68
72
|
writes that choice to the new repository before its first checkout. Omission
|
|
69
73
|
leaves Git's configuration unchanged. The option does not rewrite an existing
|
|
70
74
|
checkout, change a global setting, or alter non-Windows clone commands.
|
|
75
|
+
- Optional `cloneIdentity:{name?,email?}` persists explicitly selected author
|
|
76
|
+
fields in a newly cloned repository's local Git configuration. Omitted fields
|
|
77
|
+
keep Git's ordinary inheritance; existing checkouts retain their configuration.
|
|
78
|
+
See [clone-local author selection](#clone-local-author-selection).
|
|
71
79
|
- `onEvent` and optional `run` use the existing SDK process owner. The default
|
|
72
80
|
adapter is `runProcess`; Git must be available on PATH. Credentials and
|
|
73
81
|
authentication remain with Git and the native host. The SDK adds no download,
|
|
@@ -169,13 +177,13 @@ commands for an attached local branch, or three otherwise. Results are not a
|
|
|
169
177
|
transaction with later work or external Git activity. The app owns any decision
|
|
170
178
|
that the current checkout corresponds to its selected repository and branch.
|
|
171
179
|
|
|
172
|
-
The optional `target:{remote,ref}` on `pull`, `push` and `write` selects
|
|
173
|
-
operation's Git destination.
|
|
180
|
+
The optional `target:{remote,ref,remoteBase?}` on `pull`, `push` and `write` selects
|
|
181
|
+
that operation's Git destination. `remote` and `ref` are nonempty strings representable by
|
|
174
182
|
the native process transport. The SDK captures their exact strings when the
|
|
175
183
|
call is accepted; later edits to the target object or UI selection cannot
|
|
176
184
|
redirect queued or active work. Git owns ref parsing, URL interpretation,
|
|
177
185
|
credentials, hooks and remote outcomes. This target is independent of the
|
|
178
|
-
factory's `remote`/`branch`, which remain initial-clone inputs only.
|
|
186
|
+
factory's `remote`/`remoteBase`/`branch`, which remain initial-clone inputs only.
|
|
179
187
|
|
|
180
188
|
```javascript
|
|
181
189
|
const observed = await repository.configuration({signal});
|
|
@@ -204,6 +212,54 @@ observe, refresh, write and publish. See Git's [pull](https://git-scm.com/docs/g
|
|
|
204
212
|
[push](https://git-scm.com/docs/git-push) and [configuration](https://git-scm.com/docs/git-config)
|
|
205
213
|
contracts.
|
|
206
214
|
|
|
215
|
+
### Relative local repository locators
|
|
216
|
+
|
|
217
|
+
`remoteBase` is an explicit local-path choice, not a hint for a URL parser.
|
|
218
|
+
With it, the SDK derives the Git remote argument using the host's native
|
|
219
|
+
`path.resolve(remoteBase, remote)`. A relative base, including `''` for the
|
|
220
|
+
current directory, is resolved once when a workspace/snapshot owner is
|
|
221
|
+
constructed or a targeted operation is accepted. Later working-directory or
|
|
222
|
+
options-object changes cannot redirect that accepted operation. Base text
|
|
223
|
+
must be representable as a native filesystem path; invalid non-string, NUL or
|
|
224
|
+
unpaired-surrogate input reports `TypeError` without changing the supplied text.
|
|
225
|
+
|
|
226
|
+
Use the same selected absolute base for owners created at different times:
|
|
227
|
+
|
|
228
|
+
```javascript
|
|
229
|
+
import {createGitTextSnapshot} from 'arcane-os';
|
|
230
|
+
import {createRepositoryWorkspace} from 'arcane-os/core/repositories';
|
|
231
|
+
|
|
232
|
+
const remote = connection.locator; // Keep the original catalog string.
|
|
233
|
+
const remoteBase = connection.localBaseDirectory; // App-selected absolute base.
|
|
234
|
+
const repository = createRepositoryWorkspace({name: connection.name, remote, remoteBase});
|
|
235
|
+
const snapshot = createGitTextSnapshot({
|
|
236
|
+
cacheDirectory: connection.cacheDirectory,
|
|
237
|
+
remote, remoteBase, ref: connection.ref, selectPath: applicationSelectPath
|
|
238
|
+
});
|
|
239
|
+
const target = {remote, remoteBase, ref: connection.ref};
|
|
240
|
+
await repository.write({files: selectedFiles, message, target, signal});
|
|
241
|
+
// This reader wants the newly published selection, so refresh after the write.
|
|
242
|
+
await snapshot.refresh({signal});
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
The original locator and ref remain unchanged. Public targeted results and
|
|
246
|
+
writer failure outcomes also retain the explicitly supplied original
|
|
247
|
+
`remoteBase`, including its relative spelling or empty string; the derived
|
|
248
|
+
absolute argument stays with the Git invocation. No catalog/configuration
|
|
249
|
+
rewrite, directory change or extra Git command is introduced. The existing
|
|
250
|
+
Git clone may save its supplied remote argument as its ordinary origin setting.
|
|
251
|
+
|
|
252
|
+
Omit `remoteBase` for configured names such as `origin`, URLs, SCP-like addresses,
|
|
253
|
+
remote-helper syntax, or any other string Git should interpret normally. With
|
|
254
|
+
an explicit base, even `origin` means the local path under that base. The SDK
|
|
255
|
+
does not infer intent from slashes, colons or platform path spelling. Factory
|
|
256
|
+
`remoteBase` affects only cloning; an individual pull/push/write uses only its
|
|
257
|
+
own `target.remoteBase`. Omitting `target` retains configured Git behavior.
|
|
258
|
+
The public `repositoryPull` and `repositoryPush` functions accept the same
|
|
259
|
+
target field and capture it before their first asynchronous status operation.
|
|
260
|
+
Actual filesystem, Git, credential and remote failures retain their existing
|
|
261
|
+
complete diagnostics; this option adds no fallback, retry or unborn-state rule.
|
|
262
|
+
|
|
207
263
|
## Git identity configuration
|
|
208
264
|
|
|
209
265
|
```javascript
|
|
@@ -304,8 +360,8 @@ Each supplied name/email becomes command-local `-c user.name=...` or
|
|
|
304
360
|
`GIT_COMMITTER_*` fields. Those selected fields take precedence over inherited
|
|
305
361
|
author/committer settings and environment values; omitted fields, dates and
|
|
306
362
|
unrelated environment remain inherited. Git retains its ordinary commit
|
|
307
|
-
identity formatting and may reject an unusable identity.
|
|
308
|
-
neither `process.env` nor global/local Git files.
|
|
363
|
+
identity formatting and may reject an unusable identity. This command-local
|
|
364
|
+
selection changes neither `process.env` nor global/local Git files.
|
|
309
365
|
|
|
310
366
|
`username` supplies only command-local `credential.username`. Git's existing
|
|
311
367
|
credential helper and remote protocol still own actual authentication. A
|
|
@@ -322,6 +378,46 @@ fetch. Existing arguments, content, output, errors, queue and cancellation
|
|
|
322
378
|
semantics remain unchanged. Other repository helpers and CLI cwd defaults keep
|
|
323
379
|
their existing behavior.
|
|
324
380
|
|
|
381
|
+
### Clone-local author selection
|
|
382
|
+
|
|
383
|
+
`createRepositoryWorkspace` also accepts `cloneIdentity:{name?,email?}` when the
|
|
384
|
+
application wants its explicit selection retained by a newly owned clone:
|
|
385
|
+
|
|
386
|
+
```javascript
|
|
387
|
+
const repository = createRepositoryWorkspace({
|
|
388
|
+
name: 'moon-cheese-dispatches',
|
|
389
|
+
remote: applicationConnection.remote,
|
|
390
|
+
cloneIdentity: {name: 'Moon Dispatcher', email: 'moon@example.invalid'}
|
|
391
|
+
});
|
|
392
|
+
await repository.open({signal});
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
Each supplied field becomes `clone --config user.name=<name>` or
|
|
396
|
+
`clone --config user.email=<email>`. Git writes these choices to the new local
|
|
397
|
+
configuration before the initial checkout, on every supported platform. This
|
|
398
|
+
adds no separate configuration command or post-clone initialization. It applies
|
|
399
|
+
whenever the owner's first preparing operation needs a clone, including `write`.
|
|
400
|
+
|
|
401
|
+
The exact strings are captured during I/O-free construction. Empty strings are
|
|
402
|
+
explicit values; omitted or `undefined` fields add no setting, preserving Git's
|
|
403
|
+
global inheritance, includes and any template configuration. Later caller edits
|
|
404
|
+
do not alter an accepted owner. Non-string fields, NUL and text that the native
|
|
405
|
+
process transport cannot represent report `TypeError` instead of changing input.
|
|
406
|
+
Git retains ordinary configuration precedence, author formatting and failures.
|
|
407
|
+
|
|
408
|
+
An existing checkout is never reconfigured by `cloneIdentity`, even when it is
|
|
409
|
+
supplied. Changing or omitting the selection on a later owner does not remove a
|
|
410
|
+
previously stored local setting. This option changes no global configuration,
|
|
411
|
+
credentials, username selection, branch or remote. A failed or cancelled clone
|
|
412
|
+
retains its actual diagnostics and any partial directory for the caller.
|
|
413
|
+
|
|
414
|
+
`gitIdentity` remains the separate command-local selection described above.
|
|
415
|
+
When both options are supplied, `cloneIdentity` selects the new clone's saved
|
|
416
|
+
name/email while `gitIdentity` controls the selected child commands and their
|
|
417
|
+
author/committer environment. Application defaults and per-repository choices
|
|
418
|
+
remain application-owned. Neither option identifies the authenticated GitHub
|
|
419
|
+
account or establishes who submitted a historical record.
|
|
420
|
+
|
|
325
421
|
## Write, commit and push selected text
|
|
326
422
|
|
|
327
423
|
```javascript
|
|
@@ -394,8 +490,8 @@ Successful completion returns:
|
|
|
394
490
|
|
|
395
491
|
Each output record retains complete stdout/stderr. `code` and the process
|
|
396
492
|
termination `signal` are included when a completed process result is available.
|
|
397
|
-
When supplied, `target:{remote,ref}` is included in the result or
|
|
398
|
-
with the original accepted strings.
|
|
493
|
+
When supplied, `target:{remote,ref,remoteBase?}` is included in the result or
|
|
494
|
+
failure outcome with the original accepted strings.
|
|
399
495
|
An in-progress write also records its current `path` on a failure outcome.
|
|
400
496
|
`writtenPaths` records successful filesystem writes in input order; `written`
|
|
401
497
|
becomes true only after every requested write succeeds. The other booleans
|
|
@@ -33,12 +33,27 @@ policy stable for the lifetime of its snapshot owner.
|
|
|
33
33
|
|
|
34
34
|
## API and lifecycle
|
|
35
35
|
|
|
36
|
-
`createGitTextSnapshot({cacheDirectory,remote,ref,selectPath,gitIdentity,onEvent,run})`
|
|
36
|
+
`createGitTextSnapshot({cacheDirectory,remote,remoteBase,ref,selectPath,gitIdentity,onEvent,run})`
|
|
37
37
|
returns `{refresh,close,drain,dispose}`. `run` defaults to the SDK's existing
|
|
38
38
|
`runProcess`; applications normally omit it. It is the same process adapter
|
|
39
39
|
contract, not a second process supervisor. `onEvent` is the ordinary SDK event
|
|
40
40
|
callback and follows its asynchronous completion/error contract.
|
|
41
41
|
|
|
42
|
+
Optional `remoteBase` explicitly selects `remote` as a local filesystem locator.
|
|
43
|
+
The owner derives its native absolute Git argument once during construction
|
|
44
|
+
using `path.resolve(remoteBase, remote)`, independently of the cache location
|
|
45
|
+
and later working-directory changes. A relative base is captured against the
|
|
46
|
+
construction-time working directory; `''` explicitly selects that directory.
|
|
47
|
+
The caller's original locator and options remain unchanged. Without this field,
|
|
48
|
+
every existing Git remote string keeps its ordinary meaning; the SDK does not
|
|
49
|
+
guess whether a name, URL, colon or slash describes a local path.
|
|
50
|
+
|
|
51
|
+
Use the same app-selected absolute base for snapshot, workspace clone and each
|
|
52
|
+
explicit pull/push/write target. Factory clone inputs do not become operation
|
|
53
|
+
targets. See [relative local repository locators](core-repositories.md#relative-local-repository-locators)
|
|
54
|
+
for the shared contract, original target outcomes and example. This option adds
|
|
55
|
+
no I/O, remote probe, configuration change, retry or empty-remote success path.
|
|
56
|
+
|
|
42
57
|
Optional `gitIdentity:{name?,email?,username?}` uses the shared
|
|
43
58
|
[Git identity configuration contract](core-repositories.md#git-identity-configuration).
|
|
44
59
|
Supplied strings are captured during construction and accompany every Git
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"sdkVersion": "0.
|
|
3
|
+
"sdkVersion": "0.89.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",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"summary": "Connects to one explicit running native window for background document inspection, viewport capture, targeted DOM actions, fixed keys and Normal-window client resizing.",
|
|
95
95
|
"availability": "Node local IPC on Windows, Linux and macOS; the current window adapter is Windows WebView2, with other native adapters unavailable",
|
|
96
96
|
"protocol": "arcane/1 app.control.status, app.control.inspect, app.control.capture, app.control.act, app.control.key and app.control.resize over the existing framed local connection. The window host selects native.launchContext.appControl.endpoint and preserves its existing Core child, origin, profile and lifetime; assembly requires a matching published Windows host asset.",
|
|
97
|
-
"normalization": "Returns endpoint, closed, status(options), inspect(parameters={},options), capture(parameters={},options), act(parameters,options), key(parameters,options), resize(parameters,options), and close(). Parameters pass unchanged; per-operation options preserve Core signal/timeout behavior. Status reports actual app/window/document readiness. Inspect returns complete selected DOM HTML/text and live control state with DOM-derived role/name hints, plus top-level viewport CSS dimensions/devicePixelRatio, documentHasFocus and focusPath through the active open-shadow branch; focus records are observations with null selectors, separate from the selected root's activeElement. Optional shadowPath on inspect and act is an ordered array of unique CSS host selectors through open shadow roots; selector resolves in the final root, with omitted/empty paths retaining top-level light DOM. Whole-shadow-root inspection returns complete innerHTML/textContent with null selector/state; nested shadow-host descriptors provide their full path. Frames remain descriptors and closed roots are unavailable. Capture returns mimeType image/png, complete base64 data, documentGeneration and URL for the rendered viewport. Act requires documentGeneration and one CSS selector with click, exact-string fill, exact-value select or absolute-offset scroll. Key requires documentGeneration and Tab, Enter or
|
|
97
|
+
"normalization": "Returns endpoint, closed, status(options), inspect(parameters={},options), capture(parameters={},options), act(parameters,options), key(parameters,options), resize(parameters,options), and close(). Parameters pass unchanged; per-operation options preserve Core signal/timeout behavior. Status reports actual app/window/document readiness and window state Normal, Maximized, Minimized or Fullscreen. Inspect returns complete selected DOM HTML/text and live control state with DOM-derived role/name hints, plus top-level viewport CSS dimensions/devicePixelRatio, documentHasFocus and focusPath through the active open-shadow branch; focus records are observations with null selectors, separate from the selected root's activeElement. Optional shadowPath on inspect and act is an ordered array of unique CSS host selectors through open shadow roots; selector resolves in the final root, with omitted/empty paths retaining top-level light DOM. Whole-shadow-root inspection returns complete innerHTML/textContent with null selector/state; nested shadow-host descriptors provide their full path. Frames remain descriptors and closed roots are unavailable. Capture returns mimeType image/png, complete base64 data, documentGeneration and URL for the rendered viewport. Act requires documentGeneration and one CSS selector with click, exact-string fill, exact-value select or absolute-offset scroll. Key requires documentGeneration and Tab, Enter, Space or Escape; shiftKey:true is supported only for Tab. One keyboard owner keeps each press/release pair ordered at the selected WebView's current focus. An attempted press owns a matching release even after cancellation, navigation or failure; no failed or ambiguous press is replayed. Generation checks bracket native input without atomic document binding. Resize accepts positive integral native client width/height supported by WinForms and optional documentGeneration, changes only a Normal window's ClientSize, and returns immediate previous/actual native dimensions plus the later observed CSS viewport. Native and CSS snapshots are not atomic; platform constraints may change actual dimensions. Restoration is an explicit resize using the operation's previous native dimensions; Maximized, Minimized and Fullscreen states fail before size mutation. The native document marker prevents queued DOM actions crossing replacement; cancellation before dispatch prevents execution while dispatched work is observed through completion without retry or reversal, including owned key release. Partial results remain in actual errors and complete later responses remain in host diagnostics after cancellation or disconnection. Dispatch completion does not establish application handler completion or a successful business action. close() cancels only this connection, never the application or Core. No launch, automatic reconnect, desktop activation, global input or public arbitrary evaluator. CLI inspection accepts either --selector or a complete --request JSON object; act, key and resize forward their complete --request parameter objects. See native-app-control.md for complete result fields, CLI and platform scope."
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
"id": "local-ai-execution-devices:createExecutionDeviceCatalog",
|
|
@@ -311,14 +311,14 @@
|
|
|
311
311
|
"name": "createRepositoryWorkspace",
|
|
312
312
|
"displayName": "createRepositoryWorkspace()",
|
|
313
313
|
"kind": "function",
|
|
314
|
-
"signature": "createRepositoryWorkspace({name,directory,dataRoot,remote,branch,longPaths,gitIdentity,onEvent,run=runProcess}={})",
|
|
314
|
+
"signature": "createRepositoryWorkspace({name,directory,dataRoot,remote,remoteBase,branch,longPaths,cloneIdentity,gitIdentity,onEvent,run=runProcess}={})",
|
|
315
315
|
"entrypoints": ["arcane-os/core/repositories"],
|
|
316
316
|
"primaryImport": "arcane-os/core/repositories",
|
|
317
317
|
"group": "Native repository workspaces",
|
|
318
318
|
"summary": "Owns one selected native working checkout with ArcaneData/Repos defaults and existing Git/process lifecycle.",
|
|
319
319
|
"availability": "Node with Git on Windows, Linux and macOS; Android requires host process adaptation",
|
|
320
320
|
"protocol": "Git working repository and SDK process adapter",
|
|
321
|
-
"normalization": "Returns directory, open, status, configuration, pull, push, write and identical close/drain/dispose hooks. Only missing or empty destinations clone; existing roots are preserved. Optional longPaths captures a boolean: explicit Windows true/false supplies clone-local core.longpaths before the first checkout, persisting only in the new repository under ordinary Git configuration precedence. Omission preserves configuration; existing repositories and non-Windows clone commands remain unchanged. No global setting or migration. configuration observes the existing root, symbolic HEAD, origin URL/pushURL arrays and branch remote/merge/upstream URL arrays without clone/init/fetch, preserving unset, empty and repeated values. Explicit paths remain selected. Same-directory operations serialize within the process; cancellation and shutdown join accepted process work. pull/push/write accept a captured target {remote,ref} for current-branch fast-forward pull or non-force current-HEAD selected-ref push; omission retains ordinary configured behavior. write snapshots exact text and paths, stages/commits only literal owned paths and preserves unrelated staged files and Git filters. Complete outputs and causal failures retain confirmed local/committed/pushed and uncertain outcomes plus the supplied target. Optional gitIdentity captures name/email/username for child Git operations only; omitted fields remain inherited and identity selection writes no config file."
|
|
321
|
+
"normalization": "Returns directory, open, status, configuration, pull, push, write and identical close/drain/dispose hooks. Only missing or empty destinations clone; existing roots are preserved. Optional factory remoteBase explicitly selects the initial-clone remote as a local filesystem locator and captures path.resolve(remoteBase, remote) once at construction. A relative base, including an empty string, uses the construction-time working directory. Only the Git argument is derived; the caller's original locator remains unchanged. Omission preserves every Git remote name, URL, SCP-like address and remote-helper string without guessed parsing. Optional longPaths captures a boolean: explicit Windows true/false supplies clone-local core.longpaths before the first checkout, persisting only in the new repository under ordinary Git configuration precedence. Omission preserves configuration; existing repositories and non-Windows clone commands remain unchanged. No global setting or migration. configuration observes the existing root, symbolic HEAD, origin URL/pushURL arrays and branch remote/merge/upstream URL arrays without clone/init/fetch, preserving unset, empty and repeated values. Explicit paths remain selected. Same-directory operations serialize within the process; cancellation and shutdown join accepted process work. pull/push/write accept a captured target {remote,ref,remoteBase?} for current-branch fast-forward pull or non-force current-HEAD selected-ref push; omission retains ordinary configured behavior. An operation's own remoteBase declares local-path intent and captures its native absolute argument once at acceptance, before queueing; factory remote/remoteBase/branch remain independent clone inputs. Targeted pull/push results and writer results/failure outcomes retain the original remote, ref and supplied remoteBase, including relative or empty base text. Unrepresentable base text reports TypeError without transformation. write snapshots exact text and paths, stages/commits only literal owned paths and preserves unrelated staged files and Git filters. Complete outputs and causal failures retain confirmed local/committed/pushed and uncertain outcomes plus the supplied target. Optional gitIdentity captures name/email/username for child Git operations only; omitted fields remain inherited and identity selection writes no config file. Optional cloneIdentity captures exact name/email strings and persists only supplied fields through clone --config before the first checkout on every supported platform. Empty strings are explicit; omitted or undefined fields preserve inherited/template configuration. Existing checkouts are never reconfigured. Unrepresentable process arguments fail honestly without transforming them. This option changes no global configuration or credentials and does not identify an authenticated account; command-local gitIdentity remains independent."
|
|
322
322
|
},
|
|
323
323
|
{
|
|
324
324
|
"id": "core-repositories:readGitIdentity",
|
|
@@ -493,14 +493,14 @@
|
|
|
493
493
|
"name": "createGitTextSnapshot",
|
|
494
494
|
"displayName": "createGitTextSnapshot()",
|
|
495
495
|
"kind": "function",
|
|
496
|
-
"signature": "createGitTextSnapshot({cacheDirectory,remote,ref,selectPath,gitIdentity,onEvent,run=runProcess}={})",
|
|
496
|
+
"signature": "createGitTextSnapshot({cacheDirectory,remote,remoteBase,ref,selectPath,gitIdentity,onEvent,run=runProcess}={})",
|
|
497
497
|
"entrypoints": ["arcane-os"],
|
|
498
498
|
"primaryImport": "arcane-os",
|
|
499
499
|
"group": "Workspace, doctor, repository, and server",
|
|
500
500
|
"summary": "Reads complete selected text from one fetched revision using a dedicated bare Git object cache and batched retrieval.",
|
|
501
501
|
"availability": "Node with Git; Android requires a host supplying Git/process capability",
|
|
502
502
|
"protocol": "Git tree and batched blob transport through the shared process owner",
|
|
503
|
-
"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. Optional gitIdentity captures name/email/username for child Git commands including bare init and fetch, without changing config files, payloads or shared acquisition lifetime. See git-text-snapshot.md."
|
|
503
|
+
"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. Optional remoteBase explicitly selects remote as a local filesystem locator and derives only its Git fetch argument through path.resolve(remoteBase, remote), once at construction independently of the cache location and later working-directory changes. A relative base, including an empty string, uses the construction-time working directory; original locator/options remain unchanged. Omission preserves every Git remote name, URL, SCP-like address and remote-helper string without guessed parsing. Unrepresentable base text reports TypeError without transformation; existing Git failures remain errors. Optional gitIdentity captures name/email/username for child Git commands including bare init and fetch, without changing config files, payloads or shared acquisition lifetime. See git-text-snapshot.md."
|
|
504
504
|
},
|
|
505
505
|
{
|
|
506
506
|
"id": "diarization:createDiarization",
|
|
@@ -563,14 +563,14 @@
|
|
|
563
563
|
"name": "createCoreLocalAIProvider",
|
|
564
564
|
"displayName": "createCoreLocalAIProvider()",
|
|
565
565
|
"kind": "function",
|
|
566
|
-
"signature": "createCoreLocalAIProvider({client,id='llama.cpp'}={})",
|
|
566
|
+
"signature": "createCoreLocalAIProvider({client,id='llama.cpp',prepareModel}={})",
|
|
567
567
|
"entrypoints": ["arcane-os/ai/core-local"],
|
|
568
568
|
"primaryImport": "arcane-os/ai/core-local",
|
|
569
569
|
"group": "Core local AI",
|
|
570
570
|
"summary": "Browser llama.cpp provider through an explicitly connected Core, with application-owned model selection and complete response streaming.",
|
|
571
571
|
"availability": "Browser with an available Core local AI service; construction installs no runtime or model",
|
|
572
572
|
"protocol": "arcane-ai-provider/2 LLM lifecycle over arcane/1",
|
|
573
|
-
"normalization": "Preserves complete payloads and original parsed chunks; waits for the exact requested model and cancels on observed readiness loss. Omitted client follows installation/replacement/retirement; explicit client including null stays fixed. Inspect reports load capability separately from
|
|
573
|
+
"normalization": "Preserves complete payloads and original parsed chunks; load waits for the exact requested model and inference cancels on observed readiness loss. Omitted client follows installation/replacement/retirement; explicit client including null stays fixed. Optional prepareModel({selection,signal,progress}) runs at load and returns assetProjectionId, resourcePaths, executionTarget and optional release; load({selection,signal,progress,assetProjectionId,resourcePaths,executionTarget}) lets defined direct fields override preparation, including an explicit null target. Preparation release is awaited on success, failure and cancellation, including late preparation results. Inspect reports managed preparation/load capability separately from readiness. Only the current successfully completed load accepts readiness and inference; failed same-name replacement cannot reuse prior readiness. status().execution forwards complete native execution diagnostics. Unload releases the last dispatched selection only while its owning connection remains current; disposal uses its captured client. Preparation alone creates no native release ownership. Provider/2 role state reconciles at existing operation boundaries, not through an idle state subscription."
|
|
574
574
|
},
|
|
575
575
|
{
|
|
576
576
|
"id": "core-local-ai:createLocalAIService",
|
|
@@ -584,7 +584,7 @@
|
|
|
584
584
|
"summary": "Composes selected native llama.cpp, Ollama and ONNX engines as a Core service with retained process/worker ownership and model lifecycle.",
|
|
585
585
|
"availability": "Node with selected upstream runtime distributions or available configured system services",
|
|
586
586
|
"protocol": "arcane/1 methods and events; llama.cpp OpenAI HTTP/SSE, Ollama native HTTP/NDJSON and ONNX tensor transport",
|
|
587
|
-
"normalization": "Application-owned runtime and model requirements; optional prepare supplies installed records during this service startup. Optional executionDevices supplies a borrowed catalog to ONNX; its supplying owner retains catalog disposal responsibility. onnx.load forwards executionPreference and executionTarget with existing model-path resolution, cancellation and omitted-target behavior. getONNXRuntime() returns the actual prepared ONNX owner for native composition after context.getService('local-ai'); callers reacquire after recovery and retain the acquired handle for cleanup. llama.status/models observe without starting or restarting an engine. Independent services, complete responses and exact owned-process cleanup remain unchanged."
|
|
587
|
+
"normalization": "Application-owned runtime and model requirements; optional prepare supplies installed records during this service startup. Optional executionDevices supplies a borrowed catalog to ONNX and llama.cpp; its supplying owner retains catalog disposal responsibility. onnx.load forwards executionPreference and executionTarget with existing model-path resolution, cancellation and omitted-target behavior. getONNXRuntime() returns the actual prepared ONNX owner for native composition after context.getService('local-ai'); callers reacquire after recovery and retain the acquired handle for cleanup. llama.load({model,assetProjectionId,resourcePaths,executionTarget}) retains resourcePaths.model from the existing model-assets owner through actual managed process exit. Omitted target retains the same model's selection or configured default; null requests the runtime default. Explicit Windows NVIDIA targets resolve this host's deviceId to its CUDA device identity; unsupported or unavailable selections report their actual failure without substitution. execution distinguishes requested/resolved/configured targets from observedTarget:null. Existing external listeners retain their model/device ownership and reject managed reconfiguration. llama.status/models observe without starting or restarting an engine. Independent services, complete responses and exact owned-process cleanup remain unchanged."
|
|
588
588
|
},
|
|
589
589
|
{
|
|
590
590
|
"id": "core-local-ai:default",
|
|
@@ -609,10 +609,10 @@
|
|
|
609
609
|
"entrypoints": ["arcane-os/local-ai"],
|
|
610
610
|
"primaryImport": "arcane-os/local-ai",
|
|
611
611
|
"group": "Core local AI",
|
|
612
|
-
"summary": "Reuses selected managed native runtimes or installs complete
|
|
613
|
-
"availability": "Node;
|
|
614
|
-
"protocol": "
|
|
615
|
-
"normalization": "Returns absolute runtime records, including image library/binding/variant/model metadata; shares matching installs, preserves libraries, reports failures without changing global PATH or services and prepares no model files"
|
|
612
|
+
"summary": "Reuses selected managed native runtimes or installs complete llama.cpp/Ollama/image distributions, ONNX npm runtime trees with selected SDK native libraries, or NeMo libraries.",
|
|
613
|
+
"availability": "Node; selected distribution platform and architecture assets determine runtime availability",
|
|
614
|
+
"protocol": "Upstream release archives and selected ONNX/Koffi npm installations; corrected Windows x64 ONNX native libraries from the installed SDK numeric release",
|
|
615
|
+
"normalization": "Returns absolute runtime records, including image library/binding/variant/model metadata; Windows x64 ONNX with no explicit URL and omitted version or 1.30.0 adds nativeDistributionRevision 1.30.0-directml-reshape-1, reuses that revision or prepares a fresh installation while preserving older trees; explicit URLs and other ONNX versions/platforms retain their upstream package path; shares matching installs, preserves libraries, reports failures without changing global PATH or services and prepares no model files"
|
|
616
616
|
},
|
|
617
617
|
{
|
|
618
618
|
"id": "local-ai:bundleLocalAIRuntimes",
|
|
@@ -624,9 +624,9 @@
|
|
|
624
624
|
"primaryImport": "arcane-os/local-ai",
|
|
625
625
|
"group": "Core local AI",
|
|
626
626
|
"summary": "Copies selected complete runtime distributions into a fresh native artifact staging root.",
|
|
627
|
-
"availability": "Node; supports bundling published
|
|
627
|
+
"availability": "Node; supports bundling selected published platform assets independently of the build host",
|
|
628
628
|
"protocol": "Artifact-relative runtime/local-ai layout",
|
|
629
|
-
"normalization": "Returns {runtimes,files} with artifact-relative runtime/variant paths and complete inventory; image URL descriptors remain for post-launch preparation and external model working paths report portability incompatibility"
|
|
629
|
+
"normalization": "Returns {runtimes,files} with artifact-relative runtime/variant paths and complete inventory; corrected Windows x64 ONNX retains nativeDistributionRevision and complete native libraries while modulePath becomes artifact-relative; image URL descriptors remain for post-launch preparation and external model working paths report portability incompatibility"
|
|
630
630
|
},
|
|
631
631
|
{
|
|
632
632
|
"id": "root:WS",
|
|
@@ -654,7 +654,7 @@
|
|
|
654
654
|
"summary": "Explicit-load Laya and Julia-1 decisions with caller-selected precision, complete inputs and graph results.",
|
|
655
655
|
"availability": "Browser module Workers and the selected Transformers.js backend; import/construction starts no model load",
|
|
656
656
|
"protocol": "Caller-owned state/question/options rows; five-input decision graph; native Worker request/result lifecycle",
|
|
657
|
-
"normalization": "Full field tokenization, raw logits and unrounded softmax; dtype defaults to fp16 for Laya and fp32 for Julia, with explicit values forwarded unchanged. Optional existing SDK store routes
|
|
657
|
+
"normalization": "Full field tokenization, raw logits and unrounded softmax; dtype defaults to fp16 for Laya and fp32 for Julia, with explicit values forwarded unchanged. Optional existing SDK store routes actual loader resources through fetchResource outside cloned Worker configuration. By default stored activation also materializes the unchanged runtime entry as a JavaScript object URL, retains its configured URL for later loads and revokes the object URL after Worker termination. Explicit runtime.local:true instead imports same-deployment moduleUrl and wasmPaths.mjs/wasm directly, defaulting to ai/decisions-runtime installed by browserDecisions:true materialization; only those exact executable URLs bypass the model store. It disables upstream executable WASM caching/proxy and selects one WASM thread, preserving the requested inference backend. Stored mode disables competing model caches, preserves complete HTTP responses and joins resource cleanup before outstanding calls settle. Default runtime-entry HTTP failures retain error.response; custom stored entries must support an object URL and changed import.meta.url. Omission retains existing browser behavior; no decision-result persistence or precision fallback"
|
|
658
658
|
},
|
|
659
659
|
{
|
|
660
660
|
"id": "root:acceptWebSocket",
|
|
@@ -1734,7 +1734,7 @@
|
|
|
1734
1734
|
"name": "materializeInstalledSdkRuntime",
|
|
1735
1735
|
"displayName": "materializeInstalledSdkRuntime()",
|
|
1736
1736
|
"kind": "function",
|
|
1737
|
-
"signature": "async materializeInstalledSdkRuntime({workspaceRoot,sdkPackageSource,workspaceOperationLease,signal,onEvent}={})",
|
|
1737
|
+
"signature": "async materializeInstalledSdkRuntime({workspaceRoot,sdkPackageSource,browserDecisions=false,workspaceOperationLease,signal,onEvent}={})",
|
|
1738
1738
|
"entrypoints": [
|
|
1739
1739
|
"arcane-os"
|
|
1740
1740
|
],
|
|
@@ -1743,14 +1743,14 @@
|
|
|
1743
1743
|
"summary": "Materializes the complete installed SDK runtime and browser runtime, then replaces semantic arcane.lock.json metadata from the actual installed dependency and package.",
|
|
1744
1744
|
"availability": "Node",
|
|
1745
1745
|
"protocol": "Installed SDK runtime materialization",
|
|
1746
|
-
"normalization": "Complete installed runtime content and a mutable materialization result"
|
|
1746
|
+
"normalization": "Complete installed runtime content and a mutable materialization result. Explicit browserDecisions:true acquires the upstream bundled Transformers.js 4.3.0 and matched ONNX Runtime 1.31.0-dev.20260914-8d85527a0 asyncify module/WASM plus licenses into arcane/sdk/ai/decisions-runtime before replacement. The optional workspaceRuntime.browserDecisions result contains directory, versions and filenames. Default false performs no optional acquisition. Progress counts completed files; signal, HTTP and observer failures abort/join acquisition and preserve the previous projection. Select the option on each refresh that should retain the closure; model/tokenizer data remain upstream/cache-owned"
|
|
1747
1747
|
},
|
|
1748
1748
|
{
|
|
1749
1749
|
"id": "root:materializeWorkspaceRuntimeContent",
|
|
1750
1750
|
"name": "materializeWorkspaceRuntimeContent",
|
|
1751
1751
|
"displayName": "materializeWorkspaceRuntimeContent()",
|
|
1752
1752
|
"kind": "function",
|
|
1753
|
-
"signature": "async materializeWorkspaceRuntimeContent({workspaceRoot,runtimeRoot=path.join(getSdkRoot(), 'runtime'),browserRuntimeRoot=getSdkBrowserRuntimeRoot(),signal,onEvent}={})",
|
|
1753
|
+
"signature": "async materializeWorkspaceRuntimeContent({workspaceRoot,runtimeRoot=path.join(getSdkRoot(), 'runtime'),browserRuntimeRoot=getSdkBrowserRuntimeRoot(),sdkVersion=SDK_VERSION,browserDecisions=false,signal,onEvent}={})",
|
|
1754
1754
|
"entrypoints": [
|
|
1755
1755
|
"arcane-os"
|
|
1756
1756
|
],
|
|
@@ -1759,7 +1759,7 @@
|
|
|
1759
1759
|
"summary": "Replaces one workspace's complete projected runtime and browser-runtime content from selected source roots.",
|
|
1760
1760
|
"availability": "Node",
|
|
1761
1761
|
"protocol": "Workspace runtime materialization",
|
|
1762
|
-
"normalization": "Complete workspace runtime content and a mutable materialization result"
|
|
1762
|
+
"normalization": "Complete workspace runtime content and a mutable materialization result. browserDecisions:true adds the same explicit upstream browser executable acquisition as materializeInstalledSdkRuntime; the optional browserDecisions result contains directory, transformersVersion, onnxRuntimeVersion and files. Default false leaves acquisition disabled. Complete distribution content is copied without source rewriting, with cancellation/error cleanup before staged replacement and no model/tokenizer packaging"
|
|
1763
1763
|
},
|
|
1764
1764
|
{
|
|
1765
1765
|
"id": "root:NATIVE_BUILD_PLAN_PROTOCOL",
|
|
@@ -2269,7 +2269,7 @@
|
|
|
2269
2269
|
"summary": "Runs one fast-forward-only pull into the selected clean worktree, optionally from a captured remote/ref target.",
|
|
2270
2270
|
"availability": "Node; network-assisted Git",
|
|
2271
2271
|
"protocol": "Node ESM",
|
|
2272
|
-
"normalization": "
|
|
2272
|
+
"normalization": "Optional target {remote,ref,remoteBase?} is captured before the first asynchronous status operation. A supplied remoteBase declares local-path intent and derives only the Git remote argument using path.resolve(remoteBase, remote), once at acceptance; relative and empty bases use that working directory. Omitted remoteBase preserves Git remote names, URLs, SCP-like addresses and remote-helper strings unchanged. Targeted results retain original remote/ref/supplied remoteBase text and complete stdout/stderr alongside the existing pull result. Unrepresentable base text reports TypeError without transformation. Omitted target preserves configured pull behavior and result shape; clean-worktree, fast-forward-only, cancellation and actual Git error behavior remain unchanged."
|
|
2273
2273
|
},
|
|
2274
2274
|
{
|
|
2275
2275
|
"id": "root:repositoryPush",
|
|
@@ -2285,7 +2285,7 @@
|
|
|
2285
2285
|
"summary": "Pushes the attached branch through ordinary configured Git or an explicit captured current-HEAD destination without force.",
|
|
2286
2286
|
"availability": "Node; network-assisted Git",
|
|
2287
2287
|
"protocol": "Node ESM",
|
|
2288
|
-
"normalization": "
|
|
2288
|
+
"normalization": "Optional target {remote,ref,remoteBase?} is captured before the first asynchronous status operation. A supplied remoteBase declares local-path intent and derives only the Git remote argument using path.resolve(remoteBase, remote), once at acceptance; relative and empty bases use that working directory. Omitted remoteBase preserves Git remote names, URLs, SCP-like addresses and remote-helper strings unchanged. Targeted results retain original remote/ref/supplied remoteBase text and complete stdout/stderr alongside the existing push result. Unrepresentable base text reports TypeError without transformation. Omitted target preserves configured push behavior and result shape; attached-branch, non-force current-HEAD publication, cancellation and actual Git error behavior remain unchanged."
|
|
2289
2289
|
},
|
|
2290
2290
|
{
|
|
2291
2291
|
"id": "root:repositoryStatus",
|
|
@@ -4360,7 +4360,7 @@
|
|
|
4360
4360
|
"summary": "Projects a Core client into the established application-facing Arcane namespace.",
|
|
4361
4361
|
"availability": "Browser and native WebView JavaScript hosts with a Core client",
|
|
4362
4362
|
"protocol": "arcane/1 compatibility facade",
|
|
4363
|
-
"normalization": "Routes namespace methods through client.invoke while retaining operation-specific parameters, correlation, streaming callbacks, timeouts and cancellation; window.setTheme(presentation,{signal}?) forwards the complete per-window backgroundColor/textColor record, with omitted fields unchanged and null reset, and returns the host's actual applied/unsupported result without changing system appearance"
|
|
4363
|
+
"normalization": "Routes namespace methods through client.invoke while retaining operation-specific parameters, correlation, streaming callbacks, timeouts and cancellation; window.state({signal}?) reads the requesting window and window.setState({state},{signal}?) selects normal, maximized or fullscreen. The matching Windows host returns {platform:'windows',supported:true,state}, including observed minimized state, restores normal bounds/frame controls on leaving fullscreen and prevents activation/focus assignment during visible state transitions without changing TopMost, Core, origin or profile. Saved Settings remain application-owned; cancellation does not undo an applied change and unavailable hosts retain their actual errors without fallback. window.setTheme(presentation,{signal}?) forwards the complete per-window backgroundColor/textColor record, with omitted fields unchanged and null reset, and returns the host's actual applied/unsupported result without changing system appearance"
|
|
4364
4364
|
},
|
|
4365
4365
|
{
|
|
4366
4366
|
"id": "core-client:installCoreClient",
|
|
@@ -4500,7 +4500,7 @@
|
|
|
4500
4500
|
"summary": "Creates the SDK-owned provider that assembles one selected app and explicit services into a portable Core payload.",
|
|
4501
4501
|
"availability": "Node; produces a portable payload rather than an executable host",
|
|
4502
4502
|
"protocol": "arcane-native-builder/1 portable provider",
|
|
4503
|
-
"normalization": "Preserves complete selected app and dependency releases; an explicit services selection overrides appDescriptor.native.services, otherwise the descriptor selection is used; optional appDescriptor.native.window carries positive integral logical client width/height and optional
|
|
4503
|
+
"normalization": "Preserves complete selected app and dependency releases; an explicit services selection overrides appDescriptor.native.services, otherwise the descriptor selection is used; optional appDescriptor.native.window carries positive integral logical client width/height, optional resizable and optional state normal/maximized/fullscreen into manifest.window with omitted fields preserved; the selected platform host owns the applied behavior. Generated coreListener opt-in composes one passive model-observation service from the existing host.runtime and actual services exposing localai.status/image.status/decisions.status before listener binding, with absent owners null and renderer attachment separate. Ordinary stdio and sharedHost/headless behavior remains unchanged; no model creation, getService or readiness barrier. Generated runtime/arcane-core.mjs accepts --arcane-app-entry <app-relative-module> through the host's supported Node executable. It imports the packaged app/ module's top-level work with complete process.argv unchanged and no automatic export call; the app owns launch-context reads, services, signals and shutdown. Include the entry and complete source closure through package.nativeResources. The flag skips ordinary Core startup; omission retains it. See mcp-stdio.md#launch-from-a-native-package and core-native-packaging.md#app-owned-runtime-entry. Reports executable:false and never substitutes for an unavailable platform host"
|
|
4504
4504
|
},
|
|
4505
4505
|
{
|
|
4506
4506
|
"id": "native-portable-provider:arcaneNativeBuilderProvider",
|
|
@@ -4542,7 +4542,7 @@
|
|
|
4542
4542
|
"summary": "Assembles selected application services and browser content with the SDK-owned Windows x64 WebView2 and SEA host.",
|
|
4543
4543
|
"availability": "Node for assembly; Windows x64 with WebView2 Runtime for execution",
|
|
4544
4544
|
"protocol": "arcane-native-builder/1 windows-x64 provider",
|
|
4545
|
-
"normalization": "Uses a selected hostDirectory or the exact installed SDK version's numeric release asset; preserves complete payloads; app displayName plus .exe (app ID fallback) and matching .exe.config use Windows filename substitutions only; manifest.host.executable owns inventory, icon, verify and run while generic cache/Core names remain unchanged; native.icon PNG/ICO derives the copied executable and host.icon without an app compiler, while other formats retain assembly with native.icon.unsupported and executableIcon:false; the matching host loads the selected window/taskbar icon and handles window.setTheme with per-field applied/unsupported results; native.window selects initial 96-DPI logical client width/height and optional
|
|
4545
|
+
"normalization": "Uses a selected hostDirectory or the exact installed SDK version's numeric release asset; preserves complete payloads; app displayName plus .exe (app ID fallback) and matching .exe.config use Windows filename substitutions only; manifest.host.executable owns inventory, icon, verify and run while generic cache/Core names remain unchanged; native.icon PNG/ICO derives the copied executable and host.icon without an app compiler, while other formats retain assembly with native.icon.unsupported and executableIcon:false; the matching host loads the selected window/taskbar icon and handles window.setTheme with per-field applied/unsupported results; native.window selects initial 96-DPI logical client width/height, optional resizable and optional state normal/maximized/fullscreen through manifest.window. The matching host scales dimensions to actual DPI, fits initial placement to the usable screen and applies an explicit state afterward; omitted fields preserve existing host behavior. Fullscreen fills the selected monitor without a frame and retains normal bounds/frame controls for restoration. Requesting-window window.state/window.setState observe actual minimized/maximized state and prevent activation/focus assignment during visible transitions without selecting TopMost or changing Core, origin or profile. Saved Settings remain application-owned; no saved-bounds subsystem is added and initial-fit logic is not reapplied during later resizing; run cancellation closes stdin and waits for host-owned graceful shutdown. Packaged runtime/ArcaneCore.exe accepts --arcane-app-entry <app-relative-module> directly, without a script argument or GUI launcher; it imports the packaged app/ module's top-level work, preserves complete process.argv and invokes no export. Include the entry and complete source closure through package.nativeResources. The app owns launch-context reads, services, signals and shutdown; the flag skips ordinary Core startup, while omission preserves it. See mcp-stdio.md#launch-from-a-native-package and core-native-packaging.md#app-owned-runtime-entry"
|
|
4546
4546
|
},
|
|
4547
4547
|
{
|
|
4548
4548
|
"id": "native-windows-provider:arcaneNativeBuilderProvider",
|