arcane-os 0.2.3 → 0.3.1
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 +30 -0
- package/README.md +8 -8
- package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +29 -22
- package/browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json +203 -0
- package/browser-runtime/ai/browser-kokoro-worker.mjs +11 -2
- package/browser-runtime/ai/browser-speech-artifacts.mjs +3242 -391
- package/browser-runtime/ai/browser-speech-providers.mjs +1209 -157
- package/browser-runtime/ai/browser-speech.mjs +2 -0
- package/browser-runtime/ai/browser-whisper-worker.mjs +11 -2
- package/browser-runtime/ai/model-controller.mjs +285 -95
- package/browser-runtime/ai/speech-worker-client.mjs +249 -32
- package/browser-runtime/ai/speech-worker-runtime.mjs +2322 -167
- package/browser-runtime/event-manager.mjs +1097 -1
- package/docs/architecture.md +2 -2
- package/docs/event-manager.md +155 -27
- package/docs/reference/README.md +18 -20
- package/docs/reference/ai/browser-speech-package-authority.json +835 -0
- package/docs/reference/ai/browser-speech.md +1205 -246
- package/docs/reference/ai/browser-wasm.md +18 -7
- package/docs/reference/availability-and-normalization.md +2 -2
- package/docs/reference/behavioral-testing.md +28 -5
- package/docs/reference/cli.md +115 -7
- package/docs/reference/core/arcane-ai-contracts.md +1 -1
- package/docs/reference/event-manager.md +577 -32
- package/docs/reference/inventory/package-api.json +478 -2
- package/docs/reference/inventory/runtime-components.json +86 -37
- package/docs/reference/inventory/runtime-modules.json +126 -49
- package/docs/reference/mail.md +316 -0
- package/docs/reference/protocols.md +185 -33
- package/docs/reference/runtime-components.md +192 -80
- package/docs/reference/runtime-modules.md +589 -70
- package/docs/reference/sdk-api.md +1017 -24
- package/package.json +5 -4
- package/runtime/ARCANE_RUNTIME_RELEASE.json +145 -140
- package/runtime/arcane/components/app-bar.html +34 -13
- package/runtime/arcane/components/assistant-panel.html +110 -57
- package/runtime/arcane/components/calculator.html +7 -4
- package/runtime/arcane/components/chart.html +58 -17
- package/runtime/arcane/components/chat.html +606 -136
- package/runtime/arcane/components/conversation-view.html +13 -6
- package/runtime/arcane/components/dashboard-config.html +96 -59
- package/runtime/arcane/components/data-maintenance.html +69 -14
- package/runtime/arcane/components/data-view.html +53 -7
- package/runtime/arcane/components/directory-picker.html +118 -32
- package/runtime/arcane/components/document-inspector.html +47 -10
- package/runtime/arcane/components/file-drop.html +81 -35
- package/runtime/arcane/components/file-inspector.html +72 -22
- package/runtime/arcane/components/file-manager.html +374 -79
- package/runtime/arcane/components/integration-settings.html +12 -5
- package/runtime/arcane/components/local-ai-status.html +48 -19
- package/runtime/arcane/components/markdown-document.html +161 -68
- package/runtime/arcane/components/markdown-editor.html +110 -33
- package/runtime/arcane/components/media-embed.html +8 -5
- package/runtime/arcane/components/modal.html +15 -5
- package/runtime/arcane/components/output-panel.html +28 -23
- package/runtime/arcane/components/preferences-form.html +22 -4
- package/runtime/arcane/components/record-timeline.html +18 -2
- package/runtime/arcane/components/relationship-board.html +23 -3
- package/runtime/arcane/components/screen-capture.html +10 -4
- package/runtime/arcane/components/source-code-viewer.html +76 -9
- package/runtime/arcane/components/source-explanation.html +23 -3
- package/runtime/arcane/components/speech.html +453 -131
- package/runtime/arcane/components/summary-strip.html +22 -11
- package/runtime/arcane/components/table.html +39 -21
- package/runtime/arcane/components/task-progress.html +79 -21
- package/runtime/arcane/components/terminal-workspace.html +7 -4
- package/runtime/arcane/components/theme-editor.html +7 -3
- package/runtime/arcane/components/unified-inbox.html +9 -4
- package/runtime/arcane/components/voice-transcription.html +244 -72
- package/runtime/arcane/components/weather-widget.html +5 -3
- package/runtime/arcane/components/web-navigator.html +48 -8
- package/runtime/arcane/entities/Chat.js +1 -1
- package/runtime/arcane/entities/User.js +110 -23
- package/runtime/arcane/modules/AI.js +2117 -130
- package/runtime/arcane/modules/AIProviderRuntime.js +756 -13
- package/runtime/arcane/modules/AIRuntimeState.js +109 -52
- package/runtime/arcane/modules/ApiModelDatabase.js +390 -17
- package/runtime/arcane/modules/BrowserTestSuite.js +205 -28
- package/runtime/arcane/modules/CalculatorEngine.js +63 -3
- package/runtime/arcane/modules/CommunicationAppController.js +588 -28
- package/runtime/arcane/modules/CommunicationHub.js +590 -10
- package/runtime/arcane/modules/ComponentContracts.js +235 -37
- package/runtime/arcane/modules/ConversationTimebox.js +152 -33
- package/runtime/arcane/modules/DBLS.js +40 -7
- package/runtime/arcane/modules/DBOPFS.js +35 -11
- package/runtime/arcane/modules/DataMaintenance.js +12 -2
- package/runtime/arcane/modules/Errors.js +65 -7
- package/runtime/arcane/modules/HTMLImport.js +198 -14
- package/runtime/arcane/modules/LocalAIReadinessController.js +208 -29
- package/runtime/arcane/modules/Mail.js +738 -115
- package/runtime/arcane/modules/MailOutbox.mjs +1395 -0
- package/runtime/arcane/modules/MailTransport.mjs +197 -39
- package/runtime/arcane/modules/Ollama.js +36 -1
- package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +583 -7
- package/runtime/arcane/modules/PreferenceStore.js +367 -33
- package/runtime/arcane/modules/RecordReviewStore.js +322 -23
- package/runtime/arcane/modules/ScreenCapture.js +1397 -15
- package/runtime/arcane/modules/SpeechPlayback.js +438 -41
- package/runtime/arcane/modules/TerminalClient.js +277 -12
- package/runtime/arcane/modules/ThemeBootstrap.js +80 -6
- package/runtime/arcane/modules/ThemeManager.js +39 -7
- package/runtime/arcane/modules/TimeGuard.js +131 -20
- package/runtime/arcane/modules/WaitForComponent.js +386 -33
- package/schemas/arcane-lock.schema.json +2 -2
- package/src/cli/main.mjs +435 -9
- package/src/event-manager.mjs +1097 -1
- package/src/import-map.mjs +21 -3
- package/src/index.mjs +13 -0
- package/src/installed-sdk-runtime.mjs +130 -0
- package/src/mail-api.mjs +22 -0
- package/src/mail-credentials.mjs +667 -0
- package/src/mail-server.mjs +1769 -0
- package/src/mail.mjs +261 -0
- package/src/sdk-browser-runtime.mjs +85 -41
- package/src/testing-loader.mjs +7 -0
- package/src/toolchain.mjs +3 -0
- package/src/workspace-runtime.mjs +804 -22
- package/src/workspace.mjs +1 -1
package/docs/architecture.md
CHANGED
|
@@ -200,7 +200,7 @@ length with an EOF growth probe, and rechecked by handle and pathname identity.
|
|
|
200
200
|
Every cumulative path prefix has one case-folded spelling and one file/directory
|
|
201
201
|
kind; prefix topology conflicts and the complete portable Windows device-name
|
|
202
202
|
set fail before creation or admission.
|
|
203
|
-
The current SDK admits only the explicitly compatible `0.
|
|
203
|
+
The current SDK admits only the explicitly compatible `0.3.1` bundle
|
|
204
204
|
generation and rejects zero-byte payload releases.
|
|
205
205
|
|
|
206
206
|
Promotion retains any prior output as an identity-bound backup until the new
|
|
@@ -320,7 +320,7 @@ through SDK-bound verified readers rather than accepting a mutable source path
|
|
|
320
320
|
as authority. Build completion requires provider verification, and later
|
|
321
321
|
verify/run calls receive the exact artifact receipt.
|
|
322
322
|
|
|
323
|
-
The SDK `0.
|
|
323
|
+
The SDK `0.3.1` runtime requires Arcane `0.8.12` or newer. Compatibility
|
|
324
324
|
is contractual rather than exact-version pinning: the prepared Core must meet
|
|
325
325
|
the highest minimum declared by the runtime, selected app, and bundled app
|
|
326
326
|
dependencies; keep each app's Arcane protocol generation; and provide every
|
package/docs/event-manager.md
CHANGED
|
@@ -1,46 +1,176 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Canonical SDK events and time-travel review
|
|
2
2
|
|
|
3
|
-
`
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
`arcaneEvents` is the canonical synchronous SDK event authority. The module
|
|
4
|
+
installs or reuses exactly one branded authority at `globalThis.arcaneEvents` in
|
|
5
|
+
each JavaScript realm, even when the same source is loaded through duplicate
|
|
6
|
+
module URLs. It is not a cross-frame, worker, process, native-host, or cloud bus.
|
|
7
|
+
|
|
8
|
+
`EventManager` remains the isolated diagnostics API. `new EventManager()` and
|
|
9
|
+
`createEventManager()` each create an independent `event-pubsub` bus whose
|
|
10
|
+
`on()`, `emit()`, and `instrument()` handlers are strict: a synchronous listener
|
|
11
|
+
failure propagates to that publisher. Use `arcaneEvents.subscribe()` and
|
|
12
|
+
`createArcaneEventSource()` for canonical SDK semantic events instead.
|
|
13
|
+
|
|
14
|
+
The installed global is an own, non-enumerable, non-writable, non-configurable
|
|
15
|
+
data property. Its authority brand is
|
|
16
|
+
`Symbol.for('arcane-os.arcane-events-authority')`, and both the brand value and
|
|
17
|
+
public `protocol` are exactly `arcane-event-authority/1`. A later import reuses
|
|
18
|
+
the object only when its property, brand, protocol, and required callable API
|
|
19
|
+
descriptors are compatible. An inherited value, accessor, unbranded value,
|
|
20
|
+
mutable descriptor, incompatible protocol, incomplete API, or failed install is
|
|
21
|
+
rejected; the SDK never replaces or wraps a competing global.
|
|
9
22
|
|
|
10
23
|
Import the dedicated host-neutral entry point:
|
|
11
24
|
|
|
12
25
|
```javascript
|
|
13
26
|
import {
|
|
14
27
|
arcaneEvents,
|
|
28
|
+
createArcaneEventSource,
|
|
15
29
|
createEventManager,
|
|
30
|
+
projectArcaneDOMEvent,
|
|
16
31
|
PLAYBACK_RECORD_EVENT
|
|
17
32
|
} from 'arcane-os/event-manager';
|
|
18
33
|
```
|
|
19
34
|
|
|
20
|
-
|
|
21
|
-
|
|
35
|
+
An SDK publisher owns one source handle for its lifetime and declares every
|
|
36
|
+
semantic event type up front:
|
|
22
37
|
|
|
23
38
|
```javascript
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
const controller={};
|
|
40
|
+
const events=createArcaneEventSource(controller,{
|
|
41
|
+
source:'app.editor',
|
|
42
|
+
eventTypes:['document.save.completed']
|
|
26
43
|
});
|
|
27
44
|
|
|
28
|
-
arcaneEvents.
|
|
45
|
+
const unsubscribe=arcaneEvents.subscribe('document.save.completed',occurrence=>{
|
|
46
|
+
console.info('Saved',occurrence.detail.documentId);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const publication=events.dispatch(
|
|
29
50
|
'document.save.completed',
|
|
30
|
-
{documentId:'example'},
|
|
51
|
+
Object.freeze({documentId:'example',document:liveDocument}),
|
|
31
52
|
{
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
53
|
+
operationId:'save-42',
|
|
54
|
+
publicDetail:{documentId:'example'},
|
|
55
|
+
cancelable:false
|
|
35
56
|
}
|
|
36
57
|
);
|
|
58
|
+
|
|
59
|
+
projectArcaneDOMEvent(editorElement,publication.occurrence);
|
|
60
|
+
unsubscribe();
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`createArcaneEventSource(owner,options)` is the public wrapper for
|
|
64
|
+
`arcaneEvents.createSource(owner,options)`. `options` is the closed record
|
|
65
|
+
`{source,eventTypes,onListenerError?}`. Each non-null object or function owner
|
|
66
|
+
may have one active source, and the returned frozen handle exposes
|
|
67
|
+
`{protocol,descriptor,source,instanceId,eventTypes,disposed,subscribe,on,once,
|
|
68
|
+
addEventListener,removeEventListener,dispatch,dispatchEvent,dispose,destroy}`.
|
|
69
|
+
|
|
70
|
+
`dispatch()` synchronously delivers one immutable `arcane-event-occurrence/1`
|
|
71
|
+
to exact-type canonical subscribers, then an EventTarget-compatible view to the
|
|
72
|
+
source's own listeners. The occurrence contains `occurrenceId`, `type`, `source`,
|
|
73
|
+
`instanceId`, `operationId`, deeply frozen privacy-admitted `detail`,
|
|
74
|
+
`cancelable`, live `defaultPrevented`, and `preventDefault()`. The richer
|
|
75
|
+
compatibility detail remains local to the authority for source listeners and
|
|
76
|
+
optional DOM projection; it is not placed on the canonical bus or in time-travel
|
|
77
|
+
history.
|
|
78
|
+
|
|
79
|
+
Source listeners retain EventTarget compatibility: function listeners receive
|
|
80
|
+
the source owner as `this`, and the frozen compatibility view exposes that owner
|
|
81
|
+
as both `target` and `currentTarget`. Already-frozen compatibility detail retains
|
|
82
|
+
its identity. Other plain records and arrays are shallow-copied and frozen;
|
|
83
|
+
rich host objects remain local and are not recursively frozen.
|
|
84
|
+
EventTarget-shaped `addEventListener()` and `removeEventListener()` preserve
|
|
85
|
+
native no-op admission for null or non-listener callbacks; strict `subscribe()`
|
|
86
|
+
and `on()` still reject an invalid handler.
|
|
87
|
+
|
|
88
|
+
Canonical delivery is observational. Every active listener runs in registration
|
|
89
|
+
order. A listener failure publishes one privacy-safe
|
|
90
|
+
`arcane.event.listener.error` occurrence and is reported through `reportError`
|
|
91
|
+
or `console.error`; it does not undo committed domain work or make
|
|
92
|
+
`dispatch()` throw. An optional source `onListenerError(error,errorOccurrence)`
|
|
93
|
+
callback receives the raw failure and its canonical listener-error occurrence
|
|
94
|
+
only at that owner-local boundary; `errorOccurrence` is `null` only when the
|
|
95
|
+
secondary error occurrence itself could not be constructed. Subscriber
|
|
96
|
+
promises are not awaited, so keep completion, backpressure, and asynchronous
|
|
97
|
+
failure in the SDK-owned queue or operation that owns them. There is no second
|
|
98
|
+
Promise-returning publication bus: `dispatch()`, cancellation admission, sticky
|
|
99
|
+
state commits, and listener installation remain synchronous. Owned promises and
|
|
100
|
+
`createEventQueue()` own asynchronous work, ordering, failure, and backpressure;
|
|
101
|
+
an `AbortSignal` removes a subscription but does not claim that already-started
|
|
102
|
+
provider, host, or queue work stopped.
|
|
103
|
+
|
|
104
|
+
`arcaneEvents.subscribe(type,handler,{once=false,signal}={})` returns an
|
|
105
|
+
idempotent unsubscribe function whose `.dispose` property is the same function.
|
|
106
|
+
An already-aborted signal installs nothing, and abort removes the registration
|
|
107
|
+
deterministically. Source `on()` follows the same lifecycle. EventTarget-shaped
|
|
108
|
+
`addEventListener()`/`removeEventListener()` calls deduplicate by
|
|
109
|
+
type/listener/capture. Calling a source's idempotent `dispose()` emits its final
|
|
110
|
+
`arcane.event.source.disposed` occurrence, removes its registrations, and frees
|
|
111
|
+
the owner to register a later source.
|
|
112
|
+
|
|
113
|
+
Cancellation is synchronous and observational. For a cancelable occurrence,
|
|
114
|
+
canonical or source listeners may call `preventDefault()`; `dispatch()` then
|
|
115
|
+
returns `{occurrence,accepted:false}`. Callers decide whether cancellation gates
|
|
116
|
+
their domain operation. `projectArcaneDOMEvent()` is a one-way compatibility
|
|
117
|
+
projection: it creates one `CustomEvent`, adds the canonical identifiers to a
|
|
118
|
+
frozen outer detail object, preserves any compatibility `source` value, exposes
|
|
119
|
+
the canonical emitter as `arcaneSource`, propagates DOM cancellation back to the
|
|
120
|
+
occurrence, and never republishes the DOM event into the authority. It returns `false`
|
|
121
|
+
without dispatching when the occurrence is already canceled.
|
|
122
|
+
|
|
123
|
+
The authority also retains `on`, `once`, `off`, `reset`, `emit`, `instrument`,
|
|
124
|
+
and `forward` for legacy direct EventManager-style diagnostics. Those handlers
|
|
125
|
+
are separate from canonical `subscribe()` registrations; `off()` and `reset()`
|
|
126
|
+
cannot remove canonical or source-owned registrations. New SDK publishers must
|
|
127
|
+
use source handles. Authority-level `dispatchEvent()` exists only as a deprecated
|
|
128
|
+
EventTarget admission adapter for older `aiRuntimeEvents` callers.
|
|
129
|
+
|
|
130
|
+
`aiRuntimeEvents` is itself deprecated. It is a frozen, state-free
|
|
131
|
+
EventTarget-compatible view over the `AIRuntimeState` source registered with
|
|
132
|
+
this authority; it has no listener registry, `EventTarget`, or lifecycle state
|
|
133
|
+
of its own. New consumers use the focused AIRuntimeState subscription helpers
|
|
134
|
+
or `arcaneEvents.subscribe()`.
|
|
135
|
+
|
|
136
|
+
## Stable authority failures
|
|
137
|
+
|
|
138
|
+
`ARCANE_EVENT_ERROR_CODES` is frozen and maps every key below to the identical
|
|
139
|
+
string value. Thrown authority errors expose that value as `error.code`:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
ARCANE_EVENT_AUTHORITY_ACCESSOR_COLLISION
|
|
143
|
+
ARCANE_EVENT_AUTHORITY_VALUE_COLLISION
|
|
144
|
+
ARCANE_EVENT_AUTHORITY_DESCRIPTOR_MISMATCH
|
|
145
|
+
ARCANE_EVENT_AUTHORITY_PROTOCOL_MISMATCH
|
|
146
|
+
ARCANE_EVENT_AUTHORITY_API_MISMATCH
|
|
147
|
+
ARCANE_EVENT_AUTHORITY_INSTALL_FAILED
|
|
148
|
+
ARCANE_EVENT_SOURCE_INVALID
|
|
149
|
+
ARCANE_EVENT_SOURCE_ALREADY_REGISTERED
|
|
150
|
+
ARCANE_EVENT_SOURCE_DISPOSED
|
|
151
|
+
ARCANE_EVENT_SOURCE_EVENT_TYPE_UNDECLARED
|
|
152
|
+
ARCANE_EVENT_COMPATIBILITY_DETAIL_INVALID
|
|
153
|
+
ARCANE_EVENT_OCCURRENCE_INVALID
|
|
154
|
+
ARCANE_EVENT_OCCURRENCE_SEQUENCE_EXHAUSTED
|
|
155
|
+
ARCANE_EVENT_SOURCE_SEQUENCE_EXHAUSTED
|
|
156
|
+
ARCANE_EVENT_LISTENER_CALLBACK_FAILED
|
|
157
|
+
ARCANE_EVENT_DOM_DETAIL_COLLISION
|
|
158
|
+
ARCANE_EVENT_DOM_TARGET_INVALID
|
|
159
|
+
ARCANE_EVENT_DOM_OPTIONS_INVALID
|
|
160
|
+
ARCANE_EVENT_SUBSCRIPTION_TYPE_INVALID
|
|
161
|
+
ARCANE_EVENT_SUBSCRIPTION_HANDLER_INVALID
|
|
162
|
+
ARCANE_EVENT_SUBSCRIPTION_OPTIONS_INVALID
|
|
163
|
+
ARCANE_EVENT_SUBSCRIPTION_SIGNAL_INVALID
|
|
164
|
+
ARCANE_EVENT_DISPATCH_EVENT_INVALID
|
|
37
165
|
```
|
|
38
166
|
|
|
39
|
-
|
|
40
|
-
`
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
167
|
+
Listener callback failure is observational: it appears as
|
|
168
|
+
`ARCANE_EVENT_LISTENER_CALLBACK_FAILED` inside the frozen
|
|
169
|
+
`arcane.event.listener.error` occurrence. Its frozen public detail is
|
|
170
|
+
`{code:'ARCANE_EVENT_LISTENER_CALLBACK_FAILED',reason:'listener-threw',
|
|
171
|
+
eventType,occurrenceId,source,instanceId,operationId}`. Source disposal publishes
|
|
172
|
+
`arcane.event.source.disposed` with public detail
|
|
173
|
+
`{reason:'source-disposed'}` rather than throwing from committed source dispatch.
|
|
44
174
|
|
|
45
175
|
## Enable a bounded, complete event stack
|
|
46
176
|
|
|
@@ -71,7 +201,7 @@ arcaneEvents.disableTimeTravel();
|
|
|
71
201
|
const serialized=arcaneEvents.exportStack();
|
|
72
202
|
```
|
|
73
203
|
|
|
74
|
-
While enabled, every manager event receives an immutable
|
|
204
|
+
While enabled, every isolated-manager event receives an immutable
|
|
75
205
|
`arcane-event-stack/1` record containing the session and event ids, sequence,
|
|
76
206
|
UTC and monotonic timestamps, source/category, correlation and causation ids,
|
|
77
207
|
nested dispatch depth, a bounded payload snapshot, completion or failure
|
|
@@ -159,8 +289,6 @@ The npm artifact bundles the exact `event-pubsub` and `strong-type` pair because
|
|
|
159
289
|
use must preserve that physical sibling layout and provide import-map entries
|
|
160
290
|
for the public SDK entry and `event-pubsub`.
|
|
161
291
|
|
|
162
|
-
The
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
Arcane OS integration work; this SDK release does not claim automatic coverage
|
|
166
|
-
inside those surfaces.
|
|
292
|
+
The managed Arcane browser runtime ships the authenticated focused entry and its
|
|
293
|
+
dependency closure. Its import map resolves `arcane-os/event-manager` exactly;
|
|
294
|
+
query, fragment, and subpath variants are not alternate authority identities.
|
package/docs/reference/README.md
CHANGED
|
@@ -39,9 +39,9 @@ This repository contains explicitly versioned surfaces with different owners:
|
|
|
39
39
|
|
|
40
40
|
| Surface | Source identity | Meaning |
|
|
41
41
|
| --- | --- | --- |
|
|
42
|
-
| SDK and CLI | `arcane-os` `0.
|
|
43
|
-
| Browser runtime |
|
|
44
|
-
| Browser SDK runtime |
|
|
42
|
+
| SDK and CLI | `arcane-os` `0.3.0` | The Node.js toolchain plus the browser-only `arcane-os/ai/browser-wasm`, `arcane-os/ai/browser-speech`, and portable `arcane-os/mail` entrypoints in this checkout. |
|
|
43
|
+
| Browser runtime | `runtime/ARCANE_RUNTIME_RELEASE.json`, SDK `0.3.0`, protocol `arcane/1` | The SDK-canonical dynamic runtime inventory shipped under `runtime/`; the receipt binds its exact paths, bytes, inventory, and digest. |
|
|
44
|
+
| Browser SDK runtime | `browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json`, SDK `0.3.0` | The dynamically derived browser closure for events, Wllama, and Browser Speech mechanisms. It contains no speech runtime, model, voice, third-party legal/notice, or corresponding-source payloads. |
|
|
45
45
|
| Core reference snapshot | Arcane OS commit `567ad110bf57a1c2d4a3daa22ae93716cc5f4d7e`, protocol `arcane/1` | The application-facing Core contract derived into `docs/reference/core/`. Canonical inventory and focused-member content was verified unchanged at Arcane OS `main` commit `13f3ce0ae34f77a3495331c8b4c30b1bb105f8ed`; SDK-local provenance, link, and package-boundary annotations are added explicitly. |
|
|
46
46
|
|
|
47
47
|
The SDK runtime receipt and Core reference are distinct evidence and have
|
|
@@ -58,25 +58,23 @@ See [Core reference provenance](core/README.md) for the imported inventory and
|
|
|
58
58
|
the exact distinction between a documentation snapshot and shipped runtime
|
|
59
59
|
bytes.
|
|
60
60
|
|
|
61
|
-
## Published 0.
|
|
61
|
+
## Published 0.3.0
|
|
62
62
|
|
|
63
|
-
The published package is exactly `arcane-os@0.
|
|
64
|
-
`
|
|
65
|
-
to `0.
|
|
63
|
+
The verified published package is exactly `arcane-os@0.3.0` from source commit
|
|
64
|
+
`72239d0221279b461f1be08b02a70105f4cf7364`. The npm `latest` dist-tag resolves
|
|
65
|
+
to `0.3.0`; the separate `dev` dist-tag remains `0.1.0-dev.5`.
|
|
66
66
|
|
|
67
|
-
The
|
|
68
|
-
|
|
69
|
-
source. They are not package authority in `0.2.2`; consumers require a fresh
|
|
70
|
-
numeric publication before relying on them.
|
|
67
|
+
The singleton-event, Mail, warn-first Browser Speech, and independent mixed-route
|
|
68
|
+
contracts documented below are included in this exact package authority.
|
|
71
69
|
|
|
72
70
|
| Evidence | Exact value |
|
|
73
71
|
| --- | --- |
|
|
74
|
-
| npm integrity | `sha512-
|
|
75
|
-
| npm shasum | `
|
|
76
|
-
| Immutable release tarball | `arcane-os-0.
|
|
77
|
-
| GitHub release | [`0.
|
|
78
|
-
| Hosted source/artifact gate | [Check run
|
|
79
|
-
| Trusted publication | [Run
|
|
72
|
+
| npm integrity | `sha512-dh7QfM1ur48hOyMez1XWjym/LJcOAYy+Xl3KcvVQ6ewwX5N7ER82PQx6LE+zSb5sHVtz4TOU2AuARsrFNSwuVw==` |
|
|
73
|
+
| npm shasum | `94075dad9c3974b0e069ecfe09f8d612d8a30ea7` |
|
|
74
|
+
| Immutable release tarball | `arcane-os-0.3.0.tgz`; 7,230,292 bytes; SHA-256 `4afdb8113d8408b03917b73ce45e25bf4d302577fc6f199165d4931dda8ca081` |
|
|
75
|
+
| GitHub release | [`0.3.0`](https://github.com/TheWizardNexus/arcane-os-sdk/releases/tag/0.3.0) (tag and title are both exactly `0.3.0`) |
|
|
76
|
+
| Hosted source/artifact gate | [Check run 33130699235](https://github.com/TheWizardNexus/arcane-os-sdk/actions/runs/33130699235) |
|
|
77
|
+
| Trusted publication | [Run 33131083176](https://github.com/TheWizardNexus/arcane-os-sdk/actions/runs/33131083176) |
|
|
80
78
|
|
|
81
79
|
The npm SLSA provenance binds the published package to that exact source commit
|
|
82
80
|
and `.github/workflows/publish-dev.yml`. Hashes prove byte identity or
|
|
@@ -102,10 +100,10 @@ Public reference entries follow the established Arcane documentation model:
|
|
|
102
100
|
|
|
103
101
|
## Public runtime inventory
|
|
104
102
|
|
|
105
|
-
The package exposes
|
|
103
|
+
The package exposes 200 semantic JavaScript records across 14 JavaScript
|
|
106
104
|
entrypoints, plus eight JSON Schemas, its exact runtime manifest, and package
|
|
107
105
|
metadata. Ten entrypoints are Node.js control-plane surfaces,
|
|
108
|
-
`arcane-os/event-manager`
|
|
106
|
+
`arcane-os/event-manager` and `arcane-os/mail` run in Node and browsers, and
|
|
109
107
|
`arcane-os/ai/browser-wasm` plus `arcane-os/ai/browser-speech` are browser-only.
|
|
110
108
|
The [machine-readable package
|
|
111
109
|
inventory](inventory/package-api.json) and [SDK member reference](sdk-api.md)
|
|
@@ -116,7 +114,7 @@ download, install, or self-update.
|
|
|
116
114
|
|
|
117
115
|
The synchronized browser payload exposes:
|
|
118
116
|
|
|
119
|
-
-
|
|
117
|
+
- 84 JavaScript module artifacts under `runtime/arcane/modules/`, including
|
|
120
118
|
ESM modules, classic vendor globals, one worker protocol, and one Node-oriented
|
|
121
119
|
mail transport;
|
|
122
120
|
- 15 shared entity modules under `runtime/arcane/entities/`;
|