arcane-os 0.1.0-dev.5
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 +154 -0
- package/COMMERCIAL-LICENSE.md +13 -0
- package/LICENSE +661 -0
- package/NOTICE +70 -0
- package/README.md +448 -0
- package/bin/arcane-test.mjs +741 -0
- package/bin/arcane.mjs +5 -0
- package/docs/architecture.md +234 -0
- package/docs/compatibility.md +36 -0
- package/docs/event-manager.md +166 -0
- package/docs/platform-targets.md +108 -0
- package/docs/publishing.md +203 -0
- package/docs/reference/README.md +117 -0
- package/docs/reference/arcane-ollama.md +288 -0
- package/docs/reference/availability-and-normalization.md +123 -0
- package/docs/reference/behavioral-testing.md +86 -0
- package/docs/reference/cli.md +569 -0
- package/docs/reference/core/README.md +62 -0
- package/docs/reference/core/arcane-ai-contracts.md +873 -0
- package/docs/reference/core/arcane-api.md +601 -0
- package/docs/reference/core/arcane-entities.md +65 -0
- package/docs/reference/core/arcane-events.md +134 -0
- package/docs/reference/core/ollama-module.md +181 -0
- package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +1909 -0
- package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +1057 -0
- package/docs/reference/core/reference/arcane-api/core-and-events.md +320 -0
- package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +610 -0
- package/docs/reference/core/reference/arcane-api/namespaces.md +1157 -0
- package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +1423 -0
- package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +315 -0
- package/docs/reference/event-manager.md +957 -0
- package/docs/reference/inventory/package-api.json +2632 -0
- package/docs/reference/inventory/runtime-components.json +934 -0
- package/docs/reference/inventory/runtime-entities.json +26 -0
- package/docs/reference/inventory/runtime-modules.json +1249 -0
- package/docs/reference/protocols.md +242 -0
- package/docs/reference/runtime-components.md +1098 -0
- package/docs/reference/runtime-entities.md +303 -0
- package/docs/reference/runtime-modules.md +2010 -0
- package/docs/reference/sdk-api.md +4901 -0
- package/docs/roadmap.md +79 -0
- package/docs/work-amplification.md +124 -0
- package/node_modules/event-pubsub/CHANGELOG.md +55 -0
- package/node_modules/event-pubsub/MIGRATION.md +70 -0
- package/node_modules/event-pubsub/README.md +363 -0
- package/node_modules/event-pubsub/SECURITY.md +37 -0
- package/node_modules/event-pubsub/index.js +141 -0
- package/node_modules/event-pubsub/licence +21 -0
- package/node_modules/event-pubsub/package.json +59 -0
- package/node_modules/strong-type/README.md +408 -0
- package/node_modules/strong-type/assets/strong-type-header.png +0 -0
- package/node_modules/strong-type/index.js +1151 -0
- package/node_modules/strong-type/licence +21 -0
- package/node_modules/strong-type/node.js +125 -0
- package/node_modules/strong-type/package.json +61 -0
- package/package.json +95 -0
- package/runtime/ARCANE_RUNTIME_RELEASE.json +791 -0
- package/runtime/arcane/components/app-bar.html +468 -0
- package/runtime/arcane/components/assistant-panel.html +715 -0
- package/runtime/arcane/components/calculator.html +8 -0
- package/runtime/arcane/components/chart.html +655 -0
- package/runtime/arcane/components/chat.html +1225 -0
- package/runtime/arcane/components/conversation-view.html +13 -0
- package/runtime/arcane/components/dashboard-config.html +341 -0
- package/runtime/arcane/components/data-maintenance.html +112 -0
- package/runtime/arcane/components/data-view.html +92 -0
- package/runtime/arcane/components/directory-picker.html +197 -0
- package/runtime/arcane/components/document-inspector.html +252 -0
- package/runtime/arcane/components/file-drop.html +264 -0
- package/runtime/arcane/components/file-inspector.html +293 -0
- package/runtime/arcane/components/file-manager.html +1715 -0
- package/runtime/arcane/components/header.html +142 -0
- package/runtime/arcane/components/integration-settings.html +14 -0
- package/runtime/arcane/components/local-ai-status.html +360 -0
- package/runtime/arcane/components/markdown-document.html +1048 -0
- package/runtime/arcane/components/markdown-editor.html +360 -0
- package/runtime/arcane/components/media-embed.html +8 -0
- package/runtime/arcane/components/modal.html +402 -0
- package/runtime/arcane/components/output-panel.html +259 -0
- package/runtime/arcane/components/preferences-form.html +135 -0
- package/runtime/arcane/components/record-timeline.html +105 -0
- package/runtime/arcane/components/relationship-board.html +116 -0
- package/runtime/arcane/components/screen-capture.html +8 -0
- package/runtime/arcane/components/source-code-viewer.html +441 -0
- package/runtime/arcane/components/source-explanation.html +124 -0
- package/runtime/arcane/components/speech.html +365 -0
- package/runtime/arcane/components/summary-strip.html +177 -0
- package/runtime/arcane/components/table.html +77 -0
- package/runtime/arcane/components/task-progress.html +282 -0
- package/runtime/arcane/components/terminal-workspace.html +65 -0
- package/runtime/arcane/components/theme-editor.html +41 -0
- package/runtime/arcane/components/theme-switcher.html +46 -0
- package/runtime/arcane/components/unified-inbox.html +20 -0
- package/runtime/arcane/components/voice-transcription.html +476 -0
- package/runtime/arcane/components/weather-widget.html +8 -0
- package/runtime/arcane/components/web-navigator.html +239 -0
- package/runtime/arcane/css/communications.css +1 -0
- package/runtime/arcane/css/dashboard-config.css +45 -0
- package/runtime/arcane/css/document-site.css +981 -0
- package/runtime/arcane/css/layout.css +438 -0
- package/runtime/arcane/css/primitives.css +321 -0
- package/runtime/arcane/css/theme.css +112 -0
- package/runtime/arcane/css/utility-workspace.css +1 -0
- package/runtime/arcane/entities/ApiModelRecord.js +20 -0
- package/runtime/arcane/entities/Calculation.js +13 -0
- package/runtime/arcane/entities/Chat.js +581 -0
- package/runtime/arcane/entities/CommunicationMessage.js +29 -0
- package/runtime/arcane/entities/CommunicationThread.js +21 -0
- package/runtime/arcane/entities/Document.js +10 -0
- package/runtime/arcane/entities/File.js +143 -0
- package/runtime/arcane/entities/Image.js +135 -0
- package/runtime/arcane/entities/IntentEnvelope.js +834 -0
- package/runtime/arcane/entities/Preference.js +83 -0
- package/runtime/arcane/entities/TWiNPolicyDecision.js +1092 -0
- package/runtime/arcane/entities/TerminalSession.js +46 -0
- package/runtime/arcane/entities/Theme.js +107 -0
- package/runtime/arcane/entities/User.js +1046 -0
- package/runtime/arcane/entities/Weather.js +23 -0
- package/runtime/arcane/img/arcane-os-everywhere.png +0 -0
- package/runtime/arcane/img/arrow-left.png +0 -0
- package/runtime/arcane/img/arrow-right.png +0 -0
- package/runtime/arcane/img/doc.svg +5 -0
- package/runtime/arcane/img/folder.svg +4 -0
- package/runtime/arcane/img/image.svg +5 -0
- package/runtime/arcane/img/refresh.png +0 -0
- package/runtime/arcane/img/send.svg +9 -0
- package/runtime/arcane/img/trash.svg +5 -0
- package/runtime/arcane/img/upload.svg +5 -0
- package/runtime/arcane/modules/AI.js +2048 -0
- package/runtime/arcane/modules/AIPreferenceRuntime.js +32 -0
- package/runtime/arcane/modules/AIPreferenceTuple.js +92 -0
- package/runtime/arcane/modules/AIResponseLength.js +42 -0
- package/runtime/arcane/modules/AIResponseURLPolicy.js +626 -0
- package/runtime/arcane/modules/AnsiText.js +53 -0
- package/runtime/arcane/modules/ApiModelDatabase.js +25 -0
- package/runtime/arcane/modules/AppDataScope.js +245 -0
- package/runtime/arcane/modules/AppearancePreferences.js +28 -0
- package/runtime/arcane/modules/ArcaneCommunicationBridge.js +22 -0
- package/runtime/arcane/modules/ArcaneNavigationPolicy.js +135 -0
- package/runtime/arcane/modules/ArcaneNetworkPolicy.js +255 -0
- package/runtime/arcane/modules/AsyncBoundary.js +161 -0
- package/runtime/arcane/modules/BrowserTestSuite.js +326 -0
- package/runtime/arcane/modules/CalculatorEngine.js +20 -0
- package/runtime/arcane/modules/CaseEvidenceIndexer.js +134 -0
- package/runtime/arcane/modules/ChartLibrary.js +35 -0
- package/runtime/arcane/modules/ChatRecords.js +13 -0
- package/runtime/arcane/modules/CommunicationAppController.js +43 -0
- package/runtime/arcane/modules/CommunicationHub.js +16 -0
- package/runtime/arcane/modules/CommunicationPreferences.js +13 -0
- package/runtime/arcane/modules/CommunicationProviderRegistry.js +16 -0
- package/runtime/arcane/modules/ComponentContracts.js +586 -0
- package/runtime/arcane/modules/ConfiguredAIChatSession.js +288 -0
- package/runtime/arcane/modules/ConversationActionItems.js +488 -0
- package/runtime/arcane/modules/ConversationClosingReport.js +274 -0
- package/runtime/arcane/modules/ConversationTimebox.js +527 -0
- package/runtime/arcane/modules/CoreLocalModelCatalog.js +255 -0
- package/runtime/arcane/modules/DBLS.js +171 -0
- package/runtime/arcane/modules/DBOPFS.js +1154 -0
- package/runtime/arcane/modules/DBOPFSWorker.js +116 -0
- package/runtime/arcane/modules/DataMaintenance.js +91 -0
- package/runtime/arcane/modules/DevelopmentWorkspace.js +74 -0
- package/runtime/arcane/modules/DirectoryPicker.js +109 -0
- package/runtime/arcane/modules/DocumentNavigation.js +223 -0
- package/runtime/arcane/modules/Errors.js +1025 -0
- package/runtime/arcane/modules/GifEncoder.js +29 -0
- package/runtime/arcane/modules/HTMLImport.js +114 -0
- package/runtime/arcane/modules/InMemoryCommunicationProvider.js +14 -0
- package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +275 -0
- package/runtime/arcane/modules/LocalAIReadiness.js +870 -0
- package/runtime/arcane/modules/LocalAIReadinessController.js +156 -0
- package/runtime/arcane/modules/MD.js +111 -0
- package/runtime/arcane/modules/Mail.js +352 -0
- package/runtime/arcane/modules/MailTransport.mjs +180 -0
- package/runtime/arcane/modules/Marked.min.js +71 -0
- package/runtime/arcane/modules/MemoryRecords.js +44 -0
- package/runtime/arcane/modules/MessageAdvisory.js +38 -0
- package/runtime/arcane/modules/ModelDefinition.js +189 -0
- package/runtime/arcane/modules/Ollama.js +74 -0
- package/runtime/arcane/modules/OllamaModelIdentifier.js +21 -0
- package/runtime/arcane/modules/OllamaSettings.js +24 -0
- package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +14 -0
- package/runtime/arcane/modules/PreferenceStore.js +109 -0
- package/runtime/arcane/modules/QRCode.min.js +1 -0
- package/runtime/arcane/modules/Questionnaire.js +61 -0
- package/runtime/arcane/modules/RecordLinkIndex.js +24 -0
- package/runtime/arcane/modules/RecordPassageIndex.js +222 -0
- package/runtime/arcane/modules/RecordReviewStore.js +94 -0
- package/runtime/arcane/modules/RevocableProjectionLedger.js +1623 -0
- package/runtime/arcane/modules/RiskSignalAnalyzer.js +37 -0
- package/runtime/arcane/modules/ScamRiskPolicy.js +62 -0
- package/runtime/arcane/modules/ScopedOPFSCache.js +183 -0
- package/runtime/arcane/modules/ScreenCapture.js +20 -0
- package/runtime/arcane/modules/SpeechPlayback.js +581 -0
- package/runtime/arcane/modules/StaticDocumentCatalog.js +1248 -0
- package/runtime/arcane/modules/SystemAppearance.js +20 -0
- package/runtime/arcane/modules/SystemPlatformPresentation.js +51 -0
- package/runtime/arcane/modules/SystemToolRegistry.js +28 -0
- package/runtime/arcane/modules/TerminalClient.js +52 -0
- package/runtime/arcane/modules/TerminalCommandRegistry.js +50 -0
- package/runtime/arcane/modules/ThemeBootstrap.js +26 -0
- package/runtime/arcane/modules/ThemeManager.js +131 -0
- package/runtime/arcane/modules/TimeGuard.js +149 -0
- package/runtime/arcane/modules/ToolCallRouter.js +83 -0
- package/runtime/arcane/modules/WaitForComponent.js +102 -0
- package/runtime/arcane/modules/YouTubeMedia.js +16 -0
- package/runtime/arcane/modules/uPlot.LICENSE.txt +21 -0
- package/runtime/arcane/modules/uPlot.iife.min.js +2 -0
- package/runtime/arcane/modules/uPlot.min.css +1 -0
- package/runtime/arcane/security/arcane-network-policy.json +6 -0
- package/runtime/strong-type/index.js +352 -0
- package/runtime/strong-type/licence +21 -0
- package/runtime/strong-type/package.json +45 -0
- package/schemas/arcane-app-bundle.schema.json +125 -0
- package/schemas/arcane-app.schema.json +329 -0
- package/schemas/arcane-lock.schema.json +86 -0
- package/schemas/arcane-package.schema.json +224 -0
- package/schemas/cli-event.schema.json +122 -0
- package/schemas/event-stack.schema.json +152 -0
- package/schemas/native-build-plan.schema.json +176 -0
- package/schemas/target-adapter.schema.json +117 -0
- package/src/app-descriptor.mjs +500 -0
- package/src/cli/main.mjs +561 -0
- package/src/constants.mjs +31 -0
- package/src/dev-server.mjs +718 -0
- package/src/doctor.mjs +315 -0
- package/src/dom-event-instrumentation.mjs +594 -0
- package/src/errors.mjs +75 -0
- package/src/event-manager.mjs +1342 -0
- package/src/event-queue.mjs +138 -0
- package/src/events.mjs +219 -0
- package/src/index.mjs +177 -0
- package/src/integrated-provider-loader.mjs +432 -0
- package/src/native-plan.mjs +698 -0
- package/src/native-provider-loader.mjs +1126 -0
- package/src/packager/core.mjs +2691 -0
- package/src/process.mjs +353 -0
- package/src/release-bundle.mjs +2523 -0
- package/src/repository.mjs +90 -0
- package/src/runtime.mjs +452 -0
- package/src/scaffold.mjs +380 -0
- package/src/targets/index.mjs +436 -0
- package/src/templates/assets/app-icon.png +0 -0
- package/src/templates/workspace-template.mjs +388 -0
- package/src/testing-loader.mjs +9 -0
- package/src/testing.mjs +427 -0
- package/src/toolchain.mjs +1335 -0
- package/src/update-check.mjs +307 -0
- package/src/workspace.mjs +449 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
# Arcane runtime entity modules
|
|
2
|
+
|
|
3
|
+
The synchronized runtime ships 15 entity modules with 35 public ESM bindings.
|
|
4
|
+
This page explains each module's capability and host assumptions. The exact
|
|
5
|
+
constructor/function/value contracts are canonical in the
|
|
6
|
+
[Arcane shared entity inventory](core/arcane-entities.md).
|
|
7
|
+
|
|
8
|
+
Entity creation and serialization are usually cross-host. Methods that touch
|
|
9
|
+
DOM, DBOPFS, local storage, AI, or object URLs require the corresponding browser
|
|
10
|
+
or native-WebView dependency.
|
|
11
|
+
|
|
12
|
+
## Canonical inventory
|
|
13
|
+
|
|
14
|
+
| Module | Exports | Capability | Availability / normalization |
|
|
15
|
+
| --- | --- | --- | --- |
|
|
16
|
+
| `ApiModelRecord.js` | `default` | Frozen HTTP(S) model response snapshot. | Cross-host; normalized. |
|
|
17
|
+
| `Calculation.js` | `default` | Frozen bounded expression and finite result. | Cross-host; normalized. |
|
|
18
|
+
| `Chat.js` | `default` | Conversation messages, tool exchanges, memories, and optional persistence. | Browser/native WebView; AI/DBOPFS behavior mixed. |
|
|
19
|
+
| `CommunicationMessage.js` | `default`, `communicationChannels` | Frozen provider-neutral message. | Cross-host; normalized. |
|
|
20
|
+
| `CommunicationThread.js` | `default` | Frozen provider-neutral thread containing normalized messages. | Cross-host; normalized. |
|
|
21
|
+
| `Document.js` | `default` | File entity specialization for the `documents` table. | Browser/native WebView; DBOPFS behavior mixed. |
|
|
22
|
+
| `File.js` | `default` | MIME-aware file open/save and DBOPFS persistence. | Browser/native WebView; mixed storage/rendering errors. |
|
|
23
|
+
| `Image.js` | `default` | Image validation, upload, persistence, data URL, Blob URL, and revocation. | Browser/native WebView; mixed File/Blob/DBOPFS errors. |
|
|
24
|
+
| `IntentEnvelope.js` | six named exports | Immutable canonical intent record, serialization, rehydration, and privacy-safe audit projection. | Cross-host; strict normalized coded errors. |
|
|
25
|
+
| `Preference.js` | `default`, `preferenceSchema` | Boolean, number, select, and text preference definitions. | Cross-host; normalized. |
|
|
26
|
+
| `TerminalSession.js` | `default`, `terminalShells` | Frozen terminal session identity, shell, and state. | Cross-host; normalized. |
|
|
27
|
+
| `Theme.js` | five exports | Semantic theme tokens, conversion, serialization, and DOM application. | Values cross-host; apply/clear need DOM; normalized/mixed. |
|
|
28
|
+
| `TWiNPolicyDecision.js` | six named exports | Immutable canonical policy decision, rehydration, serialization, and redacted audit projection. | Cross-host; strict normalized coded errors. |
|
|
29
|
+
| `User.js` | `default` | User preferences/profile state with DBLS/DBOPFS lifecycle. | Browser/native WebView; storage behavior mixed. |
|
|
30
|
+
| `Weather.js` | four classes | Frozen location, observation, day, and snapshot weather entities. | Cross-host; normalized. |
|
|
31
|
+
|
|
32
|
+
## ApiModelRecord.js
|
|
33
|
+
|
|
34
|
+
### Overview
|
|
35
|
+
|
|
36
|
+
`ApiModelRecord` freezes an endpoint, fetch time, metadata, and parsed value so
|
|
37
|
+
provider reads can be cached or emitted without leaking mutable response state.
|
|
38
|
+
|
|
39
|
+
### Example
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
import ApiModelRecord from '/arcane/entities/ApiModelRecord.js';
|
|
43
|
+
|
|
44
|
+
const record = new ApiModelRecord({
|
|
45
|
+
endpoint: 'https://example.invalid/model',
|
|
46
|
+
fetchedAt: new Date().toISOString(),
|
|
47
|
+
metadata: {},
|
|
48
|
+
value: {ready: true}
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Calculation.js
|
|
53
|
+
|
|
54
|
+
### Overview
|
|
55
|
+
|
|
56
|
+
`Calculation` owns a bounded expression, finite result, creation time, and
|
|
57
|
+
`toJSON()` projection. Use `CalculatorEngine` to produce validated instances.
|
|
58
|
+
|
|
59
|
+
### Example
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
import Calculation from '/arcane/entities/Calculation.js';
|
|
63
|
+
|
|
64
|
+
console.log(new Calculation({expression: '2 + 2', result: 4}).toJSON());
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Chat.js
|
|
68
|
+
|
|
69
|
+
### Overview
|
|
70
|
+
|
|
71
|
+
`ChatEntity` owns message history, saved state, tool exchanges, memory lookup,
|
|
72
|
+
and optional app-scoped DBOPFS persistence. It installs no independent native
|
|
73
|
+
authority; AI and storage dependencies must be available to the host.
|
|
74
|
+
|
|
75
|
+
### Example
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
import Chat from '/arcane/entities/Chat.js';
|
|
79
|
+
|
|
80
|
+
const chat = new Chat();
|
|
81
|
+
chat.addUserMessage('Hello.');
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## CommunicationMessage.js
|
|
85
|
+
|
|
86
|
+
### Overview
|
|
87
|
+
|
|
88
|
+
Normalizes one provider message and exports the supported channel values:
|
|
89
|
+
email, SMS, MMS, RCS, WhatsApp, and other.
|
|
90
|
+
|
|
91
|
+
### Example
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
import CommunicationMessage from '/arcane/entities/CommunicationMessage.js';
|
|
95
|
+
|
|
96
|
+
const message = new CommunicationMessage({
|
|
97
|
+
id: 'message-1',
|
|
98
|
+
channel: 'email',
|
|
99
|
+
body: 'Hello'
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## CommunicationThread.js
|
|
104
|
+
|
|
105
|
+
### Overview
|
|
106
|
+
|
|
107
|
+
Normalizes one conversation thread and its `CommunicationMessage` records into
|
|
108
|
+
a frozen provider-neutral object.
|
|
109
|
+
|
|
110
|
+
### Example
|
|
111
|
+
|
|
112
|
+
```javascript
|
|
113
|
+
import CommunicationThread from '/arcane/entities/CommunicationThread.js';
|
|
114
|
+
|
|
115
|
+
const thread = new CommunicationThread({id: 'thread-1', messages: []});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Document.js
|
|
119
|
+
|
|
120
|
+
### Overview
|
|
121
|
+
|
|
122
|
+
`DocumentEntity` specializes `FileEntity` for the app-scoped `documents` table.
|
|
123
|
+
Its persistence methods require the same DBOPFS lifecycle and ownership proof as
|
|
124
|
+
the base file entity.
|
|
125
|
+
|
|
126
|
+
### Example
|
|
127
|
+
|
|
128
|
+
```javascript
|
|
129
|
+
import DocumentEntity from '/arcane/entities/Document.js';
|
|
130
|
+
|
|
131
|
+
const document = new DocumentEntity();
|
|
132
|
+
console.log(document.tableName);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## File.js
|
|
136
|
+
|
|
137
|
+
### Overview
|
|
138
|
+
|
|
139
|
+
`FileEntity` loads and saves supported file formats through app-scoped DBOPFS
|
|
140
|
+
and uses the shared Markdown renderer where appropriate.
|
|
141
|
+
|
|
142
|
+
### Example
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
import FileEntity from '/arcane/entities/File.js';
|
|
146
|
+
|
|
147
|
+
const file = new FileEntity();
|
|
148
|
+
console.log(file.fileName);
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Image.js
|
|
152
|
+
|
|
153
|
+
### Overview
|
|
154
|
+
|
|
155
|
+
`ImageEntity` extends `FileEntity` with image validation, upload, base64 data
|
|
156
|
+
URLs, Blob URLs, and explicit Blob URL revocation.
|
|
157
|
+
|
|
158
|
+
### Example
|
|
159
|
+
|
|
160
|
+
```javascript
|
|
161
|
+
import ImageEntity from '/arcane/entities/Image.js';
|
|
162
|
+
|
|
163
|
+
console.log(typeof ImageEntity.prototype.revokeBlobURL);
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## IntentEnvelope.js
|
|
167
|
+
|
|
168
|
+
### Overview
|
|
169
|
+
|
|
170
|
+
Creates immutable canonical v1 intent records while keeping trusted provenance
|
|
171
|
+
separate from hostile payload input. Serialization, rehydration, and the audit
|
|
172
|
+
projection are bounded and deterministic.
|
|
173
|
+
|
|
174
|
+
### Example
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
import {
|
|
178
|
+
createIntentEnvelope,
|
|
179
|
+
serializeIntentEnvelope
|
|
180
|
+
} from '/arcane/entities/IntentEnvelope.js';
|
|
181
|
+
|
|
182
|
+
const intent = createIntentEnvelope(
|
|
183
|
+
{originalExpression: 'Summarize the record.', normalizedGoal: 'summarize'},
|
|
184
|
+
{source: 'example'}
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
console.log(serializeIntentEnvelope(intent));
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Preference.js
|
|
191
|
+
|
|
192
|
+
### Overview
|
|
193
|
+
|
|
194
|
+
Defines preference types, option normalization, value validation, JSON
|
|
195
|
+
projection, and schema normalization for shared stores and forms.
|
|
196
|
+
|
|
197
|
+
### Example
|
|
198
|
+
|
|
199
|
+
```javascript
|
|
200
|
+
import Preference from '/arcane/entities/Preference.js';
|
|
201
|
+
|
|
202
|
+
const preference = new Preference({
|
|
203
|
+
key: 'density',
|
|
204
|
+
type: 'select',
|
|
205
|
+
defaultValue: 'comfortable',
|
|
206
|
+
options: ['comfortable', 'compact']
|
|
207
|
+
});
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## TerminalSession.js
|
|
211
|
+
|
|
212
|
+
### Overview
|
|
213
|
+
|
|
214
|
+
Normalizes terminal session id, shell, state, updates, and JSON projection. The
|
|
215
|
+
entity does not start a process; `TerminalClient` owns the native bridge call.
|
|
216
|
+
|
|
217
|
+
### Example
|
|
218
|
+
|
|
219
|
+
```javascript
|
|
220
|
+
import TerminalSession from '/arcane/entities/TerminalSession.js';
|
|
221
|
+
|
|
222
|
+
console.log(TerminalSession.shell('auto'));
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Theme.js
|
|
226
|
+
|
|
227
|
+
### Overview
|
|
228
|
+
|
|
229
|
+
Owns the shared light/dark semantic token sets, color conversion, JSON
|
|
230
|
+
projection, DOM application, and clearing. Token work is cross-host; `apply()`
|
|
231
|
+
and `clear()` require a document root.
|
|
232
|
+
|
|
233
|
+
### Example
|
|
234
|
+
|
|
235
|
+
```javascript
|
|
236
|
+
import Theme, {arcaneDarkThemeTokens} from '/arcane/entities/Theme.js';
|
|
237
|
+
|
|
238
|
+
const theme = new Theme({name: 'example', tokens: arcaneDarkThemeTokens});
|
|
239
|
+
console.log(theme.toJSON());
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## TWiNPolicyDecision.js
|
|
243
|
+
|
|
244
|
+
### Overview
|
|
245
|
+
|
|
246
|
+
Creates immutable canonical v1 policy decisions with trusted provenance,
|
|
247
|
+
bounded serialization, rehydration, and a target/value-redacted audit view.
|
|
248
|
+
|
|
249
|
+
### Example
|
|
250
|
+
|
|
251
|
+
```javascript
|
|
252
|
+
import {
|
|
253
|
+
createTWiNPolicyDecision,
|
|
254
|
+
twinPolicyDecisionAuditProjection
|
|
255
|
+
} from '/arcane/entities/TWiNPolicyDecision.js';
|
|
256
|
+
|
|
257
|
+
const decision = createTWiNPolicyDecision(
|
|
258
|
+
{layer: 'application', policy: 'example', outcome: 'allow'},
|
|
259
|
+
{source: 'example'}
|
|
260
|
+
);
|
|
261
|
+
|
|
262
|
+
console.log(twinPolicyDecisionAuditProjection(decision));
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## User.js
|
|
266
|
+
|
|
267
|
+
### Overview
|
|
268
|
+
|
|
269
|
+
Owns persisted user preference/profile fields, explicit-preference updates,
|
|
270
|
+
fresh reads, saves, and JSON projection. It installs `window.user` after its
|
|
271
|
+
DBLS/DBOPFS lifecycle and emits `user-entity-loaded`.
|
|
272
|
+
|
|
273
|
+
### Example
|
|
274
|
+
|
|
275
|
+
```javascript
|
|
276
|
+
import UserEntity from '/arcane/entities/User.js';
|
|
277
|
+
|
|
278
|
+
console.log(typeof UserEntity.prototype.toJSON);
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Weather.js
|
|
282
|
+
|
|
283
|
+
### Overview
|
|
284
|
+
|
|
285
|
+
Exports four frozen normalized records: `WeatherLocation`,
|
|
286
|
+
`WeatherObservation`, `WeatherDay`, and `WeatherSnapshot`.
|
|
287
|
+
|
|
288
|
+
### Example
|
|
289
|
+
|
|
290
|
+
```javascript
|
|
291
|
+
import {WeatherLocation} from '/arcane/entities/Weather.js';
|
|
292
|
+
|
|
293
|
+
const location = new WeatherLocation({name: 'Houston'});
|
|
294
|
+
console.log(location.toJSON());
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Availability and protocol details
|
|
298
|
+
|
|
299
|
+
Entity modules are delivered by browser ESM at `/arcane/entities/`. They do not
|
|
300
|
+
cross Core by being imported. Individual persistence, AI, DOM, or native calls
|
|
301
|
+
cross the dependency named by that entity. See
|
|
302
|
+
[availability and normalization](availability-and-normalization.md) and the
|
|
303
|
+
[deep protocol guide](protocols.md).
|