arcane-os 0.3.0 → 0.3.2
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 +27 -0
- package/README.md +86 -117
- package/bin/arcane-test.mjs +170 -46
- package/browser-runtime/ai/browser-speech-artifacts.mjs +887 -909
- package/browser-runtime/ai/browser-speech-providers.mjs +96 -152
- package/browser-runtime/ai/browser-wasm-llm-provider.mjs +627 -819
- package/browser-runtime/ai/browser-wasm.mjs +24 -35
- package/browser-runtime/ai/browser-wllama-runtime.mjs +64 -316
- package/browser-runtime/ai/model-controller.mjs +584 -181
- package/browser-runtime/ai/speech-worker-client.mjs +8 -146
- package/browser-runtime/ai/speech-worker-runtime.mjs +643 -363
- package/browser-runtime/dom-event-instrumentation.mjs +55 -147
- package/browser-runtime/event-manager.mjs +239 -624
- package/package.json +5 -6
- package/runtime/arcane/components/app-bar.html +3 -15
- package/runtime/arcane/components/assistant-panel.html +10 -10
- package/runtime/arcane/components/calculator.html +1 -1
- package/runtime/arcane/components/chat.html +1359 -135
- package/runtime/arcane/components/conversation-view.html +2 -2
- package/runtime/arcane/components/document-inspector.html +11 -17
- package/runtime/arcane/components/file-manager.html +13 -56
- package/runtime/arcane/components/markdown-document.html +82 -281
- package/runtime/arcane/components/markdown-editor.html +7 -10
- package/runtime/arcane/components/media-embed.html +6 -6
- package/runtime/arcane/components/screen-capture.html +4 -4
- package/runtime/arcane/components/source-explanation.html +2 -2
- package/runtime/arcane/components/speech.html +112 -68
- package/runtime/arcane/components/terminal-workspace.html +4 -4
- package/runtime/arcane/components/theme-editor.html +1 -1
- package/runtime/arcane/components/unified-inbox.html +2 -2
- package/runtime/arcane/components/voice-transcription.html +31 -21
- package/runtime/arcane/entities/Calculation.js +2 -3
- package/runtime/arcane/entities/Chat.js +228 -43
- package/runtime/arcane/entities/Preference.js +3 -5
- package/runtime/arcane/entities/Weather.js +5 -5
- package/runtime/arcane/modules/AI.js +1050 -427
- package/runtime/arcane/modules/AIProviderRuntime.js +658 -363
- package/runtime/arcane/modules/AIResponseLength.js +9 -19
- package/runtime/arcane/modules/AIRuntimeState.js +109 -72
- package/runtime/arcane/modules/ArcaneNavigationPolicy.js +45 -32
- package/runtime/arcane/modules/BrowserTestSuite.js +78 -122
- package/runtime/arcane/modules/CalculatorEngine.js +9 -9
- package/runtime/arcane/modules/CommunicationAppController.js +3 -7
- package/runtime/arcane/modules/ComponentContracts.js +30 -32
- package/runtime/arcane/modules/ConfiguredAIChatSession.js +281 -230
- package/runtime/arcane/modules/ConversationActionItems.js +26 -59
- package/runtime/arcane/modules/ConversationClosingReport.js +34 -61
- package/runtime/arcane/modules/ConversationTimebox.js +27 -15
- package/runtime/arcane/modules/DBOPFSDocumentLibrary.js +152 -344
- package/runtime/arcane/modules/DocumentLexicalSearch.js +25 -91
- package/runtime/arcane/modules/HTMLImport.js +54 -1
- package/runtime/arcane/modules/IsolatedModelQuestionRunner.js +40 -203
- package/runtime/arcane/modules/LocalAIReadiness.js +40 -60
- package/runtime/arcane/modules/LocalAIReadinessController.js +15 -13
- package/runtime/arcane/modules/MD.js +1 -45
- package/runtime/arcane/modules/Mail.js +51 -103
- package/runtime/arcane/modules/MailOutbox.mjs +95 -193
- package/runtime/arcane/modules/MailTransport.mjs +36 -57
- package/runtime/arcane/modules/ModelDefinition.js +22 -106
- package/runtime/arcane/modules/OpenMeteoWeatherProvider.js +39 -101
- package/runtime/arcane/modules/PersistentAIChatSession.js +281 -18
- package/runtime/arcane/modules/PreferenceStore.js +102 -30
- package/runtime/arcane/modules/RiskSignalAnalyzer.js +8 -9
- package/runtime/arcane/modules/ScopedOPFSCache.js +7 -42
- package/runtime/arcane/modules/ScreenCapture.js +175 -128
- package/runtime/arcane/modules/SpeechPlayback.js +46 -149
- package/runtime/arcane/modules/StaticDocumentCatalog.js +173 -407
- package/runtime/arcane/modules/ToolCallRouter.js +25 -12
- package/runtime/arcane/modules/YouTubeMedia.js +6 -5
- package/schemas/arcane-app-bundle.schema.json +13 -78
- package/schemas/arcane-app.schema.json +9 -25
- package/schemas/arcane-lock.schema.json +18 -151
- package/schemas/arcane-package.schema.json +2 -16
- package/schemas/native-build-plan.schema.json +119 -122
- package/src/app-descriptor.mjs +75 -132
- package/src/application-tests.mjs +200 -0
- package/src/cli/main.mjs +27 -46
- package/src/constants.mjs +3 -4
- package/src/dev-server.mjs +30 -324
- package/src/doctor.mjs +92 -154
- package/src/dom-event-instrumentation.mjs +55 -147
- package/src/errors.mjs +2 -3
- package/src/event-manager.mjs +239 -624
- package/src/event-queue.mjs +3 -3
- package/src/import-map.mjs +273 -1028
- package/src/index.mjs +14 -16
- package/src/installed-sdk-runtime.mjs +40 -62
- package/src/integrated-provider-loader.mjs +53 -382
- package/src/mail-api.mjs +0 -2
- package/src/mail-server.mjs +224 -580
- package/src/mail.mjs +4 -10
- package/src/native-plan.mjs +163 -598
- package/src/native-provider-loader.mjs +104 -1063
- package/src/packager/core.mjs +485 -3229
- package/src/process.mjs +5 -10
- package/src/release-bundle.mjs +292 -2405
- package/src/runtime.mjs +76 -396
- package/src/scaffold.mjs +30 -80
- package/src/sdk-browser-runtime.mjs +70 -626
- package/src/source-server.mjs +588 -0
- package/src/targets/index.mjs +78 -188
- package/src/templates/workspace-template.mjs +19 -135
- package/src/testing-loader.mjs +164 -0
- package/src/testing.mjs +1 -1
- package/src/toolchain.mjs +131 -544
- package/src/update-check.mjs +26 -64
- package/src/workspace-operation-lock.mjs +139 -430
- package/src/workspace-runtime.mjs +112 -779
- package/src/workspace.mjs +40 -302
- package/browser-runtime/ARCANE_SDK_BROWSER_RELEASE.json +0 -218
- package/browser-runtime/ai/ARCANE_AI_BROWSER_SPEECH_COMPONENTS.json +0 -203
- package/browser-runtime/ai/ARCANE_AI_BROWSER_WASM_COMPONENTS.json +0 -80
- package/browser-runtime/ai/internal/sha256.mjs +0 -166
- package/docs/architecture.md +0 -344
- package/docs/compatibility.md +0 -36
- package/docs/event-manager.md +0 -294
- package/docs/platform-targets.md +0 -108
- package/docs/publishing.md +0 -201
- package/docs/reference/README.md +0 -187
- package/docs/reference/ai/browser-speech-package-authority.json +0 -835
- package/docs/reference/ai/browser-speech.md +0 -1252
- package/docs/reference/ai/browser-wasm.md +0 -530
- package/docs/reference/arcane-ollama.md +0 -288
- package/docs/reference/availability-and-normalization.md +0 -183
- package/docs/reference/behavioral-testing.md +0 -133
- package/docs/reference/cli.md +0 -779
- package/docs/reference/core/README.md +0 -62
- package/docs/reference/core/arcane-ai-contracts.md +0 -907
- package/docs/reference/core/arcane-api.md +0 -601
- package/docs/reference/core/arcane-entities.md +0 -65
- package/docs/reference/core/arcane-events.md +0 -134
- package/docs/reference/core/ollama-module.md +0 -181
- package/docs/reference/core/reference/arcane-api/ai-and-ollama.md +0 -1909
- package/docs/reference/core/reference/arcane-api/applications-terminal-capabilities.md +0 -1057
- package/docs/reference/core/reference/arcane-api/core-and-events.md +0 -320
- package/docs/reference/core/reference/arcane-api/filesystem-storage-preferences-appearance.md +0 -610
- package/docs/reference/core/reference/arcane-api/namespaces.md +0 -1157
- package/docs/reference/core/reference/arcane-api/platform-installation-users-system.md +0 -1423
- package/docs/reference/core/reference/arcane-api/session-provisioning-diagnostics-development.md +0 -315
- package/docs/reference/event-manager.md +0 -1511
- package/docs/reference/inventory/package-api.json +0 -3284
- package/docs/reference/inventory/runtime-components.json +0 -1011
- package/docs/reference/inventory/runtime-entities.json +0 -26
- package/docs/reference/inventory/runtime-modules.json +0 -1431
- package/docs/reference/mail.md +0 -316
- package/docs/reference/protocols.md +0 -677
- package/docs/reference/runtime-components.md +0 -1366
- package/docs/reference/runtime-entities.md +0 -303
- package/docs/reference/runtime-modules.md +0 -2960
- package/docs/reference/sdk-api.md +0 -6694
- package/docs/roadmap.md +0 -79
- package/docs/work-amplification.md +0 -129
- package/runtime/ARCANE_RUNTIME_RELEASE.json +0 -826
package/src/index.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export {
|
|
2
2
|
ARCANE_MACHINE_BUNDLE_VERSION,
|
|
3
3
|
ARCANE_PROTOCOL,
|
|
4
|
-
ARCANE_UPSTREAM_COMMIT,
|
|
5
4
|
ARCANE_UPSTREAM_REPOSITORY,
|
|
6
5
|
CLI_EVENT_PROTOCOL,
|
|
7
6
|
CLI_NAME,
|
|
@@ -63,7 +62,6 @@ export {
|
|
|
63
62
|
PLAYBACK_RECORD_EVENT,
|
|
64
63
|
PLAYBACK_STARTED_EVENT,
|
|
65
64
|
projectArcaneDOMEvent,
|
|
66
|
-
TIME_TRAVEL_OVERFLOW_EVENT,
|
|
67
65
|
TIME_TRAVEL_SEEK_EVENT
|
|
68
66
|
} from './event-manager.mjs';
|
|
69
67
|
export {runProcess} from './process.mjs';
|
|
@@ -102,8 +100,6 @@ export {
|
|
|
102
100
|
export {
|
|
103
101
|
assertIntegratedNativeToolchain,
|
|
104
102
|
assertIntegratedPortableToolchain,
|
|
105
|
-
assertNativeApplicationToolchainCompatibility,
|
|
106
|
-
assertPortableToolchainCompatibility,
|
|
107
103
|
buildApplication,
|
|
108
104
|
bundleApplication,
|
|
109
105
|
checkApplication,
|
|
@@ -116,6 +112,7 @@ export {
|
|
|
116
112
|
doctorNativeTarget,
|
|
117
113
|
executeOperation,
|
|
118
114
|
initializeApplication,
|
|
115
|
+
upgradeApplication,
|
|
119
116
|
packageApplication,
|
|
120
117
|
planApplication,
|
|
121
118
|
prepareNativeTarget,
|
|
@@ -130,12 +127,21 @@ export {
|
|
|
130
127
|
} from './toolchain.mjs';
|
|
131
128
|
export {createWorkspace,initWorkspace} from './scaffold.mjs';
|
|
132
129
|
export {
|
|
133
|
-
authenticateRuntimeReceipt,
|
|
134
130
|
getSdkRoot,
|
|
131
|
+
listRuntimeFiles,
|
|
135
132
|
loadRuntimeRelease,
|
|
136
|
-
|
|
137
|
-
verifyRuntime
|
|
133
|
+
readRuntimeFile
|
|
138
134
|
} from './runtime.mjs';
|
|
135
|
+
export {
|
|
136
|
+
getSdkBrowserRuntimeRoot,
|
|
137
|
+
listSdkBrowserRuntimeFiles,
|
|
138
|
+
loadSdkBrowserRuntimeRelease,
|
|
139
|
+
readSdkBrowserRuntimeFile
|
|
140
|
+
} from './sdk-browser-runtime.mjs';
|
|
141
|
+
export {
|
|
142
|
+
materializeWorkspaceRuntime,
|
|
143
|
+
materializeWorkspaceRuntimeContent
|
|
144
|
+
} from './workspace-runtime.mjs';
|
|
139
145
|
export {
|
|
140
146
|
discoverApps,
|
|
141
147
|
inspectWorkspaceProfile,
|
|
@@ -145,11 +151,10 @@ export {
|
|
|
145
151
|
} from './workspace.mjs';
|
|
146
152
|
export {materializeInstalledSdkRuntime} from './installed-sdk-runtime.mjs';
|
|
147
153
|
export {startDevServer} from './dev-server.mjs';
|
|
154
|
+
export {startSourceExampleServer} from './source-server.mjs';
|
|
148
155
|
export {
|
|
149
156
|
NATIVE_BUILD_PLAN_PROTOCOL,
|
|
150
157
|
NATIVE_BUILDER_PROTOCOL,
|
|
151
|
-
assertNativeToolchainCompatibility,
|
|
152
|
-
authenticateNativeBuildPlan,
|
|
153
158
|
createNativeBuildPlan,
|
|
154
159
|
executeNativeBuildPlan,
|
|
155
160
|
validateNativeBuilder
|
|
@@ -157,21 +162,15 @@ export {
|
|
|
157
162
|
export {
|
|
158
163
|
APP_DESCRIPTOR_NAME,
|
|
159
164
|
APP_DESCRIPTOR_SCHEMA_VERSION,
|
|
160
|
-
appDescriptorSha256,
|
|
161
165
|
loadAppDescriptor,
|
|
162
166
|
projectNativeDescriptor,
|
|
163
167
|
projectPackageManifest,
|
|
164
168
|
validateAppDescriptor
|
|
165
169
|
} from './app-descriptor.mjs';
|
|
166
170
|
export {
|
|
167
|
-
authenticateAppReleaseAuthority,
|
|
168
|
-
authenticateAppReleaseReceipt,
|
|
169
|
-
authenticateSharedPayloadSnapshot,
|
|
170
171
|
discoverApps as discoverPackagerApps,
|
|
171
172
|
inspectApp,
|
|
172
173
|
packageApp,
|
|
173
|
-
prepareSharedPayloadSnapshot,
|
|
174
|
-
readVerifiedAppReleaseFile,
|
|
175
174
|
verifyApp
|
|
176
175
|
} from './packager/core.mjs';
|
|
177
176
|
export {
|
|
@@ -179,7 +178,6 @@ export {
|
|
|
179
178
|
APP_BUNDLE_EXTENSION,
|
|
180
179
|
APP_BUNDLE_FORMAT,
|
|
181
180
|
APP_BUNDLE_KIND,
|
|
182
|
-
APP_BUNDLE_LIMITS,
|
|
183
181
|
APP_BUNDLE_MANIFEST_NAME,
|
|
184
182
|
APP_BUNDLE_RELEASE_PATH,
|
|
185
183
|
APP_BUNDLE_SCHEMA_VERSION,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {readFile,realpath,stat} from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {materializeWorkspaceRuntime} from './workspace-runtime.mjs';
|
|
3
|
+
import {materializeWorkspaceRuntimeContent} from './workspace-runtime.mjs';
|
|
4
|
+
import {withWorkspaceOperationLock} from './workspace-operation-lock.mjs';
|
|
6
5
|
import {
|
|
7
6
|
resolveInstalledSdkInstallation,
|
|
8
7
|
resolveSdkPackageDeclaration
|
|
@@ -21,92 +20,71 @@ function throwIfAborted(signal){
|
|
|
21
20
|
throw error;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
function samePath(left,right){
|
|
25
|
-
const normalize=value=>path.resolve(value).replaceAll('\\','/');
|
|
26
|
-
const a=normalize(left);
|
|
27
|
-
const b=normalize(right);
|
|
28
|
-
return process.platform==='win32'?a.toLowerCase()===b.toLowerCase():a===b;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
23
|
async function canonicalWorkspaceRoot(workspaceRoot){
|
|
32
24
|
if(typeof workspaceRoot!=='string'||!workspaceRoot.trim()){
|
|
33
25
|
fail('workspaceRoot is required to materialize an installed SDK runtime.');
|
|
34
26
|
}
|
|
35
27
|
const requested=path.resolve(workspaceRoot);
|
|
36
28
|
let info;
|
|
37
|
-
try{info=await
|
|
29
|
+
try{info=await stat(requested);}
|
|
38
30
|
catch(error){
|
|
39
31
|
if(error?.code==='ENOENT')fail(`Workspace root does not exist: ${requested}.`);
|
|
40
32
|
throw error;
|
|
41
33
|
}
|
|
42
|
-
if(info.
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
const canonical=await realpath(requested);
|
|
46
|
-
if(!samePath(requested,canonical)){
|
|
47
|
-
fail(`Workspace root must not resolve through another path: ${requested}.`);
|
|
48
|
-
}
|
|
49
|
-
return canonical;
|
|
34
|
+
if(!info.isDirectory())fail(`Workspace root must be a directory: ${requested}.`);
|
|
35
|
+
return realpath(requested);
|
|
50
36
|
}
|
|
51
37
|
|
|
52
38
|
async function readRootPackage(workspaceRoot){
|
|
53
39
|
const packagePath=path.join(workspaceRoot,'package.json');
|
|
54
|
-
let
|
|
55
|
-
try{
|
|
40
|
+
let document;
|
|
41
|
+
try{document=JSON.parse(await readFile(packagePath,'utf8'));}
|
|
56
42
|
catch(error){
|
|
57
43
|
if(error?.code==='ENOENT')fail(`Workspace package.json is missing: ${packagePath}.`);
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
if(info.isSymbolicLink()||!info.isFile()){
|
|
61
|
-
fail('Workspace package.json must be a real file.');
|
|
44
|
+
fail(`Workspace package.json is not valid JSON: ${error.message}`);
|
|
62
45
|
}
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
return document;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async function installedSdkAuthority(canonicalRoot,{sdkPackageSource}={}){
|
|
50
|
+
const declaration=resolveSdkPackageDeclaration(
|
|
51
|
+
await readRootPackage(canonicalRoot),
|
|
52
|
+
sdkPackageSource===undefined?{}:{packageSource:sdkPackageSource}
|
|
53
|
+
);
|
|
54
|
+
const installation=await resolveInstalledSdkInstallation(canonicalRoot,declaration);
|
|
55
|
+
return {declaration,installation};
|
|
65
56
|
}
|
|
66
57
|
|
|
67
|
-
/**
|
|
68
|
-
* Resolves the workspace's one exact installed Arcane SDK declaration, verifies
|
|
69
|
-
* both physical runtime receipts, and materializes their dynamic inventories.
|
|
70
|
-
*/
|
|
71
58
|
export async function materializeInstalledSdkRuntime({
|
|
72
59
|
workspaceRoot,
|
|
73
60
|
sdkPackageSource,
|
|
61
|
+
workspaceOperationLease,
|
|
74
62
|
signal,
|
|
75
63
|
onEvent
|
|
76
64
|
}={}){
|
|
77
65
|
throwIfAborted(signal);
|
|
78
66
|
const canonicalRoot=await canonicalWorkspaceRoot(workspaceRoot);
|
|
79
|
-
|
|
80
|
-
const declaration=resolveSdkPackageDeclaration(rootPackage,
|
|
81
|
-
sdkPackageSource===undefined?{}:{packageSource:sdkPackageSource});
|
|
82
|
-
const installation=await resolveInstalledSdkInstallation(canonicalRoot,declaration);
|
|
83
|
-
const [runtimeReceipt,sdkBrowserRuntimeReceipt]=await Promise.all([
|
|
84
|
-
verifyRuntime({
|
|
85
|
-
runtimeRoot:installation.runtimeRoot,
|
|
86
|
-
signal,
|
|
87
|
-
onEvent
|
|
88
|
-
}),
|
|
89
|
-
verifySdkBrowserRuntime({
|
|
90
|
-
browserRuntimeRoot:installation.browserRuntimeRoot,
|
|
91
|
-
signal,
|
|
92
|
-
onEvent
|
|
93
|
-
})
|
|
94
|
-
]);
|
|
95
|
-
const workspaceRuntimeReceipt=await materializeWorkspaceRuntime({
|
|
67
|
+
return withWorkspaceOperationLock({
|
|
96
68
|
workspaceRoot:canonicalRoot,
|
|
97
|
-
|
|
98
|
-
runtimeReceipt,
|
|
99
|
-
browserRuntimeRoot:installation.browserRuntimeRoot,
|
|
100
|
-
sdkBrowserRuntimeReceipt,
|
|
69
|
+
operation:'installed-sdk-runtime',
|
|
101
70
|
signal,
|
|
102
|
-
onEvent
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
71
|
+
onEvent,
|
|
72
|
+
workspaceOperationLease
|
|
73
|
+
},async()=>{
|
|
74
|
+
const authority=await installedSdkAuthority(canonicalRoot,{sdkPackageSource});
|
|
75
|
+
const workspaceRuntime=await materializeWorkspaceRuntimeContent({
|
|
76
|
+
workspaceRoot:canonicalRoot,
|
|
77
|
+
runtimeRoot:authority.installation.runtimeRoot,
|
|
78
|
+
browserRuntimeRoot:authority.installation.browserRuntimeRoot,
|
|
79
|
+
signal,
|
|
80
|
+
onEvent
|
|
81
|
+
});
|
|
82
|
+
return {
|
|
83
|
+
schemaVersion:1,
|
|
84
|
+
kind:'arcane-installed-sdk-runtime-materialization',
|
|
85
|
+
status:'materialized',
|
|
86
|
+
installation:authority.installation,
|
|
87
|
+
workspaceRuntime
|
|
88
|
+
};
|
|
111
89
|
});
|
|
112
90
|
}
|